freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)死鎖問題之單行道問題(編輯修改稿)

2025-07-04 18:51 本頁面
 

【文章內(nèi)容簡介】 set_shm(key_t shm_key,int shm_num,int shm_flag)。private : int rate。//車速 int maxCars。//最大同向車輛 int numCars。//當(dāng)前通過的車輛的數(shù)量 int currentDirec。//當(dāng)前通過的車輛的方向 Condition * con。//通過單行道的條件變量 Lock * lock。//單行道管程鎖 int * buff_ptr。 int * put_ptr。 Sema * mutex。}。Sema::Sema(int id){sem_id=id。}Sema::~Sema(){}int Sema::down(){struct sembuf buf。=1。=0。=SEM_UNDO。if((semop(sem_id,amp。buf,1))0){perror(down error)。exit(EXIT_FAILURE)。}return EXIT_SUCCESS。}int Sema::up(){Sem_uns arg。struct sembuf buf。=1。=0。=SEM_UNDO。if((semop(sem_id,amp。buf,1))0){perror(up error)。exit(EXIT_FAILURE)。}return EXIT_SUCCESS。}Lock::Lock(Sema * s){sema=s。}Lock::~Lock(){}//上鎖void Lock::close_lock(){semadown()。}//開鎖void Lock::open_lock(){semaup()。}//用于單行道問題的條件變量Condition::Condition(Sema * s0,Sema * s1){sema[0]=s0。sema[1]=s1。}void Condition::Wait(Lock * lock,int dir){lockopen_lock()。sema[dir]down()。lockclose_lock()。}void Condition::Signal(int dir){sema[dir]up()。}int dp::get_ipc_id (char * proc_file,key_t key){define BUFSZ 256 FILE * pf。 int i,j。 char line[BUFSZ],colum[BUFSZ]。 if((pf=fopen(proc_file,r))==NULL) { perror(proc file not open)。 exit(EXIT_FAILURE)。 } fgets(line,BUFSZ,pf)。 while(!feof(pf)) { i=j=0。 fgets(line,BUFSZ,pf)。 while(line[i]==39。 39。)i++。 while(line[i]!=39。 39。) colum[j++]=line[i++]。 colum[j]=39。\039。 if(atoi(colum)!=key) continue。 j=0。 while(line[i]==39。 39。)i++。 while(line[i]!=39。 39。)colum[j++]=line[i++]。 colum[j]=39。\039。 i=atoi(colum)。 fclose(pf)。 return i。 } fclose(pf)。 return 1。}int dp::set_sem(key_t sem_key,int sem_val,int sem_flg){int sem_id。Sem_uns sem_arg。//測試由sem_key標(biāo)識的信號量是否已經(jīng)建立if((sem_id=get_ipc_id(/proc/sysvipc/sem,sem_key))0){//semget新建一個信號燈,其標(biāo)志號返回到 sem_idif((sem_id=semget(sem_key,1,sem_flg))0){perror(semaphore create error)。exit(EXIT_FAILURE)。}}//設(shè)置信號量初值=sem_val。if(semctl(sem_id,0,SETVAL,sem_arg)0){perror(semaphore set error)。exit(EXIT_FAILURE)。}return sem_id。}char * dp::set_shm(key_t shm_key,int shm_num,int shm_flg){int i,shm_id。char * shm_buf。//測試由shm_k
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1