微软系统的进程管理,无法就是打开任务管理器,查看进程、结束进程、或者创建进程。但是在Linux系统中进程管理是一件比较复杂的工作了。本文就来详细介绍一下Linux系统进程管理。
普通调度算法
FCFS
First Come First Service。FIFO方式的调度策略,先来后到的服务方式。
这种方式的优势是实现简单,也是最容易想到的调度方案。但是有两个重大问题:
1.对短进程的运行不利
短进程必须等到前面长进程执行完毕了之后才能运行,可能会等待较长时间。
2.对IO密集型运行不利
IO密集型比短进程还惨。还不容易排队等到他运行了,结果没运行一会儿就因为IO阻塞去了,等IO操作完毕了之后,还得重新排队。
所以这个算法对IO密集型的进程运行效率是极其低下的。
RR
Round Robin。轮询调度算法为每个进程分配固定的时间片,时间片用完了就必须重新到队尾去排队。
这样的设计解决了FCFS的第一个问题,相对而言也部分解决了第2个问题。
但是对IO密集型进程依然解决得不太好,有一个优化的方案就是设计两个队列,将因为IO阻塞的进程单独放一个队列,在选择下一个运行进行的时候对这个队列的进程提权。
FCFS还有另外一个比较复杂的问题就是如何选择时间片。时间片过长就退化成FCFS算法了,过短又会造成切换开销太大。
Prediction
基于预测的算法。这类预测算法都是假设我们知道每个进程总共所需要的时间,以及IO占比信息。
……