操作系统实验要求.doc
《操作系统实验要求.doc》由会员分享,可在线阅读,更多相关《操作系统实验要求.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验一 银行家算法2一、目的和要求2二、实验内容2三、说明2四、实验总结与体会3实验二 进程同步9一、实验内容9二、实验目的9三、实验题目9四、实验报告12实验三 虚拟存储器16一、实验内容16二、实验目的16三、实验题目16四、实验报告22实验四 磁盘驱动调度23一、实验内容23二、实验目的23三、实验题目23四、实验报告25实验一 银行家算法一、目的和要求 银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。二、实验内容 1设计进程对各类资源最大申请表示及初值确定。 2设
2、定系统提供资源初始状况。 3设定每次某个进程对各类资源的申请表示。 4编制程序,依据银行家算法,决定其申请是否得到满足。三、说明算法设计思路:银行家算法又称“资源分配拒绝”法,其基本思想是,系统中的所有进程放入进程集合,在安全状态下系统受到进程的请求后试探性的把资源分配给他,现在系统将剩下的资源和进程集合中其他进程还需要的资源数做比较,找出剩余资源能满足最大需求量的进程,从而保证进程运行完成后还回全部资源。这时系统将该进程从进程集合中将其清除。此时系统中的资源就更多了。反复执行上面的步骤,最后检查进程的集合为空时就表明本次申请可行,系统处于安全状态,可以实施本次分配,否则,只要进程集合非空,系
3、统便处于不安全状态,本次不能分配给他,请进程等待。1数据结构 假设有n个进程m类资源,则有如下数据结构: MAXn*m n个进程对m类资源的最大需求量AVAILABLEm 系统可用资源数 ALLOCATIONn*m n个进程已经得到m类资源的资源量 NEEDn*m n个进程还需要m类资源的资源量2银行家算法 设进程I提出请求Requestm,则银行家算法按如下规则进行判断。 (1)如果Requestm=NEEDI,m,则转(2);否则,出错。(2)如果Requestm=AVAILABLE,则转(3);否则,出错。 (3)系统试探分配资源,修改相关数据: AVAILABLE=AVAILABLE-
4、REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。 3安全性检查 (1)设置两个工作向量WORK=AVAILABLE;FINISHn=FALSE (2)从进程集合中找到一个满足下述条件的进程,FINISHi=FALSE NEED=WORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 WORK=WORK+ALLOCATIONFINISH=TRUE GO TO 2 (4)如所有的进程Finishn
5、=true,则表示安全;否则系统不安全。 四、实验总结与体会源程序示例:#define n 5#define m 3main()/* void input(int *av,int *al,int *need);*/* int read_req(int *request,int *k);*/* int security(int *av,int *al,int *need);*/ int requestm,Availablem,Allocnm,Neednm; int i,j,k,t=0; input(Available,Alloc,Need); while(1) t=0; if(read_req(
6、request,&k) break; for(i=0;im;i+) if(!(requesti=Needk-1i) printf(nillegal!);t=1;break; if(t)continue; for(i=0;im;i+) if(!(requesti=Availablei) printf(nzuce!);t=1;break; if(t)continue; for(i=0;im;i+) Availablei=Availablei-requesti; Allock-1i=Allock-1i+requesti; Needk-1i=Needk-1i-requesti; if(security
7、(Available,Alloc,Need)printf(ncomplete fengpei!); else for(i=0;im;i+) Availablei=Availablei+requesti; Allock-1i=Allock-1i-requesti; Needk-1i=Needk-1i+requesti; printf(n Cannt complete!); input(int *av,int *al,int *ned) int i,j; printf(ninput Available:n); for(i=0;im;i+) scanf(%d,av+i); printf(ninput
8、 Alloc:); for(i=0;in;i+) for(j=0;jm;j+) scanf(%d,al+i*m+j); printf(ninput Need:); for(i=0;in;i+) for(j=0;jm;j+) scanf(%d,ned+i*m+j);int read_req(int *request,int *k) int i,j=0; printf(ninput process and request:); scanf(%d,k); for(i=0;im;i+) scanf(%d,request+i); if(requesti=0)j+; if(j=3)return 1; el
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 要求
限制150内