操作系统2014课程设计(3)
if((w=sem[se].firstwr)==NIL) sem[se].firstwr=exe; else {
while(pcb[w].nextwr!=NIL) w=pcb[w].nextwr; pcb[w].nextwr=exe; } } v(se,ad) int se; char ad; {
if(++sem[se].value>0) return(FALSE); wakeup(se);
savearea[exe][1]=ad; savearea[exe][0]=i; return(TRUE); }
wakeup(se) int se; { int w;
w=sem[se].firstwr; if(w!=NIL) {
sem[se].firstwr=pcb[w].nextwr; pcb[w].status='r';
printf(\ } }
process1() {
if(addr=='a') goto a1; if(addr=='b') goto b1; if(addr=='c') goto c1; if(addr=='d') goto d1; if(addr=='e') goto e1; if(addr=='f') goto f1;
for(i=0; i<3;i++)/*如果程序执行超过5次,则*/ {
printf(\ if(p(0,'a')) break; /*process 1 is blocked*/
a1: printf(\ if(timeint('b')) break; /*time silce interrupt*/ b1: printf(\
printf(\calls V on semaphorel and quit cretical section 1.\\n\
if(v(0,'c')) break; /*wake up a blocked process*/ c1: printf(\ if(p(1,'d')) break;
d1: printf(\ if(timeint('e')) break; e1: printf(\
printf(\calls V on semaphore2 and quit cretical section2.\\n\
if(v(1,'f')) break; /*wake up a block process*/ f1: printf(\
}
if(i<3) return; eexit(0); }
process2() {
if(addr=='a') goto a2; if(addr=='b') goto b2; if(addr=='c') goto c2; if(addr=='d') goto d2; if(addr=='e') goto e2; if(addr=='f') goto f2; for(i=1;i<6;++i) {
printf(\ if(p(1,'a')) break; /*process2 is blocked*/
a2: printf(\ if(timeint('b')) break; b2: printf(\
printf(\section2.\\n\
if(v(1,'c')) break; /*wake up a blocked process*/ c2: printf(\ if(p(0,'d')) break; /*process2 is blocked*/ d2: printf(\ if(timeint('e')) break; e2: printf(\
printf(\call V on semaphorel and quit cretical setion2\\n\
if(v(0,'f')) break; /*wkup up a block process*/
f2: printf(\ }
if(i<6) return; eexit(1); }
process3() {
if(addr=='a') goto a3; if(addr=='b') goto b3; if(addr=='c') goto c3; for(i=1;i<6;++i) {
printf(\ if(p(1,'a')) break; /*process3 is blocked*/
a3: printf(\ if(timeint('b')) break; b3: printf(\
printf(\ calls V on semaphore and quit cretical section.\\n\
if(v(1,'c')) break; /*wake up a blocked process */ c3: printf(\ }
if(i<6) return; eexit(2); } eexit(n) int n; {
pcb[n].status='c';
printf(\ exe=NIL; } main() {
int j=0; int k; char m;
printf(\ init();
printf(\
printf(\ for(;;) {
j=j+1;
printf(\ //scanf(\ getchar();
if((k=scheduler())!=NIL) {
switch(k) {
case 0: process1(); break;
case 1: process2(); break;
case 2: process3(); break;
…… 此处隐藏:169字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




