*【教学目标】*
*关键词:**队列,分时操作系统,时间片轮转调度算法*
****知识和能力目标:****熟练掌握队列的存储及其操作方法,理解队列适用的问题场景。
*价值目标:*
(1) ****职业素养(工程与社会):****计算机系统的设计与实施,是一个系统工程,或者说,它就是一个工程问题。工程师在解决问题时,总是需要在资源使用和资源保护方面寻找平衡点。时间片轮转调度算法很有意思,你可能会发现,虽然时间片的大小、进程的执行时间等因素间存在强相关性,但为了获得良好的带权周转时间,却很难有一个标准答案,需要我们权衡多种因素,按需进行设计和选择。作为未来的计算机工程师,你在处理实际问题时,应该对此有充分的认知和心理准备。
(2) ****人文素质:****你认为作为计算机工程师,我们工作中的美学体现在哪些方面?
*【问题描述】*
操作系统(Operating System,OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石。操作系统需要管理内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络、管理文件系统等,操作系统也提供一个让用户与系统交互的界面。
分时操作系统(Time-sharing operating System)是指在一台主机上连接了多个带有显示器和键盘等设备的终端,允许多个用户同时通过自己的终端以交互方式共享使用计算机的系统。在分时操作系统管理下,终端用户通过各自的终端向系统发出命令请求,系统采用时间 片轮转法的方式,来接收每个用户的命令并处理服务请求,同时通过交互方式在终端上向用户显示处理的结果。即系统将CPU的执行时间分割为一个个时间段(称为时间片),然后轮流分配给每个用户使用,每个用户程序每次只能在CPU上运行一个时间片。由于时间间隔很短,每个用户感觉自己独占了计算机。Unix和Linux是典型的分时操作系统。
*本问题的任务是:编写程序,模拟实现分时操作系统的时间片轮转调度算法。*
*【基本思路】*
*时间片轮转(**Round Robin**,**RR**)调度算法*:为分时操作系统设计。在早期的时间片轮转法中,系统将所有就绪进程按先来先服务的原则排成一个队列。每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断,调度程序据此信号来停止该进程,并将它送往就绪队列的末尾;然后再把处理机分配给就绪队列中新的队首进程,也让它执行一个时间片。如此反复,就可以保证就绪队列中的所有进程在一个给定的时间段内均能获得若干时间片的处理机执行时间。也即,操作系统能在给定时间段内响应所有用户的请求。
*RR*