进程管理

进程管理

定义:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。

进程的组成:
在这里插入图片描述
程序与进程的联系:
在这里插入图片描述
进程与程序的区别:
在这里插入图片描述
核心态:当发生系统调用的时候进程就会变成核心态,比如读写文件。
进程特点:
在这里插入图片描述
进程控制块:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进程的生命周期:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变化模型:
在这里插入图片描述
在这里插入图片描述

进程挂起:
在这里插入图片描述
挂起状态:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为什么要使用线程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
什么是线程:
在这里插入图片描述
从上面来看,线程有自己的TCB线程控制块包含PC程序计数器,SP栈,寄存器的信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
线程切换时间比较短的原因:线程拥有同一个地址空间,属于同一进程的线程,拥有同一个页表,所以线程切换的时候不需要切换页表,切换进程的话需要切换页表。

线程的实现:
在这里插入图片描述
用户线程:操作系统看不见的线程。
内核线程:由操作系统管理起来的线程。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里所说的用户线程应该就是常说的协程。
在这里插入图片描述
内核线程的线程控制块存放在内核区,由操作系统管理,这些线程控制块由PCB统一管理

在这里插入图片描述
在这里插入图片描述
上下文的切换:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
刚开始执行exec时,
在这里插入图片描述
执行完exec之后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
vfork只是父进程的复制了一部分,copy on write 写时复制 只是复制了父进程的元数据即页表,当父进程或者子进程对某一个地址单元进行写操作时,会触发一个异常,将触发异常的页复制成两份,使得父进程和子进程拥有不同的地址。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行exec的时候进程有可能处于不同的状态,因为执行exec的时候要加载一个程序到内存中来,这个过程该进程有可能从运行态变为阻塞态。

进程调度:
在这里插入图片描述
什么时候调度:主要围绕运行态,比如从运行态到就绪态,等待态,完成态以及就绪态到运行态
在这里插入图片描述
进程调度的依据:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
不能保证公平,无法知道进程的运行时间。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
多级队列:
在这里插入图片描述
多级反馈队列:

在这里插入图片描述
多线程/进程的优势

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
实现临界区的方法:
中断:
在这里插入图片描述
禁用中断就是禁用进程调度

在这里插入图片描述
禁用中断机制对于多cpu的机器是不起作用的。

基于软件的解决方法:

在这里插入图片描述
只能多个线程按序进入临界区。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值