- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课内实验报告
课 程 名: 操作系统
任课教师:
专 业:
学 号:
姓 名:
二○一一至二○一二 年度 第 一 学期
南京邮电大学 经济与管理学院
《 操作系统 》课程实验第 一 次实验报告
实验内容及基本要求:
实验项目名称:进程管理与进程同步
实验类型:操作
每组人数: 1
实验内容及要求:
实现银行家算法、进程调度过程的模拟、读者-写者问题的写者优先算法。
了解进程管理的实现方法;
理解和掌握处理进程同步问题的方法。
实验结果:
银行家算法:
银行家算法的基本思想是,系统中的所有进程放入进程集合,在安全状态下系统受到进程的请求后试探性的把资源分配给他,现在系统将剩下的资源和进程集合中其他进程还需要的资源数做比较,找出剩余资源能满足最大需求量的进程,从而保证进程运行完成后还回全部资源。这时系统将该进程从进程集合中将其清除。反复执行上面的步骤,最后检查进程的集合为空时就表明本次申请可行,系统处于安全状态,可以实施本次分配,否则,只要进程集合非空,系统便处于不安全状态,本次不能分配给他,请进程等待。
主要的常量变量 主要模块
#define W 10 //最大进程数 void inputdata()
#define R 20 //最大资源总数 void showdata()
int AVAILABLE[R]; //可利用资源向量 void changdata(int k)
int MAX[W][R]; //最大需求矩阵 void restoredata(int k)
int ALLOCATION[W][R]; //分配矩阵 int chksec(int s)
int NEED[W][R]; //需求矩阵 int chkmax(int s)
int Request[R]; //进程请求向量
void changdata(int k);//进程请求资源数据改变
int chksec(int s); //系统安全性的检测
执行结果如图:
结果分析
银行家算法实现的是当接收到一个系统资源的分配后找到一个安全序列,使得进程间不会发生死锁,若发生死锁则让进程等待。
小结
通过本次银行家算法实验,加深了我对银行家算法的了解,掌握了如何利用银行家算法避免死锁。实验中遇到点问题,通过查阅资料、与同学交流顺利解决。通过这次的实践,使我的理论知识更加的牢固。
进程调度过程的模拟
源程序
#includeiostream int main()using namespace std; { struct Jincheng jinc;struct Jincheng init(jinc);{ int ID[5]; display(jinc); int PRIORITY[5]; int n;? int CPUTIME[5]; bool x=alltime(jinc); int ALLTIME[5]; while(x) int STARTBLOCK[5]; { cout=============endl; int BLOCKTIME[5]; n=select(jinc); char *STATE[5];}; runtime(jinc,n);void init(Jincheng jinc); cout==============endl;int select(const Jinchen
原创力文档


文档评论(0)