多处理器系统进程分配
多处理器系统 (MPS) 的类型
- 紧密耦合型:共享内存和 I/O,通过高速总线连接。
- 松弛耦合型:独立内存和 I/O,通信线路或通道连接。
对称多处理器系统 (SMPS) 和非对称多处理器系统
非对称多处理器系统中进程分配方式
- 进程调度在主处理器上执行。
- 有潜在的不可靠性(主机故障造成系统崩溃)。
对称多处理器系统中进程分配方式
静态分配
每个 CPU 设立一个就绪队列,进程从开始执行到完成,
都在同一个 CPU 上。动态分配
各个 CPU 采用一个公共就绪队列,队首进程每次分派
到当前空闲的 CPU 上执行。可防止系统中多个处理器
忙闲不均。
多处理器系统中的进程调度方式:
- 自调度
- 专用处理器分配
- 成组调度
- 动态调度
自调度
各个处理机自行在就绪队列中取任务。
- 优点:不需要专门的处理机从事任务分派工作。
- 缺点: 当处理机个数较多(如十几个或上百个)时,对就绪队列的访问可能成为系统的瓶颈。
专用处理器分配
每个进(线)程分配一个专用处理机。
优点:切换少,效率高。
主要用于超级计算系统,实时系统。
成组调度
将一组相关的进程同时分派到多台处理机上运行,以减少进程之间相互等待而引起的进程切换,降低系统开销。
优点:对相互合作的进(线)程成组调度,可以减小切换,减小系统开销。
每次分配一组 CPU,减少了调度频率。
分配时间
- 面向所有应用程序平均分配处理器时间。
- 面向所有线程平均分配处理器时间。
动态调度
基本思想:由操作系统和应用进程共同完成调度。
操作系统负责在应用进程之间划分处理器。
应用进程在分配给它的处理器上执行可运行线程的子集,哪一些线程应该执行,哪一些线程应该挂起完全是应用进程自己的事。
分配原则
空闲则分配、新作业优先、保持等待(忙则等待)、释放即分配
UNIX 的进程调度
调度类型
UNIX 是单纯的分时系统,无作业调度,只设置有中级调度和低级调度。
调度算法
采用多级反馈队列轮转调度。
动态优先数轮转调度算法