计算机操作系统是管理计算机硬件与软件资源的程序,它在计算机系统中扮演着核心角色。本节将深入讨论处理机调度,这是操作系统中的一个重要组件,它决定了哪个进程可以在何时获得CPU的使用权。
处理机调度分为三个级别:高级调度、中级调度和低级调度。高级调度,也称为作业调度,主要负责将外存上的作业调入内存,并创建进程控制块(PCB),然后将其插入就绪队列。这种调度通常在批处理系统中应用,而在实时系统中,作业通常直接进入内存,无需经过高级调度。调度策略包括先来先服务(FCFS)和短作业优先(SJF)等。
低级调度,又称进程调度或短程调度,负责将处理机分配给就绪队列中的进程。调度方式有非抢占式和抢占式两种,前者一旦进程被分配CPU就不被剥夺,而后者则可以基于时间片、优先权等因素中断当前进程,转而执行其他进程。例如,Windows 31使用的是非抢占式调度,而现代操作系统如Linux则通常采用抢占式调度。
中级调度,是为提高系统吞吐量和内存利用率而引入的。它涉及进程的换入换出,当内存资源紧张时,将部分进程换至外存,以释放内存空间,当需要时再将它们换回。这在多用户环境下尤其重要,因为它可以同时处理更多进程,但并不会过度占用内存资源。
调度的队列模型分为几种,最基础的是只有一个就绪队列的模型,然后是具有高/低级调度的模型,最后是具有三级调度的模型,包括就绪队列、中级调度队列和阻塞队列。这些模型帮助我们理解进程在不同状态间的转换。
选择调度方式和算法的主要考虑因素包括用户需求和系统性能。面向用户的准则包括周转时间短、响应时间快、截止时间保证以及优先权准则。周转时间是衡量作业从提交到完成所需时间的指标,包括等待时间和执行时间。响应时间则关注交互性作业,是从用户请求到系统响应的时间。优先权准则适用于需要抢占调度的情况。
面向系统的准则主要包括吞吐量高、处理机利用率好以及资源平衡利用。吞吐量是单位时间内系统完成的作业数量,处理机利用率是CPU空闲时间与总时间的比例。资源平衡利用则是确保各种类型的资源都能得到合理分配。
调度算法的设计是资源分配问题,常见的算法有FCFS(先来先服务)和SJF(短作业优先)。FCFS算法简单,对长作业有利,但可能导致短作业等待时间过长。SJF算法能有效减少平均周转时间和平均带权周转时间,提高系统效率,但可能让长作业面临饥饿现象。
通过对各种调度策略和算法的理解,我们可以更好地设计和优化操作系统,以满足不同类型系统和用户的需求。