- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统原理》报告课案
《操作系统原理》
实 验 指 导 书
班级:__信管***_____
学号:__***__
姓名:___***________
信息管理与信息系统教研室
目 录
实验题目二:模拟进程调度功能 4
一、 题目类型: 4
二、 实验目的: 4
三、实验环境: 4
四、实验内容: 4
五、实验要求: 4
六、各功能简要说明: 5
七、程序清单: 5
八、程序中使用的数据结构及符号说明: 11
九、调试程序时出现问题说明及解决的方法: 11
实验题目五:模拟使用银行家算法判断系统的状态 11
一、 题目类型: 11
二、 实验目的: 11
三、实验环境: 11
四、实验内容: 12
五、实验要求: 12
六、各功能简要说明: 13
七、程序清单: 13
21
八、程序中使用的数据结构及符号说明: 21
九、程序调试时出现问题及解决的方法: 22
引 言
操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。
实验题目二:模拟进程调度功能
题目类型:
必做题目。
实验目的:
通过本实验,进一步掌握进程调度的功能和实现原理。
三、实验环境:
1、硬件:PC机及其兼容机。
2、软件:Windows OS,Turbo C或C++、VC++、VS.Net、Java等。
四、实验内容:
设计进程调度功能,至少模拟两种以上调度算法。如:优先级调度算法、时间片调度算法等。
进程调度功能作为一个函数scheduler,加入到实验题目一中。
进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。
若选上一个进程,以显示:进程名、状态、时间片、优先级等信息表示一个进程被执行。若运行完,应删除相应PCB。
五、实验要求:
在实验题目一中的主菜单中加入一个菜单项:6 调度,选择该菜单项后,系统进入进程调度。
进程调度的结构:
进程调度子菜单 0---------返回主菜单
1---------优先级调度
2---------时间片调度
请选择您需要的功能选项:
= 0 = 2
= 1
六、各功能简要说明:
返回主菜单:当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。
优先级调度:选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行状态(将进程PCB的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的PCB)。
时间片调度:每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程的执行时间减去一个时间片,若某进程的剩余时间小于等于0,则表明该进程运行结束,撤销该进程的PCB。
七、程序清单:
1、程序代码
#includestdio.h
#includestring.h
void priority();
void time();
struct PCB
{
char name[4];
int priority;
int runtime;
};
struct PCB pcb[5];
//进程的数量
int q=5;
void main()
{
int p,i;
strcpy(pcb[0].name,p1);//序列队列,优先级由高到低为1,2,3....
pcb[0].priority = 2;
pcb[0].runtime = 3;
strcpy(pcb[1].name,p2);//序列队列
pcb[1].priority = 3;
pcb[1].runtime = 2;
strcpy(pcb[2].name,p3);//序列队列
pcb[2].priority = 1;
pcb[2].runtime = 4;
strcpy(pcb[3].name,p4);//序列队列
pcb[3].priority = 5;
pcb[3].runtime = 6;
strcpy(pcb[4].name,p5);
文档评论(0)