ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:1MB ,
资源ID:16238735      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16238735.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上海大学操作系统二实验报告全Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

上海大学操作系统二实验报告全Word格式文档下载.docx

1、进程所需时间片数进程状态进程控制块链结构如下:其中:RUN当前运行进程指针;HEAD进程就绪链链首指针;TAID进程就绪链链尾指针。2、 算法与框图(1) 优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减 1,说明它已运行了一个时间片,优先数也减 3,理由是该进程如果在一个时间片中完成不了, 优先级应该降低一级。 接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。 原运行进程再按其优先数大小插入就绪链, 且改变它们对应的进程状态,直至所有进程都运行完各自的

2、时间片数。(2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项 (相当于优先数法的优先数记录项位置) 。每过一个时间片,运行进程占用处理机的时间片数加 1,然后比较占用处理机的时间片数是否与该进程的轮转时间片数相等, 若相等说明已到达轮转时间, 应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。(3) 程序框图运行结果:Priority算法:Round Robin算法:实验代码:/操作系统实验-进程调度#include ctimecstringcstdlib

3、const long n=5;struct pcbtype /进程控制块结构 long id, priority, runtime, totaltime; char status; /R, W, F - 运行,就绪,完成PCBn+1; long linkn+1; /链表结构 long RUN, HEAD, TAIL;/选择算法 long ChooseAlgo() char s128; printf(Please type the Algorithm(PriorityRound Robin):); gets(s); if (s0=P | s0=p) return 1; return 0; /初始

4、化 void init() long i; for (i=1; ii; j-) if (PCBsortj.priority PCBsortj-1.priority) k=sortj; sortj=sortj-1; sortj-1=k; HEAD=sort1;n; linksorti = sorti+1; TAIL = sortn; linkTAIL = -1; RUN = -1; /就绪链设置完毕 RUN = HEAD; PCBRUN.status = R HEAD = linkHEAD; /运行链首进程 while (RUN != -1) showit(); PCBRUN.totaltime

5、-; PCBRUN.priority -= 3; /优先级减3 PCBRUN.runtime+; if (PCBRUN.totaltime = 0) /进程运行完成 PCBRUN.status=F RUN = HEAD; if (HEAD ! else= -1 & PCBRUN.priority PCBRUN.priority) k=linkk; if (k = TAIL) linkk = RUN; /插入链尾之后 TAIL = RUN; linkRUN = -1; RUN = HEAD; linkRUN = linkk; /插入链中 /链首进程开始运行/轮转调度算法 void main_ro

6、und_robin() HEAD = 1; linki = i+1; TAIL = n; linkTAIL = -1;/运行首进程 if (PCBRUN.totaltime = 0)/进程运行完成 HEAD = linkHEAD; PCBRUN.runtime % PCBRUN.priority=0)/轮转时间到 PCBRUN.status= /插入链尾 linkTAIL=RUN; linkRUN=-1; TAIL=RUN; RUN=HEAD;/链首进程开始运行 HEAD=linkHEAD;/主函数 int main() long algo; srand(time(NULL); algo =

7、ChooseAlgo(); if (algo = 1) main_priority();/优先数法 main_round_robin();/简单轮转法SYSTEM FINISHEDn实验体会: 通过写代码的过程更加清晰地了解了两种算法的思想和用处,对算法的了解加深的同事也锻炼了写代码的能力。计算机操作系统实验三报告实验三 题目 : 请求页式存储管理近年来,由于大规模集成电路(LSI)和超大规模集成电路(VLSI)技术的发展,使存储器的容量不断扩大,价格大幅度下降。但从使用角度看,存储器的容量和成本总受到一定的限制。所以,提高存储器的效率始终是操作系统研究的重要课题之一。虚拟存储技术是用来扩大内

8、存容量的一种重要方法。学生应独立地用高级语言编写几个常用的存储分配算法,并设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。实验内容 :为了比较真实地模拟存储管理,可预先生成一个大致符合实际情况的指令地址流。然后模拟这样一种指令序列的执行来计算和分析各种算法的访问命中率。 本实验采用页式分配存储管理方案, 并通过分析计算不同页面淘汰算法情况下的访问命中率来比较各种算法的优劣。 另外也考虑到改变页面大小和实际存储器容量对计算结果的影响, 从而可为算则好的算法、合适的页面尺寸和实存容量提供依据。 实验是按下述原则生成指令序列的:(1) 50%的指令是顺序

9、执行的。(2) 25%的指令均匀散布在前地址部分。(3) 25%的指令均匀散布在后地址部分。示例中选用最佳淘汰算法(OPT)和最近最少使用页面淘汰算法(LRU)计算页面命中率。公式为假定虚存容量为 32K,页面尺寸从 1K 至 8K,实存容量从 4 页至 32 页。(1)最佳淘汰算法(OPT)这是一种理想的算法,可用来作为衡量其他算法优劣的根据,在实际系统中是难以实现的,因为它必须先知道指令的全部地址流。 由于本示例中已预生成了全部的指令地址流, 故可计算出最佳命中率。该算法的准则是淘汰已满页表中不再访问或是最迟访问的的页。 这就要求将页表中的页逐个与后继指令访问的所有页比较,如后继指令不在访

10、问该页,则把此页淘汰,不然得找出后继指令中最迟访问的页面淘汰。可见最佳淘汰算法要花费比较长的运算时间。(2)最近最少使用页淘汰算法(LRU)这是一种经常使用的方法,有各种不同的实施方案,这里采用的是不断调整页表链的方法,即总是淘汰页表链链首的页,而把新访问的页插入链尾。如果当前调用页已在页表内,则把它再次调整到链尾。这样就能保证最近使用的页,总是处于靠近链尾部分,而不常使用的页就移到链首,逐个被淘汰,在页表较大时,调整页表链的代价也是不小的。操作过程 :编写程序:iostreamprocess.halgorithmcmathusing namespace std;int adress32;/全

11、局变量数组,地址流int p;/全局变量p是一共有多少地址流void init()/初始化函数, int t; srand(time(0);/随机产生指令序列 p=12+rand()%32; cout地址流个数 P=pendl;随机产生的地址流序列n for(int i=0,j=0;ip;i+,j+) t=1+rand()%9; adressi=t;/将随机产生的指令数存入页面流a%d=%d ,i,t); j=j%5; if(i10) printf( if(j=4) printf(nvoid OPT(int n) /FIFO算法,n是M的值 int e,q=p,m=n-1; int flag;

12、 int flag1; int queye=0; int leaflink32; memset(leaflink,0,sizeof(leaflink); for(int x=0;xq;x+) e=x; flag=0; for(int i=0;i+) if(leaflinki=adressx) flag=1; flag1=i; printf(有相同n break; if(flag=0) int k=0; for(int j=0;j=m) queye+; if(flag=1) int temp10=0; for(int i=0;=m; for(int a=e+1;atempi) min=tempi

13、; index=i; int l=leaflinkindex; leaflinkindex=leaflink0; leaflink0=l;j+)leaflink%d=%d ,j,leaflinkj);M=n时FIFO的命中率为:(1-(double)queye/p)*100%void LRU(int n)/LRU算法 int i; int m=n-1; int q=p; int e; int y; for(i=0;X=%d,lru%d = adress%d=%d ,flag= 1n,x,i,x,adressx); for(int j=0; leaflinkk=leaflinkk+1; leaf

14、linkm=adresse; queye+; else if(flag=1) y=flag1;j+) leaflinkflag1=leaflinkflag1+1; flag1+; leaflink3=adresse; printf(发现相同后,改变leaflink%d=%dn,m,leaflink3); for(int j=0;发生替换次数:queyec; if(c=O for(int i=3;4; OPT(i); else if(c=L) for(int i=4;5; LRU(i); cout最近最少使用:最佳淘汰:实验体会 : 通过这次实验,我了解了采用页式分配存储管理方案,并对页式分配存

15、储管理的两个算法最佳淘汰算法和最近最少使用页淘汰算法有了更深入的了解,为之后的学习奠定了基础。计算机操作系统实验四报告实验四 题目 : 文件操作与管理随着社会信息量的极大增长, 要求计算机处理的信息与日俱增, 涉及到社会生活的各个方面。因此,文件管理是操作系统的一个极为重要的组成部分。学生应独立地用高级语言编写和调试一个简单的文件系统, 模拟文件管理的工作过程。 从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。1.要求:(1)实际一个 n 个用户的文件系统,每个用户最多可保存 m 个文件。(2)限制用户在一次运行中只能打开 l 个文件

16、。(3)系统应能检查打入命令的正确性,出错要能显示出错原因。(4)对文件必须设置保护措施,如只能执行,允许读、允许写等。在每次打开文件时根据本次打开的要求,再次设置保护级别,即可有二级保护。(5)对文件的操作至少应有下述几条命令:creat 建立文件。delete 删除文件。open 打开文件。close 关闭文件。read 读文件。write 写文件。2.示例:(1)程序采用二级文件目录,即设置了主文件目录(MFD)和用户文件目录(UFD) 。前者应包含文件主(即用户)及他们的目录区指针;后者应给出每个文件主占有的文件目录,即文件名,保护码,文件长度以及他们存放的位置等。另外为打开文件设置了运行文件目录(AFD) ,在文件打开时应填入打开文件号,本次打开保护码和读写指针等。3.算法与框图(1)因系统小,文件目录的检索使用了简单的线性搜索,而没有采用 Hash 等有效算法。(2)文件保护简单实用了三位保护码,对应于允许读、允许写和运行执行,如下所示: 1 1 1允许写 允许读 允许执行如对应位为 0,则不允许。实验源码:#inclu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1