欢迎来到天天文库
浏览记录
ID:800796
大小:211.05 KB
页数:28页
时间:2017-09-05
《《操作系统原理》课程实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《操作系统原理》课程实验指导书2012年10月摘要本课程实验内容由四个实验组成:进程调度程序设计,银行家算法程序设计,换页算法的比较与Belady现象验证,命令解释程序的编写。进程调度程序设计实验4个学时,主要目的是使学生掌握带优先级的时间片轮换的进程调度方法的具体实现。银行家算法程序设计实验4个学时,主要目的是使学生掌握应用银行家算法计算安全状态并以此避免死锁方法的具体实现。换页算法的比较与Belady现象验证实验4个学时,主要目的是使学生掌握几种典型换页算法的基本原理。命令解释程序实验4个学时,主要目的是使学生掌握命
2、令解释程序的原理。通过这四个实验,加深学生对计算机操作系统基本理论的理解,为学生今后学习好其他课程打下良好的理论基础。目录实验一进程调度程序设计2一、目的和要求2二、实验内容2三、实验环境2四、实验原理及核心算法参考程序段3实验二银行家算法实现资源分配7一、实验目的8二、实验内容8三、实验要求8四、设计思路8五、参考程序清单8六、程序调试11七、实验结果分析12实验三换页算法的比较和BLEEDY现象的验证12一、目的和要求12二、实验内容12三、实验环境13四、实验原理及核心算法参考程序段13实验四命令解释程序的编写6一
3、、目的和要求6二、实验内容6三、实验环境6四、实验原理及核心算法参考程序段6前言《计算机操作系统》是计算机科学与技术专业的一门重要专业基础课程,是一门理论性很强的学科,一个显著的特点是理论性强。它不仅要求学生掌握操作系统的基本思想,更强调学生掌握操作系统的思想并将它应用到实践中去。本实验是学生掌握操作系统基本思想、方法和技术开发简单软件项目的初步训练,主要目的是使学生基本掌握关于操作系统的基本、典型理论,与用科学的方法来分析和实现操作系统。为帮助学生全面理解《计算机操作系统》的课程内容,特写本课程实验指导书。实验一进程调
4、度程序设计一、目的和要求1.实验目的(1)掌握时间片轮转的进程调度算法;(2)掌握带优先级的进程调度算法;(3)选用面向对象的编程方法。2、实验学时:4学时3、实验要求(1)自定义PCB的数据结构;(2)使用带优先级的时间片轮转法调度进程,每运行一个时间片,优先级减一。二、实验内容根据教师指定的实验课题,完成设计、编码、测试工作。三、实验环境1.PC微机2.Windows操作系统3.C/C++程序开发集成环境四、调度算法的流程图如下:五、实验原理及核心算法参考程序段//jingchendiaodu.cpp#include
5、"stdio.h"#include#include#definegetpch(type)(type*)malloc(sizeof(type))#defineNULL0structpcb{/*定义进程控制块PCB*/charname[10];charstate;intsuper;intntime;intrtime;structpcb*link;}*ready=NULL,*p;typedefstructpcbPCB;sort()/*建立对进程进行优先级排列函数*/{PCB*first,*
6、second;intinsert=0;if((ready==NULL)
7、
8、((p->super)>(ready->super)))/*优先级最大者,插入队首*/{p->link=ready;ready=p;}else/*进程比较优先级,插入适当的位置中*/{first=ready;second=first->link;while(second!=NULL){if((p->super)>(second->super))/*若插入进程比当前进程优先数大,*/{/*插入到当前进程前面*/p->link=second;first
9、->link=p;second=NULL;insert=1;}else/*插入进程优先数最低,则插入到队尾*/{first=first->link;second=second->link;}}if(insert==0)first->link=p;}} input()/*建立进程控制块函数*/{inti,num;//clrscr();/*清屏*/printf("请输入进程号?");scanf("%d",&num);for(i=0;i10、(PCB);printf("输入进程名:");scanf("%s",p->name);printf("输入进程优先数:");scanf("%d",&p->super);printf("输入进程运行时间:");scanf("%d",&p->ntime);printf("");p->rtime=0;p->
10、(PCB);printf("输入进程名:");scanf("%s",p->name);printf("输入进程优先数:");scanf("%d",&p->super);printf("输入进程运行时间:");scanf("%d",&p->ntime);printf("");p->rtime=0;p->
此文档下载收益归作者所有