《操作标准系统》实验教学书(V).docxVIP

  • 5
  • 0
  • 约1.05万字
  • 约 18页
  • 2018-12-04 发布于江苏
  • 举报
《操作标准系统》实验教学书(V)

天津理工大学华信软件学院 《操作系统》实验教学指导书2.2 课程代码: 1460350 课程名称: 操作系统 / Operating System 开课院(系)、实验室:华信软件学院C408机房 适用专业: 软件工程专业 实验指导书名称: 《操作系统实验教程(Linux版)》第八章 指导教师: 张一鸣 实验二 进程的建立与调度(2.2 进程的调度) 1. 实验目的 理解并比较处理机调度的常用策略。 重点掌握优先权调度和时间片轮转两种调度算法的设计与实现。 按优先权调度算法设计并实现一个处理机调度的程序。 2. 实验内容 本实验中,根据进程状态的转换图模拟多个进程在一个处理机上进行调度。本实验有两个题目,可任选其一。 设计一个按动态优先权调度算法实现处理机调度的程序。 设计一个按时间片轮转调度算法实现处理机调度的程序。 3. 准备知识 理解操作系统中处理机调度的概念和调度算法。 学习Linux下进程控制以及进程间通信的知识。 4. 实验原理 时间片轮转调度算法和优先权调度算法本质上是一直的,只是在调度时选择的策略不一样而已,故程序流程图是一致的,所以在本教程中仅给出一个流程图即可。具体算法流程图如1所示。 4.1. 时间片轮转调度算法 当系统按时间片轮转算法调度进程时,将所有的就绪进程按照一定的原则(如先来先服务原则)排列,形成一个就绪队列。每次调度为队首进程分配CPU资源,令其执行一个时间片,该时间片的大小从几ms到几百ms。当时间片用完时,由计时器发出中断信号,通知系统剥夺当前运行进程的CPU使用权,并将此进程送入就绪队列的末尾,等待下一次执行;然后,把处理机分配给就绪队列中新的队首进程,执行重复操作。在进程运行过程中,如果时间片未用完而等待时间发生,则该进程进入等待队列,系统将CPU重新分配给就绪队列的队首进程,一旦时间发生后,等待队列的队首进程进入就绪队列末尾。这样就可以保证就绪队列中的所有进程,在可接受的等待时间内,均能获得处理机并调度执行。 时间片轮转调度算法的进程状态转换图,如图2所示。 4.2. 优先权调度算法 优先权调度算法的进程状态转换图,如图3所示。 1)优先权调度算法的类型 (1)非抢占式优先权调度算法。在非抢占式优先权算法中,处理机一旦被分配给就绪队列中优先权最高的进程,则该进程会一直执行到完成,不会被抢占;只有当发生某一事件使该进程放弃处理机时,处理机才会被分配给就绪队列中优先权最高的另一进城。一般在批处理系统中会使用该调度算法,某些对实时性要求不严的实时系统也可以使用该调度算法。 (2)抢占式优先权调度算法。在抢占式调度算法中,处理机一开始也会被分配给就绪队列中优先权最高的进程,使之执行。但如果出现了一个优先权更高的进程时,进程调度程序就会剥夺原最高优先权进程的处理机使用权,而分配给新出的优先权更高的进程。 2)优先权的类型 对于优先权调度算法,其关键是看采用的是静态优先权,还是动态优先权。 (1)静态优先权时在进程创建的时候确定的,而且优先权在进程的运行期间保持不变。一般是用某一范围内的一个整数来表示优先权大小。确定进程优先权的依据是: ①进程类型; ②进程对资源的需求; ③进程的估计执行时间及内存占用量; ④用户的需求 (2)动态优先权是指在创建进程时会被赋予一个优先权,但该优先权可以在进程的等待过程中,随某些条件的变化而改变,以便获得更好的调度性能。 例如,在就绪队列中的进程,随着其等待时间的增长,优先权可以以某一速率提高。假设所有的进程在一开始都具有相同的优先权,则应将最先进入就绪队列的进程(其等待时间最长)赋予最高优先权,从而优先获得处理机,这就是FCFS算法。 优先权的变化规律可描述为: 优先权=(等待时间+要求服务时间)/要求服务时间 而等待时间与要求服务时间之和就是系统对该作业的响应时间,故该优先权又相当于响应比。 5. 实验步骤 1.设计一个按动态优先权调度算法实现处理机调度的程序 (1)假定系统有4个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的结构如表8-1所示。 其中: 进程id:进程的标识。 进程名称:假设若干个进程的进程名称分别为P1,P2,P3,P4…。 进程状态:进程状态转换的标识(1-运行态、2-就绪态、3-等待态、0-完成态)。 进程类型:进程是系统进程还是用户进程(0-系统进程,1-用户进程)。 请求资源的时刻:请求资源的时刻。 总共需要CPU的时间:假设进程需要运行的时间数。 运行时间:当前进程已运行时间。 优先数:赋予进程的优先数,调度时总是选取优先数小(既优先级高的)的进程先执行。 指向下一个进程的指针:用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为NULL。 (2)在每次运行所涉及的处理器调度程序之前

文档评论(0)

1亿VIP精品文档

相关文档