Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
微软系统的进程管理,无法就是打开任务管理器,查看进程、结束进程、或者创建进程。但是在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占比信息。
Linux是一套免费使用和自由传播的类Unix操作系统
|