操作系统 实验一 处理器调度

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验一处理器调度计算机科学与技术

物联网161 何桐

2018.5.6

【实验目的】

在多道程序或多任务系统中,系统中同时处于就绪态的进程有若干个,也就是说能运行的进程数远远大于处理器个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占有处理器。本实验要求设计一个模拟单处理器调度的算法,以加深对处理器调度的概念理解。

【实验要求】

书写实验报告,包括以下几项内容:

(1)实验题目。

(2)程序中使用的数据结构及主要符号说明。

(3)程序流程图和带有注释的源程序。

(4)执行程序名,并打印程序运行时的初值和运行结果,其中包括:

● 各进程控制块的初始状态。

● 选中运行进程的名字、运行后各进程控制块状态以及每次调度时,就绪队列的进程

排列顺序。

(5)通过实验后的收货与体会以及对实验的改进意见和见解。

【准备知识】

一、基本概念

1、进程的概念;

2、进程的状态和进程控制块;

3、进程调度算法;

二、进程调度

1、进程的状态

2、进程的结构——PCB

进程都是由一系列操作(动作)所组成,通过这些操作来完成其任务。因此,不同的进程,其内部操作也不相同。在操作系统中,描述一个进程除了需要程序和私有数据之外,最主要的是需要一个与动态过程相联系的数据结构,该数据结构用来描述进程的外部特性(名字、状态等)以及与其它进程的联系(通信关系)等信息,该数据结构称为进程控制块(PCB ,Process Control Block)。

运行 就绪 阻塞 进程因某事件(如等待I/O 完成)变成阻塞状态

某事件被解除(I/O 完成)

时间片已用完 进程调度程序把处理机分配给进程 (1)

(2) (3) (4)

【实验内容】

1、设计一个按FCFS的调度算法实现处理器调度(必做)

设计的提示如下:

(1)假设系统中有3~5个进程,每个进程由一个进程控制块PCB来标识。进程控制块结构包含:

●进程名:即进程标识。

●链接指针:按照进程到达系统的时间将处于就绪状态的进程连接成一个就绪

队列。指针指出下一个到达的进程控制块首地址。最后一个进程的链指针为NULL。

●估计运行时间:可由设计者任意指定一个时间值。

●到达时间:进程创建时的系统时间或由用户指定,调度时,总是选中到达时

间最早的进程。

●进程状态:为简单起见,这里假设进程有两种状态(就绪和完成)。就绪状

态用“R”表示,完成状态用“C”表示。假设进程一创建就处于就绪状态,运行结束时,就被置为完成状态。

(2)设置一个队首指针head,用来指出最先进入系统的进程,各就绪进程通过链接指针连在一起。

(3)处理器调度时总是选中队首指针指向的进程投入运行。由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行:估计运行时间减1。用这个操作来模拟进程的一次执行,而且省去进程的现场保护和现场恢复工作。(4)在所设计的程序中应有显示或打印语句,能显示或打印正运行的进程名字、已运行时间、还剩时间、就绪队列中的进程名字等。所有进程运行完成时,给出各进程的周转时间和平均周转时间。

输入值:

ID 进程名到达时间服务时间

1 A

2 3

2 B

3 4

3 C

4 5

运行结果:

心得收获:通过本次实验,我了解到如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务总是把当前处于就绪队列之首的那个进程调度到运行状态。有利于长作业(进程) 而不利于短作业(进程)和CPU 繁忙型作业(进程)而不利于I/O繁忙型作业(进程)

相关文档
最新文档