您所在位置: 网站首页 / 操作系统课设.docx / 文档详情
操作系统课设.docx 立即下载
2025-08-27
约4.4万字
约68页
0
41KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统课设.docx

操作系统课设.docx

预览

免费试读已结束,剩余 63 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

操作系统课设

第一篇:操作系统课设操作系统课程设计一实验目的在多道程序或多任务系统中,系统中同时处于就绪态的进程有若干个,也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地进行,必须选择某种调度策略,以选择一进程占用处理机。要求学生设计一个模拟单处理机调度的算法,以加深对处理机调度的概念理解。通过自己变成来实现页面调度算法,进一步理解页面调度算法的概念及含义,提高对页面调度算法的认识,同时提高自己的动手实践能力。加深我们对主存与辅助存储器统一管理、逻辑地址与物理地址转换、部分装入和部分替换问题的理解,同时,有利于我们对虚拟存储技术的理解。为了了解系统的资源分配情况,假定系统的任何一种资源在任一时刻只能被一个进程使用。任何进程已经占用的资源只能由进程自己释放,而不能由其他进程抢占。当进程申请的资源不能满足时,必须等待。因此,只要资源分配算法能保证进程的资源请求,且不出现循环等待,则系统不会出现死锁。编写模拟系统进行资源调度的程序,一个是随机算法,即只要系统剩余资源能满足进程的当前请求,就立即将资源分配给进程,以观察死锁产生情况;一个是采用银行家算法,有效地避免死锁的产生。模拟进程的资源分配算法,了解死锁的产生和避免的办法。通过设计一个磁盘调度模拟系统,深入理解磁盘的工作原理,从而使磁盘调度更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对磁盘调度算法的理解。具体实现为,运用一门高级编程语言编写程序模拟磁盘调度的过程,采用先来先服务算法和电梯算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。能够处理以下的情形:(1)可根据需要输入当前磁头的位置,磁头移动方向;(2)能够输入柱面数,磁道访问序列等参数,并能够显示调度结果(磁盘访问请求的磁道号以及磁头移动的总磁道数)。二、实验内容利用C++实验以下算法:处理机管理中:(1)先来先服务算法(FCFS)实验题目:假设系统中有3~5个进程,每个进程由一个进程控制块(PCB)来标识。设置一个队首指针head,用来指出最先进入系统的进程,各就绪进程通过链接指针连在一起。处理机调度时总是选择队首指针指向的进程投入运行。由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行。估计运行时间减1,用这个操作来模拟进程的一次运行,而且省去进程的现场保护和现场恢复工作。在所设计的程序中应有显示或打印语句,能显示或打印正运行的进程名字、已运行时间、还剩时间、就绪对列中进程名字等。所有进程运行完成时,给出各进程的周转时间和平均周转时间.数据结构设计如下:structPCB//定义进程控制块{charID[3];//进程号charname[10];//进程名charstate;//运行状态intarrivetime;//到达时间intstarttime;//进程开始时间intfinishtime;//进程结束时间intservicetime;//运行时间floatturnaroundtime;//周转时间floatweightedturnaroundtime;//带权周转时间structPCB*next;//指向下个进程};(2)时间片轮算法实验题目:假设系统中有3~5个进程,每个进程由一个进程控制块(PCB)来代表。按照进程到达的先后顺序排成一个循环队列,设一个队首指针指向第一个到达的进程的首址。另外再设一个当前运行进程指针,指向当前正运行的进程。执行处理机调度时,首先选择队首的第一个进程运行。由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行:估计运行时间减1用这个操作来模拟进程的一次运行。进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程,同时还应判断该进程的剩余运行时间是否为0.若不为0,则等待下一轮的运行,若该进程的剩余运行时间为0,则将该进程的状态置为完成状态“C”,并退出循环队列。若就绪队列不空,则重复上述的步骤(4)和(5)直到所有进程都运行完为止。在所设计的调度程序中,应包含显示或打印语句吧,已便显示或打印每次选中进程的名称及运行一次后队列的变化情况。数据结构设计如下:typedefstructpcb//进程控制块定义{charpname[N];//进程名intruntime;//运行时间intarrivetime;charstate;structpcb*next;}PCB;PCBhead_input;PCBhead_run;PCB*pcb_input;voidinputprocess();函数intreadydata();intrunprocess();进程的函数intreadyprocess();staticcharR=
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

操作系统课设

文档大小:41KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用