資源簡介
理發店問題:假設理發店的理發室中有3個理發椅子和3個理發師,有一個可容納4個顧客坐等理發的沙發。此外還有一間等候室,可容納13位顧客等候進入理發室。顧客如果發現理發店中顧客已滿(超過20人),就不進入理發店。 在理發店內,理發師一旦有空就為坐在沙發上等待時間最長的顧客理發,同時空出的沙發讓在等候室中等待時間最長的的顧客就坐。顧客理完發后,可向任何一位理發師付款。但理發店只有一本現金登記冊,在任一時刻只能記錄一個顧客的付款。理發師在沒有顧客的時候就坐在理發椅子上睡眠。理發師的時間就用在理發、收款、睡眠上。 請利用linux系統提供的IPC進程通信機制實驗并實現理發店問題的一個解法。
代碼片段和文件信息
#include“ipc.h“
int?main(int?argcchar?*argv[]){
???int?i;
???int?rate;
???Msg_buf?msg_arg;
???if(argv[1]!=NULL)rate=atoi(argv[1]);
???else?rate=3;
???buff_key=101;
???buff_num=CHAIR;
???shm_flg=IPC_CREAT|0644;
???buff_ptr=(int*)set_shm(buff_keybuff_numshm_flg);
???waiting_key=102;
????waiting_num=1;
????waiting_ptr=(int*)set_shm(waiting_keywaiting_numshm_flg);
//?注冊消息隊列
???quest_flg=IPC_CREAT|0644;
???quest_key=201;
???quest_id=set_msq(quest_keyquest_flg);
???respond_flg=IPC_CREAT|0644;
???respond_key=202;
???respond_id=set_msq(respond_keyrespond_flg);
???quit_flg=IPC_CREAT|0644;
???quit_key=250;
???quit_id=set_msq(quit_keyquit_flg);
//注冊信號量
???w_key=301;
???a_key=302;
???p_key=303;
???sem_flg=IPC_CREAT|0644;
???sem_val=1;
???w_mtx=set_sem(w_keysem_valsem_flg);
???a_mtx=set
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1943??2009-04-25?10:56??ex5\baber.c~
?????文件??????16328??2009-04-25?16:47??ex5\barber
?????文件???????2361??2009-04-25?16:38??ex5\barber.c
?????文件???????2361??2009-04-25?16:38??ex5\barber.c~
?????文件???????7344??2009-04-25?16:47??ex5\barber.o
?????文件??????17499??2009-04-25?16:47??ex5\controler
?????文件???????3757??2009-04-25?16:46??ex5\controler.c
?????文件???????3757??2009-04-25?16:46??ex5\controler.c~
?????文件???????8748??2009-04-25?16:47??ex5\controler.o
?????文件??????16350??2009-04-25?16:47??ex5\customer
?????文件???????1873??2009-04-25?16:38??ex5\customer.c
?????文件???????1873??2009-04-25?16:38??ex5\customer.c~
?????文件???????7252??2009-04-25?16:47??ex5\customer.o
?????文件???????2728??2009-04-18?22:04??ex5\ipc.c
?????文件??????????1??2009-04-25?07:29??ex5\ipc.c~
?????文件???????1433??2009-04-25?15:24??ex5\ipc.h
?????文件???????1433??2009-04-25?15:24??ex5\ipc.h~
?????文件??????10168??2009-04-25?16:47??ex5\ipc.o
?????文件????????509??2009-04-25?11:09??ex5\Makefile
?????文件????????509??2009-04-25?11:09??ex5\Makefile~
?????目錄??????????0??2010-05-08?12:14??ex5
-----------?---------??----------?-----??----
???????????????108227????????????????????21
- 上一篇:多功能病房呼叫系統
- 下一篇:操作系統 實驗七、內存頁面置換算法實驗
評論
共有 條評論