一、一些必要的前置知识
目录
一、一些必要的前置知识
1.进程(Process)
2.中央处理器(Central Processing Uni)
3.并行执行与并发执行
4.进程控制块(Processing Control Block)
二、进程调度
1.进程状态
2.进程优先级
3.进程上下文
4.进程记账信息
1.进程(Process)
我们的系统中有很多程序,占用大量的磁盘空间,但那不重要,并不会影响我们的系统运行速度,(对于磁盘空间满了的这种极端情况,可能会因为占用了交换空间导致内存不足)其原因就是因为这些程序并不占用内存,启用这些程序之后才会占用,比如这些:
2.中央处理器(Central Processing Uni)
负责执行各种指令,就是这个东西让程序运行了起来,这也是电脑中最核心的存在。当前市面上售卖的电脑基本上只有一个多核心的cpu,究其原因就是因为cpu的造价太贵,不如搞多核心。
3.并行执行与并发执行
用户一般会同时运行好几个程序,打开后台管理器更是密密麻麻一堆进程,就凭电脑几个处理器一对一的运行显然不行,为了营造各程序同时运行的效果,cpu主要采取并行执行与并发执行的方式。
并行执行:n个核心同时运行n个进程
并发执行:一个cpu核心在一定时间内先运行进程1,在运行进程2.......(可以理解为cpu核心在极短时间内,趁着程序没反应过来,在多个进程间反复横跳,从而达到同时运行的效果,劳模啊,泪目了o(TヘTo) )
4.进程控制块(Processing Control Block)
为了管理众多进程,所以给每个进程发了“身份证”,主要用来记录进程信息:pid(进程身份标识,不能重复),内存指针,文件描述符表,进程状态,进程优先级,进程上下文,进程记账信息。后四个就是进程调配的主要参考信息。
二、进程调度
为了使几个cpu核心能够同时处理上百个进程,就往往要使用并行与并发结合的方式。对于并发执行,既然只能一对一的处理,那就必须面对时间多寡的问题,这时候就需要进程调度。
1.进程状态
进程分文就绪状态与阻塞状态,就绪状态的进程参与进程调配,而阻塞状态则不参与
2.进程优先级
有些进程数据量大,即时性强,就需要多分配一些时间,但有些没那么紧迫的就可以少分配一些时间。
3.进程上下文
当进程这次运行结束后,就需要记录当前的数据,留待下次使用。(相当于游戏打一半先存个档,下次读档接着玩(^-^)V)
4.进程记账信息
记录每个进程运行的时间,防止在当前调配中进程分配到cpu时间太少。(给一个保底~ヾ(≧▽≦*)o)
有了这些信息,根据不同操作系统的进程调度算法就可以完成进程调度了。
(看完是不是对自己的cpu更有信心了,就可以更放心的压榨性能了呢(๑•̀ㅂ•́)و✧)