资源简介
银行叫号排队系统_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
相关资源
- 编译原理实验报告及源码,LR1 活前缀
- 编译原理大作业 源码
- 小四轴源码
- MooseFS分布式文件系统源码分析
- ping源码分析
- mini2440arm基于qt4的MP3源码
- 基于51单片机的NRF2401无线病房呼叫系
- ES的搜索引擎的设计与实现源码.zip
- 网络ns2仿真实验分析(RED、丢包率、
- cartographer源码 +详细代码注释
- 单片机红外报警系统仿真与源码和上
- QQTIM源码 源码分享 qq协议
- QT4音乐播放器源码
- [键盘记录源码] C 语言编写的键盘记录
- Zookeeper源码分析
- Resiprocate源码分析
- 易语言源码易语言取千千静听服务器
- 舍伍德——快速排序源码报告和算法
- 协议分析器程序
- Uboot-1.1.2 for PXA270源码分析.pdf
- 烟雾报警器源码
- 西门子OPC AE采集源码
- 资产管理系统源码
- 25175学生作业提交管理系统 v2.1.1
- struts+hibernate实现的教务选课信息管理
- 层次分析法(AHP)源码
- 单片机MP3源码c51版
- cve-2019-0708检测漏洞的poc包含源码
- Qt5_音乐播放器源码
- 二次开发之最短路径分析源码
评论
共有 条评论