"上节回顾-操作系统-调度与死锁"
操作系统是计算机系统的核心组成部分,它管理着系统的硬件资源,特别是处理机的分配和管理。在操作系统中,调度是至关重要的,因为它直接影响到系统的效率和响应时间。调度可以分为三个级别:高级调度(作业调度)、中级调度和低级调度。
高级调度,也叫作业调度,主要负责将外部存储上的作业调入内存,并决定哪些作业可以被接纳到内存中运行。接纳策略通常基于各种调度算法,例如先来先服务(FCFS)和短作业优先(SJF)等。作业是用户提交给系统的一系列任务的集合,它们在内存中的表示形式是作业控制块(JCB),包含了作业的相关信息,如状态、优先级等。作业在系统中的生命周期包括进入、后备、运行和完成四个阶段。
中级调度,又称中程调度,是为了提高系统吞吐量和内存利用率而引入的。它负责将内存中的进程换出到外存,以便为新的作业腾出空间。当系统内存紧张时,中级调度会将部分进程挂起,待系统资源状况改善时再将其调回内存。
低级调度,也叫进程调度或短程调度,是最频繁进行的调度活动。它从就绪队列中选择一个进程分配处理机,可以采用抢占式或非抢占式调度。抢占式调度允许根据优先级或时间片原则中断正在运行的进程,让其他进程有机会运行;而非抢占式调度则是一旦进程开始执行,除非自行阻塞,否则不会被中断。
调度算法的选择直接影响系统性能。短进程优先(SPN)策略优先考虑执行时间较短的进程,可以减少平均等待时间。在实时系统中,调度算法需要满足严格的时限要求,因此实时调度显得尤为重要。
死锁是操作系统中另一个关键问题,当两个或多个进程互相等待对方释放资源,形成一种无法进展的状态时,就会发生死锁。死锁的产生需要满足四个必要条件:互斥、占有并等待、无剥夺和循环等待。为了解决死锁,我们可以采取预防、避免或检测与解除策略。其中,银行家算法是一种典型的避免死锁的方法,它通过预先分配资源并进行安全性检查来防止死锁的发生。
操作系统调度涉及到作业的接纳、进程的执行和资源的分配,而死锁的处理则是为了保证系统的稳定性和高效运行。理解和掌握这些概念对于理解操作系统的工作原理以及优化系统性能至关重要。