大家帮个忙,帮我看下这个怎样做?(进程调度模拟程序设计) 谢谢!

本文介绍了一个进程调度模拟程序的设计方案,旨在通过实践加深对进程调度算法及进程切换的理解。虚拟程序采用特定指令集描述进程行为,包括计算、输入、输出和等待等操作。设计包含时间片轮转和优先级调度策略。

进程调度模拟程序设计

一、设计目的

观察、体会操作系统的进程调度方法,并通过一个进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解。

二、设计任务

编写一程序,可以创建若干个虚拟进程,并对若干个虚拟进程进行调度,调度策略为时间片轮转和优先级调度。

 

三、功能需求

1. 虚拟程序描述

虚拟指令的格式:   操作命令  操作时间

其中,操作命令有以下几种:

l        C : 表示在CPU上计算

l        I :表示输入

l        O:表示输出

l        W:表示等待

l        H:表示进程结束

操作时间代表该操作命令要执行多长时间

假设I/O设备的数量没有限制

IOW三条指令实际上是不占用CPU的,执行这三条指令就应将进程放入对应的等待队列(Input等待队列、Output等待队列、Wait等待队列)

 

例有一虚拟程序p1.prc描述如下:

c 30

o 12

c 9

i 14

h 0

该虚拟程序表示的含义是:先在CPU上计算30秒,再在输出设备上输出12秒,计算9 秒,在输入设备上输入14秒,程序结束。

 

2. 实验方法

先用文本编辑器写三个虚拟程序,可以分别命名为p1.prc  p2.prc  p3.prc。然后编一进程调度程序,将这三个虚拟程序创建成进程,并按各虚拟进程的指令要求执行和调度。用一个文本文件, 里面只能放一个整数,表示一个时间因子,用于调节设计程序OS.EXE的执行速度。

 

. 运行结果要求

要求在每个进程创建、占用处理机、开始输出、开始输入和结束操作时分别显示一行提示信息,以确定所有处理都遵守相应的进程调度规则。


1. (简答题) 实验名称:进程调度 指导教师: 实验日期: 年 月 日 实验地点: 实验目的: (1)掌握典型的进程调度算法基本原理及调度过程; (2)掌握用高级语言模拟实现进程调度算法。 实验内容: (1)设计一个有 N个进程并发的进程调度程序,采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程同优先级条件下先来先服务算法; (2)每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、需要运行时间、已用CPU时间、进程状态等等; (3)进程的优先数及需要的运行时间可以事先人为指定(也可以由随机数产生)。进程运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一; (4)就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示; (5)如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU; (6)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。重复以上过程,直到所有进程都完成为止。调度算法的流程图如下图1所示。 基本要求: (1)写出完成实验内容的实验方法源代码; (2)写出实验数据及运行结果; (3)写出在实验过程中所遇到的问题及解决办法; (4)写出实验总结。 评分标准: 1、未按要求给出源代码扣10分 2、未按要求给出运行截图扣10分 3、未填写实验总结扣10分 4、其它填写不规范:如实验日期,实验地点等酌情扣分 学生答案示例 实验名称: 指导教师: 实验日期: 实验地点: 1、实验方法: 源代码: 2、测试数据及运行截图: 3、遇到的问题及解决办法: 4、实验总结:
最新发布
05-30
【实验目的】 1. 理解进程的概念,熟悉进程的组成; 2. 用高级语言编写调试一个进程调度程序,以加深对进程调度算法的理解。 【实验准备】 1. 几种进程调度算法  短进程优先调度算法  高优先权优先调度算法  先来先服务调度算法  基于时间片的轮转调度算法 2. 进程的组成  进程控制块(PCB)  程序段  数据段 3. 进程的基本状态  就绪W(Wait)  执行R(Run)  阻塞B(Block) 【实验内容】 1. 例题 设计一个有 N个进程共行的进程调度程序。 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程先来先服务算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程运行时间以时间片为单位进行计算。每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。 4. 实验题目  编写并调试一个模拟进程调度程序,采用“最高优先数优先”调度算法五个进程进行调度。“最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。  编写并调试一个模拟进程调度程序,采用“轮转法”调度算法五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。简单轮转法的基本思想是:所有就绪进程按 FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值