欢迎来到天天文库
浏览记录
ID:27444191
大小:188.00 KB
页数:34页
时间:2018-12-03
《《操作系统原理》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《操作系统原理》实验指导书吴微编-34-前言1.实验总体目标通过学生自己动手设计实验验证理论知识,使学生掌握操作系统特征和功能,掌握不同调度算法下进程的调度、进程控制、进程调度与死锁,并必须掌握作业管理、存储器管理、设备管理和文件管理的主要原理。加深对操作系统基本原理理解。⒉适用专业计算机专业⒊先修课程C语言程序设计、计算机组成原理、数据结构⒋实验课时分配实验项目学时实验一单处理器系统的进程调度4实验二设计一个有N个进程共行的进程调度程序。4实验三批处理系统中作业调度2实验四银行家算法4实验五LRU页面置换调度算法4实验六独占设备的
2、分配和回收模拟2⒌实验环境有40台中等配置的计算机组成的小型局域网的实验室环境。计算机的具体要求:⒈Pentium133Hz以上的CPU;⒉建议至少256MB的内存;⒊建议硬盘至少2GB,并有1GB空闲空间。4.安装Windows操作系统及C语言编译程序。⒍实验总体要求培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,-
3、34-具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。⒎本实验的重点、难点及教学方法建议重点:理解进程调度中PCB的设计,以实现对进程的调度。难点:进程调度程序的设计,设备管理程序的设计。教学方法建议:力争在本指导书的帮助下,独立设计程序以加深理解。-34-目录实验一、单处理器系统的进程调度5实验二设计一个有N个进程共行的进程调度程序。10实验三批处理系统中作业调度15实验四银行家算法18实验五LRU页面置换调度算法25实验六独占设备的分配和回收模拟29-34-实验一单处理器系统的进程调度一、实验目的模拟单处理器系统
4、的进程调度,采用动态优先权的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解.二、实验类型(含验证型、设计型或综合型)设计型三、实验仪器一台安装Windows操作系统及C语言编译程序的pc机。四、实验原理由学生本人填写实验相关原理五、实验方法与步骤(一)内容:(1)用C语言实现对N个进程使用动态优先权算法的进程调度。(2)描述用来标识进程的进程控制块PCB结构。§进程标识数ID§进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高(人为指定或随机数)。§进程已占用的CPU时间CPUTIME。§进程还需
5、占用的CPU时间ALLTIME,当进程运行完毕ALLTIME是为0。§进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。§进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后将转换成就绪状态。§进程状态STATE。§队列指针NEXT,用来将PCB排成队列。(3)手工输入建立几个进程,建立一个就绪队列,按优先数由高到低排列。(4)进行进程调度(5)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到
6、所要进程都完成为止。(二)参考程序:#include"stdio.h"#definerunning1/*用running表示进程处于运行态*/#defineaready2/*用aready表示进程处于就绪态*/#defineblocking3/*用blocking表示进程处于等待态*/-34-#definesometime5/*用sometime表示时间片大小*/#definen10/*假定系统允许进程个数为10*/struct{intname;/*进程标识符*/intstatus;/*进程状态*/intax,bx,cx,dx;/*
7、进程现场信息,通用寄存器内容*/intpc;/*进程现场信息,程序计数器内容*/intpsw;/*进程现场信息,程序状态字寄存器内容*/intnext;/*下一个进程控制块的位置*/}pcbarea[n];/*定义模拟进程控制块区域的数组*/intPSW,AX,BX,CX,DX,PC,TIME;/*模拟寄存器*/intrun;/*定义指向正在运行进程的进程控制块的指针*/struct{inthead;inttail;}ready;/*定义指向就绪队列的头指针head和尾指针tail*/intblock;/*定义指向等待队列的指针*/
8、intpfree;/*定义指向空闲进程控制块队列的指针*/sheduling()/*进程调度函数*/{inti;if(ready.head==-1)/*空闲进程控制块队列为空,退出*/{printf("无就绪进程");return
此文档下载收益归作者所有