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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

自考操作系统上机操作答案全.docx

1、自考操作系统上机操作答案全1.进程调度2.可变分区存储管理方案中的内存分配3.页式存储管理方案中的内存分配4.虚拟存储管理器的页面调度5.磁盘存储空间的管理7.磁盘调度8.作业调度9.银行家算法10.死锁检测算法返回首页/*进程调度算法有FIFO,优先数调度算法,时间片轮转调度算法,分级调度算法,目前主要是考FIFO和优先数调度算法(静态优先级)。 输入:进程流文件,其中存储的是一系列要执行的进程,每个作业包括四个数据项: 进程名 进程状态(1就绪 2等待 3运行)所需时间优先数(0级最高) 输出:进程执行流 和等待时间 平均等待时间 本程序包括:FIFO,优先数调度算法,时间片轮转调度算法

2、VC+调试通过 (C)copyright by Neo 欢迎大家测试 请问题请Email:sony006*/ #include#include#include const int block_time=10; /定义时间片的长度为10秒const int MAXPCB=100; /定义最大进程数 /定义进程结构体typedef struct nodechar name20;int status;int time;int privilege; int finished;int wait_time;pcb; pcb pcbsMAXPCB;int quantity; /初始化函数void initi

3、al()int i; for(i=0;iMAXPCB;i+)strcpy(pcbsi.name,);pcbsi.status=0;pcbsi.time=0;pcbsi.privilege=0; pcbsi.finished=0;pcbsi.wait_time=0; quantity=0; /读数据函数int readData()FILE *fp;char fname20;int i; coutfname;if(fp=fopen(fname,r)=NULL)cout错误,文件打不开,请检查文件名endl;elsewhile(!feof(fp) fscanf(fp,%s %d %d %d,pcbs

4、quantity.name,&pcbsquantity.status,&pcbsquantity.time,&pcbsquantity.privilege); quantity+;/输出所读入的数据cout输出所读入的数据endl;cout进程名 进程状态所需时间优先数endl;for(i=0;iquantity;i+) coutpcbsi.name pcbsi.statuspcbsi.timepcbsi.privilegeendl;return(1);return(0); /重置数据,以供另一个算法使用void init() int i; for(i=0;iMAXPCB;i+) pcbsi.

5、finished=0;pcbsi.wait_time=0; /先进先出算法void FIFO()int i,j;int total; /输出FIFO算法执行流coutendl-endl;coutFIFO算法执行流:endl;cout进程名等待时间endl;for(i=0;iquantity;i+)coutpcbsi.name pcbsi.wait_timeendl;for(j=i+1;jquantity;j+) pcbsj.wait_time+=pcbsi.time;total=0;for(i=0;iquantity;i+)total+=pcbsi.wait_time;cout总等待时间:to

6、tal平均等待时间:total/quantityendl; /优先数调度算法void privilege()int i,j,p;int passed_time=0;int total; int queueMAXPCB;int current_privilege=1000; for(i=0;iquantity;i+)current_privilege=1000;for(j=0;jquantity;j+) if(pcbsj.finished=0)&(pcbsj.privilegecurrent_privilege)p=j;current_privilege=pcbsj.privilege; que

7、uei=p;pcbsp.finished=1;pcbsp.wait_time+=passed_time;passed_time+=pcbsp.time; /输出优先数调度执行流coutendl-endl;cout优先数调度执行流:endl;cout进程名等待时间endl;for(i=0;iquantity;i+)coutpcbsqueuei.namepcbsqueuei.wait_timeendl; total=0;for(i=0;iquantity;i+)total+=pcbsi.wait_time;cout总等待时间:total平均等待时间:total/quantityendl; /时间片

8、轮转调度算法void timer()int i,j,number,flag=1;int passed_time=0;int max_time=0;int round=0;int queue1000;int total=0; while(flag=1)flag=0;number=0; for(i=0;i1) for(i=0;iquantity;i+) if(pcbsi.finished=0)flag=1;queuetotal=i;total+;if(pcbsi.time=block_time*(round+1) pcbsi.finished=1; round+;if(queuetotal-1=q

9、ueuetotal-2)total-; coutendl-endl;cout时间片轮转调度执行流:;for(i=0;itotal;i+)coutpcbsqueuei.name; /显示版权信息函数void version()coutendlendl; cout endl;cout 进程调度模拟系统 endl;cout endl;cout (c)All Right ReservedNeo endl;cout sony006 endl;cout version 2004build 1122endl;cout endl;coutendlendl; /主函数void main()int flag; v

10、ersion(); initial(); flag=readData(); if(flag=1)FIFO();init(); privilege();init(); timer(); 返回首页 /*可变分区调度算法有:最先适应分配算法,最优适应分配算法,最坏适应算法用户提出内存空间的申请;系统根据申请者的要求,按照一定的分配策略分析内存空间的使用情况,找出能满足请求的空闲区,分给申请者;当程序执行完毕或主动归还内存资源时,系统要收回它所占用的内存空间或它归还的部分内存空间。1程序运行时首先接收输入:空闲区数据文件,包括若干行,每行有两个数据项:起始地址、长度(均为整数),各数据项以逗号隔开。2

11、建立空闲区表并在屏幕上显示输出空闲区表内容,空闲区表中记录了内存中可供分配的空闲区的始址和长度,用标志位指出该分区是否是未分配的空闲区。3从用户界面根据用户提示接收一个内存申请,格式为:作业名、申请空间的大小。4按照最差(最坏)适配算法选择一个空闲区,分割并分配,修改相应的数据结构(空闲区表),填写内存已分配区表(起始地址、长度、标志位),其中标志位的一个作用是指出该区域分配给哪个作业。5重复3、4,直到输入为特殊字符(0)。6在屏幕上显示输出新的空闲区表和已分配区表的内容。本程序包括:FIFO,最优适应分配算法,最坏适应算法VC+调试通过(C)copyright by Neo欢迎大家测试 请

12、问题请Email:sony006*/#include#include#include#includeconst int MAXJOB=100;/定义表最大记录数typedef struct nodeint start;int length;char tag20;job;job freesMAXJOB;/定义空闲区表int free_quantity;job occupysMAXJOB;/定义已分配区表int occupy_quantity;/初始化函数void initial()int i;for(i=0;iMAXJOB;i+)freesi.start=-1;freesi.length=0;s

13、trcpy(freesi.tag,free);occupysi.start=-1;occupysi.length=0;strcpy(occupysi.tag,);free_quantity=0;occupy_quantity=0;/读数据函数int readData()FILE *fp;char fname20;coutfname;if(fp=fopen(fname,r)=NULL)cout错误,文件打不开,请检查文件名endl;elsewhile(!feof(fp) fscanf(fp,%d,%d,&freesfree_quantity.start,&freesfree_quantity.l

14、ength); free_quantity+;return 1;return 0;/sortvoid sort()int i,j,p;for(i=0;ifree_quantity-1;i+)p=i;for(j=i+1;jfree_quantity;j+) if(freesj.startfreesp.start)p=j; if(p!=i) freesfree_quantity=freesi; freesi=freesp; freesp=freesfree_quantity;/显示函数void view()int i;coutendl-endl;cout当前空闲表:endl;cout起始地址长度状

15、态endl;for(i=0;ifree_quantity;i+)cout.setf(2);cout.width(12);coutfreesi.start;cout.width(10);coutfreesi.length;cout.width(8);coutfreesi.tagendl;coutendl-endl;cout当前已分配表:endl;cout起始地址长度 占用作业名endl;for(i=0;ioccupy_quantity;i+)cout.setf(2);cout.width(12);coutoccupysi.start;cout.width(10);coutoccupysi.len

16、gth;cout.width(8);coutoccupysi.tagendl;/最先适应分配算法void earliest()char job_name20;int job_length;int i,j,flag,t;coutjob_name;cinjob_length;flag=0;for(i=0;i=job_length) flag=1;if(flag=0)coutendlSorry,当前没有能满足你申请长度的空闲内存,请稍候再试=job_length)t=1; i+;i-;occupysoccupy_quantity.start=freesi.start;strcpy(occupysoc

17、cupy_quantity.tag,job_name);occupysoccupy_quantity.length=job_length;occupy_quantity+;if(freesi.lengthjob_length) freesi.start+=job_length; freesi.length-=job_length;else for(j=i;jfree_quantity-1;j+)freesj=freesj+1; free_quantity-;cout内存空间成功:)endl;/最优适应分配算法void excellent()char job_name20;int job_len

18、gth;int i,j,flag,t;coutjob_name;cinjob_length;flag=0;for(i=0;i=job_length) flag=1;if(flag=0)coutendlSorry,当前没有能满足你申请长度的空闲内存,请稍候再试=job_length)t=1; i+;i-;for(j=0;j=job_length)&(freesj.lengthjob_length) freesi.start+=job_length; freesi.length-=job_length;else for(j=i;jfree_quantity-1;j+)freesj=freesj+1

19、; free_quantity-;cout内存空间成功:)endl;/最坏适应算法void worst()char job_name20;int job_length;int i,j,flag,t;coutjob_name;cinjob_length;flag=0;for(i=0;i=job_length) flag=1;if(flag=0)coutendlSorry,当前没有能满足你申请长度的空闲内存,请稍候再试=job_length)t=1; i+;i-;for(j=0;j=job_length)&(freesj.lengthfreesi.length) i=j;occupysoccupy

20、_quantity.start=freesi.start;strcpy(occupysoccupy_quantity.tag,job_name);occupysoccupy_quantity.length=job_length;occupy_quantity+;if(freesi.lengthjob_length) freesi.start+=job_length; freesi.length-=job_length;else for(j=i;jfree_quantity-1;j+)freesj=freesj+1; free_quantity-;cout内存空间成功:)endl;/撤消作业 void finished()char job_name20;int i,j,flag,p=0;int start;int length;coutjob_name;flag=-1;for(i=0;ioccupy_quantity;i+)if(!strcmp(occupysi.tag,job_name) flag=i; start=occupysi.start; length=occupysi.length;if(flag=-1)cout没有这个作业名endl;else/加入空闲表

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

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