《(3.2)--《操作系统》实验指导书.pdf》由会员分享,可在线阅读,更多相关《(3.2)--《操作系统》实验指导书.pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1实验一实验一 进程调度模拟算法进程调度模拟算法 课时:4 实验环境:C/C+一、目的和要求一、目的和要求 进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会和了解优先数算法和时间片轮转算法的具体实施办法。二、实验内容二、实验内容 1.设计进程控制块设计进程控制块 PCB 的结构,通常应包括如下信息:的结构,通常应包括如下信息:进程名、进程优先数(或轮转时间片数)、进程已占用的 CPU 时间、进程到完成还需要的时间、进程的状态、当前队列指针等。2.编写两种调度算法程序:编写两种调度算法程序:优先数调度算法程序 循环轮转
2、调度算法程序 3.按要求输出结果。按要求输出结果。三、提示和说明三、提示和说明 分别用两种调度算法对伍个进程进行调度。每个进程可有三种状态;执行状态(RUN)、就绪状态(READY,包括等待状态)和完成状态(FINISH),并假定初始状态为就绪状态。(一)进程控制块结构如下:(一)进程控制块结构如下:NAME进程标示符 PRIO/ROUND进程优先数/进程每次轮转的时间片数(设为常数 2)CPUTIME进程累计占用 CPU 的时间片数 NEEDTIME进程到完成还需要的时间片数 STATE进程状态 NEXT链指针 注:1.为了便于处理,程序中进程的的运行时间以时间片为单位进行计算;2.各进程的
3、优先数或轮转时间片数,以及进程运行时间片数的初值,均由用户在程序运行时给定。(二)进程的就绪态和等待态均为链表结构,共有四个指针如下:(二)进程的就绪态和等待态均为链表结构,共有四个指针如下:RUN当前运行进程指针 READY就需队列头指针 TAIL 就需队列尾指针 FINISH 完成队列头指针 (三)程序说明(三)程序说明 1.在优先数算法中,进程优先数的初值设为:50-NEEDTIME 每执行一次,优先数减 1,CPU 时间片数加 1,进程还需要的时间片数减 1。在轮转法中,采用固定时间片单位(两个时间片为一个单位),进程每轮转一次,CPU时间片数加 2,进程还需要的时间片数减 2,并退出
4、 CPU,排到就绪队列尾,等待下一次调度。2.程序的模块结构提示如下:整个程序可由主程序和如下 7 个过程组成:2 (1)INSERT1在优先数算法中,将尚未完成的 PCB 按优先数顺序插入到就绪队列中;(2)INSERT2在轮转法中,将执行了一个时间片单位(为 2),但尚未完成的进程的 PCB,插到就绪队列的队尾;(3)FIRSTIN调度就绪队列的第一个进程投入运行;(4)PRINT显示每执行一次后所有进程的状态及有关信息。(5)CREATE创建新进程,并将它的 PCB 插入就绪队列;(6)PRISCH按优先数算法调度进程;(7)ROUNDSCH按时间片轮转法调度进程。主程序定义 PCB 结
5、构和其他有关变量。(四)运行和显示(四)运行和显示 程序开始运行后,首先提示:请用户选择算法,输入进程名和相应的 NEEDTIME 值。每次显示结果均为如下 5 个字段:name cputime needtime priority state 注:1在 state 字段中,R代表执行态,W代表就绪(等待)态,F代表完成态。2应先显示R态的,再显示W态的,再显示F态的。3在W态中,以优先数高低或轮转顺序排队;在F态中,以完成先后顺序排队。3实验二实验二 存储管理动态分区分配及回收算法存储管理动态分区分配及回收算法 课时:4 实验环境:C/C+一、目的和要求一、目的和要求 分区管理是应用较广泛的一
6、种存储管理技术。本实验要求用一种结构化高级语言构造分区描述器,编制动态分区分配算法和回收算法模拟程序,并讨论不同分配算法的特点。二、实验内容二、实验内容 1、编写:First Fit Algorithm 2、编写:Best Fit Algorithm 3、编写:空闲区回收算法 三、提示和说明三、提示和说明 (一)主程序(一)主程序 1、定义分区描述器 node,包括 3 个元素:(1)adr分区首地址 (2)size分区大小 (3)next指向下一个分区的指针 2、定义 3 个指向 node 结构的指针变量:(1)head1空闲区队列首指针 (2)back1指向释放区 node 结构的指针 (
7、3)assign指向申请的内存分区 node 结构的指针 3、定义 1 个整形变量:free用户申请存储区的大小(由用户键入)(二)过程(二)过程 1、定义 check 过程,用于检查指定的释放块(由用户键入)的合法性 2、定义 assignment1 过程,实现 First Fit Algorithm 3、定义 assignment2 过程,实现 Best Fit Algorithm 4、定义 acceptment1 过程,实现 First Fit Algorithm 的回收算法 5、定义 acceptment2 过程,实现 Best Fit Algorithm 的回收算法 6、定义 print 过程,打印空闲区队列 (三)执行(三)执行 程序首先申请一整块空闲区,其首址为 0,大小为 32767;然后,提示用户使用哪种分配算法,再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址和大小。(四)输出(四)输出 要求每执行一次,输出一次空闲区队列情况,内容包括:编号 首址 终址 大小 注:输出空闲区队列的排序,应符合所用分配算法的要求。
限制150内