计算机操作系统是管理和控制计算机硬件与软件资源的程序,是计算机系统的核心组成部分。在第四章中,我们重点关注的是操作系统的调度机制,这是确保系统高效、公平和响应性的重要方面。
调度的类型主要包括高级调度(Job Scheduling)、中级调度(Inter-Medium Scheduling)和低级调度(Process Scheduling)。高级调度主要负责从外部的后备队列中选择作业调入内存,以供系统执行。在批处理系统中,这个调度决定了哪些作业会被放入内存,以及它们的执行顺序。中级调度则涉及到将内存中的进程换出到外存,以便为新作业腾出空间,当系统资源不足时启用。低级调度,即进程调度,是最频繁的调度活动,它从就绪队列中选择一个进程分配CPU执行权。
调度的模型通常与调度队列相关。简单的调度队列模型只包含进程调度,而在更复杂的模型中,如具有高级和低级调度的模型,会有不同级别的调度队列。在三者同时存在的模型中,系统能够更精细地控制资源分配和进程的执行流程。
调度算法的选择是关键,它们通常需要遵循一些准则。面向用户的准则可能包括最小化等待时间和提高响应时间,以提供良好的用户体验。面向系统的准则可能涉及最大化系统吞吐量和资源利用率。调度算法的例子有先来先服务(FCFS)、短作业优先(SJF)、轮转法(Round Robin)等,每种算法都有其优缺点,适合不同的系统环境。
在多处理机调度中,操作系统需要考虑如何在多个处理器之间分配任务,以达到负载均衡和性能优化。实时系统中的调度则更加严格,需要保证在规定时间内完成特定任务,因此可能会采用优先级调度或者固定时间片的策略。
死锁是操作系统中的一个重要问题,当两个或更多进程相互等待对方释放资源,导致它们都无法继续执行时,就形成了死锁。预防死锁是通过设计避免死锁条件的策略,如银行家算法;避免死锁则是通过资源的预分配和避免循环等待。检测和解除死锁则是在死锁发生后,通过回滚、剥夺资源或终止进程等方式恢复系统正常运行。
了解这些基础知识后,作业管理和作业控制块(JCB)也至关重要。作业是用户提交给系统的一系列操作,每个作业由一个或多个作业步组成,它们之间有依赖关系。作业控制块存储了作业的相关信息,如用户信息、内存需求、优先级等,便于系统跟踪和管理。作业在系统中经历提交、后备、运行和完成四个状态。
在Windows 2000/XP中,作业是一组共享资源限制的进程集合,而进程和线程是调度的基本单位。调度对系统的性能有很大影响,比如吞吐量、周转时间以及响应时间,因此调度是多道系统设计的核心。
计算机操作系统的调度机制包括多个层次和策略,涉及作业、进程和线程的管理,以及死锁的处理。理解和掌握这些知识对于理解和优化系统性能至关重要。通过深入学习和实践,我们可以更好地设计和管理操作系统,以满足各种应用的需求。