The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Operativsystem > HP-UX
.
google unix.com



HP-UX HP-UX (Hewlett Packard Unix) er Hewlett-Packard proprietære gjennomføring av Unix operativsystem basert på System V.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Unngå Duplikater i en fil pssandeep UNIX for Dummies Spørsmål og svar 7 03-26-2008 06:36
Awk: Hvordan unngå System sandeep_hi Shell programmering og Skripting 0 06-23-2006 07:01
Hvordan unngå historying min kommando ting123 UNIX for Dummies Spørsmål og svar 2 05-06-2006 05:58
Unngå spam i furu? a25khan UNIX for Dummies Spørsmål og svar 1 12-13-2003 10:50
hvor å låse tastaturet uten å bruke lock-kommandoen dianayun UNIX for Dummies Spørsmål og svar 7 06-21-2002 07:05

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 02-03-2008
Frank2004 Frank2004 is offline
Registrert bruker
  
 

Bli Dato: juni 2004
Sted: Beijing, Kina
Innlegg: 54
unngå semphore lock

vi utviklet et sett av systemet V semphore for vårt program, generelt, alle av dem fungerer normalt, sjelden forårsake vranglås. Her er noen viktige sem_wait og sem_post grensesnitt, pls punkt noen forslag til løst vranglås problem:

Code:
int sem_wait_V(int id, struct sembuf  *sem_pv)
{

  sem_pv = new struct sembuf [1] ;

  if (sem_op(id,-1, sem_pv)<0)
    {
         delete sem_pv ;
     return -1;
    }

  delete sem_pv ;
 


  return 0;
}






int sem_post_V(int id, int sem_post_value_V, struct sembuf  *sem_pv)
{

 if ((sem_post_value_V = semctl(id,0,GETVAL,0)) <0)
	{
       	return -1; 
     	}
 if( sem_post_value_V > SEM_POST_LIMIT )
	{
	if( sem_post_value_V == SEM_POST_LIMIT + 1 )	return -1 ;
	return -1 ;
	}

 sem_pv = new struct sembuf [1] ; 
 
 if (sem_op(id,1,sem_pv)<0)
    {
     delete sem_pv ;
     return -1;
    }

 delete sem_pv ;

 return 0;
}



int sem_op(int id,int value, struct sembuf sem_pv[1] )
{
  int sem_value ,sem_value1; 


  sem_pv[0].sem_num = 0 ;
  sem_pv[0].sem_flg = 0 ;

  if ((sem_pv[0].sem_op =value) == 0)
	{
	printf("sem_op error: operator is zero !!!!!!!(%d)\n",id) ;
        return -1;
	}

if ((sem_value = semctl(id,0,GETVAL,0)) <0)
     		{
        	perror("semctl create GETVAL");
                return -1;
     		}

 again:;
  if (semop(id,&sem_pv[0],1)<0)
        {
         sched_yield() ;
         if(errno==EINTR) 
          {
                	if ((sem_value1 = semctl(id,0,GETVAL,0)) <0)
     	                	{
        	                   perror("semctl create GETVAL");
                                   return -1;
     		                }
                           else
                             {
                                 if (sem_value != sem_value1 )
                                     return -1;
                                  else
                                     goto again;
                            }
           }
         return -1;
        }    

  return  1;

}


Sist endret av Frank2004; 02-03-2008 på 11:06..
  #2 (permalink)  
Old 03-10-2009
Frank2004 Frank2004 is offline
Registrert bruker
  
 

Bli Dato: juni 2004
Sted: Beijing, Kina
Innlegg: 54
håper svar, takk.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden Av
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 01:23.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0