操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可占用资源或占用资源
进程调度算法要求:高资源利用率、高吞吐量、短周转时间,用户满意等原则。
操作系统中的资源分为两类:
硬件资源:CPU,打印机等
软件资源:数据,程序等
高资源利用率:让操作系统给各个进程分配这些资源,让运行的效率提高。
吞吐量:单位时间内CPU完成作业的数量。
周转时间:评价批处理系统的性能指标。Ti = 作业完成时刻 - 作业提交时刻
调度算法的原则
在系统角度来说,公平性:每个进程(不论优先级)都有机会被运行;较大的吞吐量。
用户角度,及时性:响应速度要快;较短的周转时间:不应当让用户等待时间过长。
linux内核的三种调度方法:
1. SCHED_OTHER 分时调度策略
2. SCHED_FIFO实时调度策略,先到先服务
3. SCHED_RR实时调度策略,时间片轮转
实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,
nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。
操作系统大致可分为6种类型
① 简单操作系统
② 分时系统
③ 实时操作系统
④ 网络操作系统
⑤ 分布操作系统
⑥ 智能操作系统
详情自行搜索 >_< !