多进程调度(一)
一、为什么需要多进程调度?
CPU同一时刻只能运行一个进程,而CPU个数总是比进程个数少,这就需要多进程公用一个CPU,每个进程在这个CP运行一段时间。
当一个进程不能获取某种资源,导致不能继续运行,就需要让出CPU。进程拿不到资源就需要让出CPU。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、管理进程
1.进程的生命周期
通常用进程的状态表示进程的生命周期,包括运行状态、睡眠状态、等待状态、新建状态、僵死状态。
二、如何组织进程
使用链表数据结构来组织进程,进程有优先级,所以可以设计成每个优先级对应一个链表头。
schedclass_t是个全局数据结构,这个结构中包含了一个schdata_t结构数组,数组大小根据CPU的数量决定。