求一份代码,操作系统题目
用进程同步方法解决售票员与乘客问题
有代码就好!价格有待商议
4条回答 默认 最新
关注 #include<iostream> using namespace std; int spy=1, sj=0; //信号量的定义,spy是售票员的私有信号量,sj是司机的私有信号量。 #define SIZE 5 //定义车上最多能坐的人数。 int n = SIZE; char ck; //乘客上下车的操作变量。 int p1(); //司机的操作流程。 int p2(); //售票员的操作流程。 int main() { cout << "键入a表示乘客上车,键入d表示乘客下车." << endl; cout << "键入s表示注销进程." << endl; cout << "键入f表示乘客上下车过程结束." << endl << endl << endl; p1(); return 0; } int p1() //司机的执行过程 { sj--;//相当于p操作。 if (sj == 0) { cout << "汽车启动准备离站......" << endl; cout << "汽车运行中......" << endl; cout << "汽车到站!" << endl; cout << "汽车停!" << endl; spy++;//相当于v操作。 } else sj++; p2(); return 0; } int p2() //售票员的执行过程 { spy--;//相当于p操作。 if (spy==0) { cout << "售票员打开车门......" << endl; cout << "请进行乘客上下车操作!" << endl; while (1) { cin >> ck; if ((ck == 'a') && (n > 0)) {n--;cout << "上一个乘客." << endl;continue;}; if ((ck == 'd') && (n < SIZE)) {n++;cout << "下一个乘客." << endl;continue;}; if (ck == 'f') {break;}; if (ck == 's') {return 0;}; if (n <= 0) {cout << "车上座位已满,不能再上乘客了!" << endl;continue;}; if (n >= SIZE) {cout << "车上乘客已经都下完了!" << endl;continue;}; } cout << "现在关闭车门!" << endl; } sj++; //相当于v操作 p1(); return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表