资源简介
银行叫号排队系统_Unix编程_源码及答辩文档_课程大作业:包含系统源码和需求分析,课程答辩ppt等。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N_SEC 20
struct sembuf sops[4];
static union semun
{
int val;
struct semid_ds *buf;
ushort * array;
}init_v;
int BeginWaiter(int semsint num)
{
int id=-1;
if(!(id=fork()))//child
{
while(1)
{
struct sembuf op={2-10};
if(-1==semop(sems&op1))
exit(0);
op.sem_num=3;op.sem_op=1;
if(-1==semop(sems&op1))
exit(0);
///service
int random=1+(int)(20.0*rand()/(RAND_MAX*1.0));
printf(“\n*****\n%d is on dutyserve time=%d\n***********\n“num20+random);
sleep(10+random);
}
}else
return id;
}
int main(int argc char *argv[])
{
printf(“parent id=%d\n“getpid());
int sems=semget(IPC_PRIVATE50666);
union semun arg;
unsigned short init_v[5]={120000};
arg.array=init_v;
semctl(sems0SETALLarg);
char custom[100]=““;
////////////////////////
srand(0);
int s1=BeginWaiter(sems0);
int s2=BeginWaiter(sems1);
printf(“Waiters are:%d%d“s1s2);
//////////////
while(1)
{
printf(“Welcome!please input you name:“);
scanf(“%s“custom);
if(!strcmp(custom“exit“))
{
semctl(sems0IPC_RMIDarg);
kill(SIGKILLs1);
kill(SIGKILLs2);
exit(0);
}
if(!fork())//child
{
struct sembuf ops={0-10};
semop(sems&ops1);//p mutexalternative
ops.sem_num=4ops.sem_op=1;
semop(sems&ops/*(struct sembuf*)&{410}*/1);//get ticket
ops.sem_num=0;ops.sem_op=1;
semop(sems&ops/*(struct sembuf*)&{010}*/1);//V mutex.alternative
/////////////////////
ops.sem_num=1;ops.sem_op=-1;
semop(sems&ops/*(struct sembuf*)&{1-10}*/1);//compete for seat
int seats=semctl(sems1GETVALarg);
printf(“\nThere are %d seates remained\n“seats);
////////////////
ops.sem_num=2;ops.sem_op=1;
semop(sems&ops/*(struct sembuf*)&{210}*/1);//wake waiter up
ops.sem_num=3;ops.sem_op=-1;
semop(sems&ops/*(struct sembuf*)&{3-10}*/1);//wait for called for
ops.sem_num=1;ops.sem_op=1;
semop(sems&ops/*(struct sembuf*)&{110}*/1);//release seat;
//get service
printf(“\n**********\ncustom:%s\n**************\\n“custom);
exit(0);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2506 2012-09-08 17:11 源程序\bb.c
文件 2506 2012-09-08 18:16 源程序\借鉴版.txt
文件 3035 2012-09-08 18:27 源程序\真我版.txt
文件 2488 2012-06-18 14:58 bb.c
文件 2968 2012-06-12 12:56 shiley.txt.txt
文件 3214 2012-06-18 11:23 shiley-updated.txt
文件 35840 2012-06-12 17:07 UNIX高级编程公开答辩记录表.doc
文件 20148 2012-06-18 11:36 流程图.doc
文件 14336 2018-08-08 14:56 人员分工描述模板.doc
文件 194048 2018-08-08 14:55 银行叫号排队系统-答辩.ppt
文件 109056 2018-08-08 14:48 银行排队叫号模拟系统_实验报告及模版-b.doc
文件 28899 2012-06-19 13:19 银行排队系统需求分析.doc
目录 0 2012-07-01 16:12 源程序
----------- --------- ---------- ----- ----
419044 13
相关资源
- 易语言API定时关机源码
- 易语言小轩定时关机源码
- Delphi时钟助手源码,定时关机、提醒
- delphi源码-实现软件注册机
- 易语言mp3播放器3源码易语言mp3播放器
- 易语言QEHashV3.0源码
- 易语言打开记事本并写入内容源码
- 易语言完美模块化3.0源码易语言报表
- 易语言凡哥记事本V1源码易语言凡哥记
- 易语言屏幕画笔v3源码易语言屏幕画笔
- 易语言拖盘图标操作例程源码
- 易语言动态随机文本加解密源码
- 易语言自定义加解密文本源码
- 易语言字符串加解密源码
- 易语言加解密文本模块源码
- 易语言文本加解密源码
- 易语言极速文本加密解密模块V3.1模块
- 易语言码表文本加解密模块源码
- 易语言加解密例程源码易语言生成随
- 易语言文本加解密例程源码
- 易语言高仿Windows记事本源码
- 易语言加密记事本简单例程源码
- 微信、QQ、TIM、QQ轻聊版防撤回软件(
- Borland Socket Server程序 包含D6和D7源码
-
fli
nk核心源码(追源索骥:透过源码 - Scratch源码
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
评论
共有 条评论