操作系统实验报告(范例三)不完整

上传人:德****1 文档编号:1081649 上传时间:2017-05-27 格式:DOC 页数:30 大小:884KB
返回 下载 相关 举报
操作系统实验报告(范例三)不完整_第1页
第1页 / 共30页
操作系统实验报告(范例三)不完整_第2页
第2页 / 共30页
操作系统实验报告(范例三)不完整_第3页
第3页 / 共30页
操作系统实验报告(范例三)不完整_第4页
第4页 / 共30页
操作系统实验报告(范例三)不完整_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《操作系统实验报告(范例三)不完整》由会员分享,可在线阅读,更多相关《操作系统实验报告(范例三)不完整(30页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告实验课程: 学生姓名: 学 号: 专业班级: 年 月 日目 录一、 实验三 页码二、 实验四 页码三、 实验五 页码南 昌 大 学 实 验 报 告-( 1) 编 程 实 现 银 行 家 安 全 算 法学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验目的通过实验加强对银行家安全算法的理解和掌握。二、实验内容熟悉避免死锁发生的方法,死锁与安全序列的关系,编程实现银行家算法,要求输出进程的安全序列。三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤1、 分析银行家算法结构;2、 画出银行家算法的流程

2、图,即设计说明;3、 根据画出的流程图使用 C 语言编写相应的代码(代码过长,放到最后) ;程序主要由 main 函数和以下几个函数组成:void input();用户输入银行家算法的初始数据;void output();输出当前系统资源分配情况;void change();当请求资源满足要求时,进行分配,系统资源发生改变;int check();安全性算法,检查是否存在安全序列;void outputsafe();输出安全序列的资源分配表。4、 检查代码,将编出的代码编译、链接,验证其正确性。开 始输 入 银 行家 算 法 初始 数 据执 行 安 全 性 算法数 据 是 否 正 确是 否 存

3、 在 安 全 序 列输 入 进 程P i 发 出 的请 求 向 量请 求 资 源 是 否小 于 需 求 资 源系 统 将 资 源 分 配 给 P i执 行 算 法 的是 否 为 初 始 数 据结 束资 源 分 配 无效 , 恢 复 分 配前 的 系 统 资 源情 况输 出 当 前 资源 分 配 表NYNYNY输 出 安 全 序 列的 资 源 情 况是 否 有 进 程发 出 请 求 向 量NYNY请 求 资 源 是 否小 于 系 统 资 源Y进程 P i 需等待NY五、实验数据及处理结果六、实验体会或对改进实验的建议七、参考资料八、实验代码#include #include #include i

4、nt max53; /开始定义银行家算法中需要用到的数据int allocation53;int need53;int available3;int request53;char *finish5;int safe5;int n,i,m;int k=0;int j=0;int work3;int works53;void start(); /表示程序开始void end(); /表示程序结束void input(); /输入数据void output(); /输出数据void change(); /系统分配资源,原有资源情况改变void outputsafe(); /输出安全序列的资源分配情况

5、int check(); /安全性算法void main() /主程序开始start();for (;j=0;) /确认输入数据的正确性,若输入错误,重新输入input();printf(以下为进程资源情况,请确认其是否正确:n);output();printf(数据是否无误:n 正确:输入 1n 错误:输入 0n 请输入:);scanf(%d,&j);printf(数据确认无误,算法继续。n); if (check()=0) /若 check 函数返回值为,表示输入的初始数据找不到安全序列,无法进行下一步,程序结束end();exit(0);for(;j=1;) /当有多个进程请求资源时,循

6、环开始printf(请输入请求资源的进程 i(0、 、 、 、):); /输入发出请求向量的进程及请求向量scanf(%d,&i);printf(请输入进程 P%d 的请求向量 Request%d: ,i,i);for(n=0;nneedi0 | requesti1needi1 | requesti2needi2;) /若请求向量大于需求资源,则认为是输入错误,要求重新输入printf(数据输入有误,请重试!n 请输入进程 P%d 的请求向量 Request%d:,i,i);for(n=0;nP%d-P%d-P%d-P%d,系统是安全的n,safe0,safe1,safe2,safe3,saf

7、e4);j=1;outputsafe(); /输出安全序列的资源分配表return 1;南 昌 大 学 实 验 报 告-( 2) 进 程 调 度 算 法 的 实 现学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验目的通过实验加强对进程调度算法的理解和掌握。二、实验内容编写程序实现进程调度算法,具体可以编写程序实现先来先服务算法或优先度高者调度算法。三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤五、实验数据及处理结果六、实验体会或对改进实验的建议七、参考资料八、实验代码#include #include

8、#include #define N 5 /进程个数,可改变int rtN; /到达时间int stN; /服务时间int ctN; /完成时间int cytN; /周转时间float rctN; /带权周转时间float av2; /平均数int n,m;void start(); /表示程序开始void end(); /表示程序结束void input(); /输入数据void random(); /系统随机产生数据void ordination(); /对数据按到达时间进行排序void fcfs(); /先来先服务计算void output(); /输出结果void main()star

9、t();int which;int c=1;for (;c=1;)for (;)printf(输入数据还是由系统随机产生数据?n1 、输入数据t2 、系统随机产生数据n请输入:);scanf(%d,&which);if (which=1)input();break;elseif (which=2)random();break;elseprintf(输入错误,请重新输入!);ordination(); /进程按照到达时间进行排序fcfs();output();printf(继续输入 1,退出输入 0。请输入:);scanf(%d,&c);end();void line() /美化程序,使程序运行

10、时更加明朗美观printf(*n);void start() /表示 FCFS 算法开始line();printf( 欢迎使用 FCFS 算法 n);printf( Designed by 伍明利n);line();void end() /表示 FCFS 算法结束line();printf( FCFS 算法结束n);line();void input()printf(请输入%d 个进程的到达时间:,N);for (n=0;n=rtn) /考虑当前一个进程完成而后一个进程还没有到达的情况ctn=ctn-1+stn;elsectn=rtn+stn;for (n=0;n 3 2 ?F I F O 页

11、 面 置 换算 法L R U 页 面 置 换 算法L F U 页 面 置 换 算法i = i + 1结 束NY页面置换算法整体结构开 始内 存 数 据 初 始 化 , 物 理块 0 3 2 0 ?结 束将 页 面 p n 调 入 内 存YNFIFO 页面置换算法开 始内 存 数 据 初 始 化 , 物 理块 0 3 2 0 ?结 束将 页 面 p n 调 入 内 存YN存 在 该 页 面 的 物 理 块t i m g m = 0LRU 页面置换算法开 始内 存 数 据 初 始 化 , 物 理块 0 5 0 ?将 页 面 p n 调 入 内 存比 较 物 理 块 中 页 面 在 之前 的 5 0

12、 次 调 用 中 出 现 的次 数 , 将 页 面 p n 调 入使 用 最 少 的 页 面 占 用 的物 理 块n 3 2 0 ?结 束按 照 L R U 页 面 置 换 算法 调 入 页 面n + +YNYNLFU 页面置换算法五、实验数据及处理结果六、实验体会或对改进实验的建议七、参考资料八、 实验代码#include #include #include #define N 320#define M 32#define R 32#define runtime 100 /程序运行次数,保证结果的准确性int run;float average332; /取平均数,使结果更加准确int s,

13、i; /s表示产生的随机数,i 表示物理块数int m,n,h; /循环专用int k,g,f;int sum; /缺页次数float r; /rate命中率int pN; /page页数int aN; /执行的指令int pbM; /physical block用户内存容量(物理块)void FIFO();void LRU();void LFU();void line();void start();void end();void main()start();srand(int) time (NULL); /以计算机当前时间作为随机数种子for (run=0;runmax)max=timem;k=m;pbk=pn;timek=0; /该物理块中页面停留时间置零sum+; /缺页数+1elsepbf=pn;timef=0;sum+;f=-1;for (m=0;mmax)k=m;max=timem;pbk=pn;timek=0;sum+;elsepbf=pn;timef=0;sum+;f=-1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号