"进程调度的时机、切换与过程、方式"
在计算机系统中,进程调度是操作系统核心功能之一,它负责管理系统的处理器资源,确保多个进程公平且高效地使用CPU。本节主要探讨了进程调度的几个关键方面:调度的时机、切换与过程,以及调度方式。
1. **进程调度的时机**
- **主动放弃处理机**:当一个进程执行完毕或者自愿地调用系统调用进入阻塞状态时,它会主动放弃处理器,此时操作系统可以进行调度。
- **被动放弃处理机**:例如,当时间片用完或有优先级更高的进程到来时,当前运行的进程会被强制暂停,以便为新进程让出CPU。
- **进程异常或终止**:进程在运行过程中如果出现错误或异常,系统会停止该进程并调度其他进程。
- **I/O请求**:进程等待I/O操作完成时,会进入阻塞状态,此时可调度其他就绪进程。
- **中断处理**:当硬件中断发生,如磁盘读写完成,系统需要响应中断,但在此过程中不进行进程切换。
- **临界区访问**:进程在操作系统内核的临界区执行时,为了保护数据结构的完整性,不允许调度。
2. **不能进行进程调度的情况**
- **处理中断过程**:中断处理涉及硬件交互,为了保证其完整性和效率,不应在中断处理期间切换进程。
- **内核程序临界区**:进程在访问临界资源,如就绪队列,若尚未退出,调度可能导致死锁,因为调度程序可能也需要访问相同的资源。
- **原子操作**:在执行原子操作(原语)期间,不允许中断,否则会破坏操作的完整性。
3. **临界资源与临界区**
- **临界资源**:指同一时间内只能由一个进程访问的资源,例如打印机。
- **临界区**:访问临界资源的代码段。在临界区内,必须保证互斥访问,防止数据冲突。
- **内核程序临界区与普通临界区**:内核程序临界区对操作系统内核数据结构的访问需避免调度,而普通临界区的资源访问则允许调度,因为它们通常不会直接影响内核的管理。
4. **进程调度的切换与过程**
- **切换前**:保存当前进程的状态,包括寄存器、内存映射等信息,并将其PCB(进程控制块)放入相应队列。
- **切换中**:选择下一个要执行的进程,通常是就绪队列中的一个进程。
- **切换后**:恢复新进程的状态,更新内存映射,恢复寄存器值,然后继续执行。
5. **调度方式**
- **先来先服务(FCFS)**:按进程到达就绪队列的顺序进行调度。
- **短作业优先(SJF)**:优先调度预计运行时间最短的进程。
- **优先级调度**:根据进程的优先级高低进行调度,可以是抢占式或非抢占式。
- **轮转法(RR)**:每个进程分配一定时间片,到时切换,保证所有进程都有机会执行。
了解这些调度机制和原则,对于理解和优化操作系统的性能至关重要,特别是在多任务环境中,合理的进程调度能够提高系统的响应时间和整体效率。