《操作系统-实验报告-进程管理实验.doc》由会员分享,可在线阅读,更多相关《操作系统-实验报告-进程管理实验.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4需求矩阵need一、实验目的n*m矩阵,needi,j=k表示进程还需要的第j类资源的数目为kneedi,j=maxi,j-allocationi,j本实验要求学生编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。5进程pi的请求向量requesti具有m个元素的数组,说明进程pi对每类资源的请求数目二、实验题目6工作向量work系统提供给进程继续运行所需各类资源数目初值:work:=available7状态标志finish第一题:用银行家算法实现资源分配。要求:具有n个元素的数据,表示进程是否可在有限时间内获得所有资源执行完,初
2、值为fals(1)设计一个3个并发进程共享10个同类资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。(3)确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。第二题:用按序分配策略实现资源分配。要求:(1)设计一个3个进程共享10个资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用按序分配算法实现资源分配的资源分配程序,应具有显示或打印各进程依次要求
3、申请的资源号以及依次分配资源地情况。(3)确定两组各进程依次要求申请的资源号,要求其中的一组中各进程按序地申请资源,另一组中各进程申请资源不受序号限制,分别运行上述设计的资源分配程序,观察运行结果。#include#include三、数据结构1可利用资源向量available/*-#defineF0常量定义-*/具有m个元素的数组,availablej=k表示系统中第j类资源有k个可用#defineT12最大需求矩阵max#definen5/进程数量n*m矩阵,maxi,j=k表示进程i需要第j类资源的最大数目为k#definem3/资源种类数量/*-*/3分配矩阵allocation/*-数
4、据结构定义-*/intAvailablem=3,3,2;/可用资源intWorkm;intFinishn;/工作向量/用以判断系统是否有足够资源分给相应进程kn*m矩阵,allocationi,j=k表示进程i当前已占用的第j类资源的数目为voidRecycle();intbackDos();/假设进程运行完资源回收/判断所有进程是否运行完,完后返回操作系统Print();/*-*/*-进程-*/structPCBreturn0;intflag;/状态标志,是否运行完/*-*/intMaxm;/资源最大需求量/已分配资源intAllocationm;intNeedm;intRequestm;/
5、*-试分配函数-*/试分配/还需要的资源/请求资源量inttryAdminister(intnum)Pn;intj;for(j=0;jPnum.Needj)voidsafeCheck(intnum);voidPrint();/安全性检查/状态输出printf(非法请求!nn);/*主函数(只需改变n、m和下面的初始数组便可形成新的进程量,资源量和状态)*/returnF;intmain()elseif(Pnum.RequestjAvailablej)inti,j,num;inttotalnm=7,5,3,3,2,2,9,0,2,2,2,2,4,3,3;inthavenm=0,1,0,2,0,0
6、,3,0,2,2,1,1,0,0,2;intwantnm=7,4,3,1,2,2,6,0,0,0,1,1,4,3,1;printf(%d号资源不够,无法分配,进程%d等待。nn,j,num);returnF;for(i=0;in;i+)for(j=0;jm;j+)/初始化进程资源分配状态for(j=0;jm;j+)Availablej=Availablej-Pnum.Requestj;Pi.flag=F;Pnum.Allocationj=Pnum.Allocationj+Pnum.Requestj;Pnum.Needj=Pnum.Needj-Pnum.Requestj;Pi.Maxj=tota
7、lij;Pi.Allocationj=haveij;Pi.Needj=wantij;returnT;Print();/状态输出while(scanf(%d,&num)!=EOF)printf(输入进程%d对这三类资源的需求向量(用空格隔开):n,num);scanf(%d%d%d,&Pnum.Request0,&Pnum.Request1,&Pnum.Request2);if(tryAdminister(num)=T)safeCheck(num);Recycle();/资源回收if(backDos()=T)/所有进程完那么返回操作系统return0;/*-安全性检查函数-*/k=0;voids
8、afeCheck(intnum)for(i=0;in;i+)inti,j;if(Finishi=F)intln,k;/安全序列for(j=0;jWorkj)break;for(j=0;jm;j+)/初始化工作向量Workj=Availablej;if(j=m)/如果分配成功for(i=0;in;i+)/初始化判断向量for(j=0;jm;j+)Finishi=F;Workj=Workj+Pi.Allocationj;li=0;/*-状态输出-*/Finishi=T;voidPrint()lk=i;k+;i=-1;/安全序列inti;/就重新查找下一个可分配成功的进程printf(此时资源分配情
9、况:n);printf(*n);for(i=0;in;i+)if(Finishi=F)printf(t最大需求t已分配tt需要分配t可用资源n);for(i=0;in;i+)/输出进程资源分配状态printf(分配不成功,系统将处于不安全状态.nn);printf(P%dt%d%d%dtt,i,Pi.Max0,Pi.Max1,Pi.Max2);printf(%d%d%dtt,Pi.Allocation0,Pi.Allocation1,Pfor(j=0;jm;j+)/假设分配不成功将进程num恢复到初始时刻状Availablej=Availablej+Pnum.Requestj;i.Alloca
10、tion2);Pnum.Allocationj=Pnum.Allocationj-Pnum.Requestj;Pnum.Needj=Pnum.Needj+Pnum.Requestj;printf(%d%d%dtt,Pi.Need0,Pi.Need1,Pi.Need2);if(i=0)printf(%d%d%dn,Available0,Available1,Available2);elseprintf(n);break;printfif(i=n)(*n);printf(系统安全,一个进程安全序列如下:n);printf(输入下一时刻需要分配的进程号:n);for(i=0;i,li);/*-资源回
11、收-*/elsevoidRecycle()printf(P%dnn,li);inti,j;物业安保培训方案for(i=0;in;i+)为规范保安工作,使保安工作系统化/规范化,最终使保安具备满足工作需要的知识和技能,特制定本教学教材大纲。for(j=0;jm;j+)if(Pi.Needj!=0)break;一、课程设置及内容全部课程分为专业理论知识和技能训练两大科目。if(j=m)其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。if(Pi.flag=F)二培训的及要求培训目的/假设进程
12、已得到所有资源并运行完那么回收资源printf(进程P%d已运行完;nn,i);for(j=0;jm;j+)1保安人员培训应以保安理论知识、消防知识、法律常识教学为主,在教学过程中,应要求学员全面熟知保安理论知识及消防专业知识,在工作中的操作与运用,并基本掌握现场保护及处理知识2职业道德课程的教学应根据不同的岗位元而予以不同的内容,使保安在各自不同的工作岗位上都能养成具有本职业特点的良好职业道德和行为规范法律常识教学是理论课的主要内容之一,要求所有保安都应熟知国家有关法律、Availablej=Availablej+Pi.Allocationj;Pi.Allocationj=0;法规,成为懂法
13、、知法、守法的公民,运用法律这一有力武器与违法犯罪分子作斗争。工作入口门卫守护,定点守卫及区域巡逻为主要内容,在日常管理和发生突发事件时能够运用所学的技能保护公司财产以及自身安全。Pi.flag=T;2、培训要求1保安理论培训通过培训使保安熟知保安工作性质、地位、任务、及工作职责权限,同时全面掌握保安专业知识以及在具体工作中应注意的事项及一般情况处置的原那么和方法。/*-所有进程运行完就返回操作系统-*/intbackDos()2消防知识及消防器材的使用inti;for(i=0;in;i+)if(Pi.flag!=T)returnF;通过培训使保安熟知掌握消防工作的方针任务和意义,熟知各种防火的措施和消防器材设施的操作及使用方法,做到防患于未燃,保护公司财产和员工生命财产的安全。3)法律常识及职业道德教育printf(所有进程已经运行完,程序结束!n);returnT;通过法律常识及职业道德教育,使保安树立法律意识和良好的职业道德观念,能够运用法律知识正确处理工作中发生的各种问题;增强保安人员爱岗敬业、无私奉献更好的为公司服务的精神。4)工作技能培训