wap手机网站尺寸,建设中小企业网站,wordpress个人空间,外管局网站做延期收款报告《操作系统》课程综合性实验报告姓名#xff1a; 学号#xff1a; 2016 年 11 月 20 日实验题目进程调度算法程序设计一、实验目的通过对安全性算法和银行家算法的模拟#xff0c;进一步理解资源分配的基本概念#xff0c;加深对资源申请#xff0c;资源分配(银行家算法)以…《操作系统》课程综合性实验报告姓名 学号 2016 年 11 月 20 日实验题目进程调度算法程序设计一、实验目的通过对安全性算法和银行家算法的模拟进一步理解资源分配的基本概念加深对资源申请资源分配(银行家算法)以及系统是否能分配(安全性算法)资源的理解。二、设备与环境1. 硬件设备PC机一台2. 软件环境安装Windows操作系统或者Linux操作系统并安装相关的程序开发环境如C \C\Java 等编程语言环境。三、实验内容用C语言(或其它语言如Java)实现对资源的资源申请与分配(一)银行家算法(bank()函数)进程i发出请求资源申请(1)如果Request [j]need[i,j],转向步骤(2),否则认为出错因为他所需要的资源数已经超过它所宣布的最大值。(2)如果Request i[j]available[i,j]转向步骤(3)否则表示尚无足够资源进程i需等待。(3)若以上两个条件都满足则系统试探着将资源分配给申请的进程并修改下面数据结构中的数值Available[i,j] Available[i,j]- Request [j]Allocation[i][j] Allocation[i][j] Request [j]need[i][j] need[i][j]- Request [j](4)试分配后执行安全性检查调用check()函数检查此次资源分配后系统是否处于安全状态。若安全才正式将资源分配给进程。否则本次试探分配作废恢复原来的资源分配状态让该进程等待。(5)用do{…}while 循环语句实现输入字符y/n判断是否继续进行资源申请。(二)安全性算法(safe()函数):(1)设置两个向量 工作向量Work它表示系统可提供给进程继续运行所需的各类资源数目在执行安全性算法开始时Work Available。 工作向量Finish它表示系统是否有足够的资源分配给进程使之运行完成。开始时先做Finish[i]false当有足够的资源分配给进程时 再令Finish[i]true。(2)在进程中查找符合以下条件的进程 条件1Finish[i]false 条件2need[i][j]Work[j] 若找到则执行步骤(3)否则执行步骤(4)(3)当进程获得资源后可顺利执行直至完成并释放出分配给它的资源故应执行 Work[j] Work[j] Allocation[i][j] Finish[i]true goto step (2)(4)如果所有的Finish[i]true都满足则表示系统处于安全状态否则处于不安全状态。四、实验结果及分析1.实验设计说明按0由用户输入按1由系统提供数据2.实验代码#include #include #include #define max_process 50 //最大进程数#define max_resource 100//最大资源数#define false 0#define true 1int available[max_resource]{3,3,2};//可利用资源向量int max[max_process][max_resource]{{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};//最大需求矩阵int allocation[max_process][max_resource]{{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};//分配矩阵int need[max_process][max_resource];//需求矩阵int request[max_process][max_resource];//进程需要资源数int finish[max_process];int m5,n3;void init();int safe();void bank();void init2();void print();void print2();void main(){int i;printf(请输入测试数据按0由用户输入测试数据按1由系统提供测试数据\n);scanf(%d,i);switch(i){case 0: init();