调度算法的意义
程序运行时,通常会有多个进程或线程同时竞争CPU,但是如果只有一个CPU可用,那就必须选择下一个要运行的进程。在操作系统中完成选择工作的一部分叫做调度程序。
但是进程也有区分,
CPU密集型:大多时间在计算
IO密集型:大多时间在IO等待切换(由于现在CPU的性能提高 ,主要是IO密集型)
调度算法的目的就是为了保持系统所有部分尽可能忙碌。
主要有四个指标衡量调度算法的好坏,吞吐量、周转时间、CPU利用率、响应时间。
并且调度程序需要考虑到CPU利用率,因为进程的切换比较高,用户态必须切换到内核态,然后保存当前进程的状态,包括在进程表中存储寄存器值以便以后重新装载。
调度算法分类:批处理、交互式、实时
批处理系统的调度
先来先服务
First-come first-served,按照进程请求的顺序使用CPU。相当于有一个就绪进程的单一队列。
优点:易于理解便于在程序中运用。
缺点:如果某个进程过大,会导致后面进程饥饿。