进程管理(pcb)

进程是如何管理的

内核中使用一个task_struct / PCB(进程控制块)结构体来描述进程.(C语言)
每创建一个进程,就同时创建一个PCB这样的类的实例
使用双向链表把所有的PCB对象串到一起
双击一个exe,创建一个进程的时候本质上就是在内核中,先创建了一个PCB对象。然后把这个对象加入到这个双向链表中.,
关闭一个程序,结束一个进程的时候,本质上就是在内核中,找到这个对应的PCB对象,然后从链表上删掉,并且释放该对象。通过任务管理器查看到的所有的进程信息,本质上就是在遍历内核中的这个链表,依次读取对应PCB中的节点信息。

PCB里面包含哪些信息呢?

1.PID(进程id)进程的身份标识。
2.一组内存指针.指向该进程持有的一些重要数据在内存中的位置如:
(A)执行的指令都有啥。(B)这些指令依赖的数据是啥
3.状态(正在运行,休眠等)
4.优先级(优先获得CPU得级别)
5.进程的记账信息(记录了进程在CPU上一共执行了多少的时间,防止一个进程执行的时间太久,其他进程无法执行)
6.上下文(保存了上次进程在CPU的执行进度,以便进程在下次得到CPU是继续运行,因为操作系统是采用时间片轮转来调度执行进程的)
(3、4、5、6)都是为了实现“进程调度”

进程调度:
如果资源非常充裕,那么不需要调度.事实上是“狼多肉少”(狼指进程,肉指CPU)目的就是为了让这么多进程,能够很好的在有限的cpu上进行并发执行,这就是进程调度

并发:宏观上同时执行,微观上串行轮流执行
并行:宏观上同时执行,微观上也同时执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值