OS-2-1-进程管理(概略)
2021-08-12 09:28:30 18 举报
AI智能生成
操作系统第二章 第一节 进程管理 基本概念 知识点梳理
作者其他创作
大纲/内容
进程通信<br>
背景
为了保证安全,进程不可直接访问其他进程的地址空间
OS提供方法以供进程进行通信
方法
共享存储
OS分配一块共享空间供进程通信<br>该空间的访问是互斥的,<br>通过OS提供的同步-互斥工具实现<br>
基于数据结构的共享<br>如“仅存放长10的数组”<br>
速度慢、限制多
基于存储区的共享
OS划出共享存储区
对数据形式存放位置不做要求<br>交由进程控制<br>
管道通信
管道是一个连接读写进程的共享文件<br>在内存中是一块固定大小缓冲区<br>一般与页面等大<br>
<font color="#F44336">仅支持半双工通信<br>双向通信需要两根管道</font>
访问仍要互斥
读写
写进程以字符流形式写入管道<br>写满时wirte()系统调用被阻塞<br>
读进程将数据全部取走,管道<br>变空此时read()系统调用被阻塞<br>
只能一对一,读了就会被丢弃,一次性
消息传递
通过发送消息/接收消息原语<br>以<font color="#F44336">格式化的消息</font>为单位进行<br>
消息的结构
直接通信
消息挂载带接收进程的消息缓冲队列的队尾
间接通信<br>(信箱通信)<br>
消息发送到信箱中
线程
基本概念
背景:进程自身只能串行,但是一些任务需要更高的并发度
进程中包含了多个线程,取代进程成为程序执行流之最小单位<br>
线程更小
进程间可以并发,线程间亦可以并发
线程被调用不会因此生成多个线程实体
进程仍然是<font color="#F44336">除CPU外</font>的系统资源的最小分配单元
Compare:进程
进程不再是调度的基本单位,被线程取代。
进程仍然是<font color="#F44336">除CPU外</font>的系统资源的最小分配单元
线程间如进程一样具有并发性
同一进程内线程间的并发无需切换环境,系统开销小
线程的属性
调度
是处理机调度的单位
多CPU计算机中,各个线程可以占用不同的CPU
线程具备线程ID和线程控制块TCB
线程也具有就绪、阻塞、运行三种基本状态
系统资源
线程几乎不拥有系统资源
统一进程的不同线程共享进程的资源
共享内存地址空间,同一进程的线程间通信无需OS干预
系统开销
同一进程间线程切换不会引起进程切换<br>
同一进程间线程切换开销很小<br>
不同进程间线程切换会引起进程切换
不同进程间切换开销很大<br>
线程实现方式<br>
用户级线程<br>User-Level Thread(ULT)<br>
多出现在早期OS不支持线程时<br>
线程由线程库实现,OS不能感知线程存在<br>线程是逻辑上的线程,管理由线程库完成<br>线程切换无需OS介入<br>
优势:管理不涉及CPU模式切换,开销很小<br>
劣势:无法处理阻塞问题,一阻塞全阻塞<br>并发度不高,无法多核并行<br>
内核级线程<br>Kernel-Level Thread(KLT)<br>
管理由OS完成,线程切换需要CPU状态切换
并发能力强,可以多核并行,不受阻塞影响
用户进程占用多个内核级线程,管理开销大
<font color="#F44336">内核级线程才是处理机调度的单位</font>
多线程模型
一对一
一个用户级线程映射到一个内核级线程
并发能力强,可多核并行
管理开销大
多对一
多个用户级线程映射到一个内核级线程
用户级线程的切换在用户空间完成,无需CPU模式切换<br>
有阻塞问题,并发度不高
<font color="#F44336">一般默认一个进程只分配了一个内核级线程</font>
多对多
n个用户线程映射到m个内核级线程(n≥m)
每个用户进程均可对应m个内核级线程
并发度高,开销也可以不大
基本概念
进程
一种动态的,“程序的一次执行过程”
Compare:程序:静态的“指令集合”
同一个程序执行多次对应多个进程
是OS分配资源、进行调度的最小单位
进程实体
(又称进程映像)进程运行时某个瞬间进程的存在,即是静态的
组成
PCB进程控制块<br><font color="#F44336">进程存在的唯一标志</font><br>程序运行前创建<br>进程结束时回收<br>
进程描述信息
PID:Process id,唯一区分进程的编码<br>
UID:进程所属用户ID
进程控制和管理信息
CPU使用时间、磁盘、网络使用状况等
进程当前状态:就绪态/阻塞态/运行态……
资源分配清单
正在使用的文件
正在使用的内存区域
正在使用的设备
处理机相关信息
PSW、PC等寄存器的值
程序段
程序代码(指令序列)
数据段
运行过程产生的数据(如变量)
特征
动态性
进程是程序执行一次的过程,是动态产生、变化、结束的
并发性
内存中有多个进程实体,可以并发执行
进程并发失去封闭性
封闭性指的是程序执行结果取决于进程本身,不受外界影响
并发进程共享变量,速度快慢影响读写顺序,影响结果。
独立性
<font color="#F44336">可以独立运行,独立获得资源、独立接受调度的基本单位</font>
进程被调用不会因此生成多个进程实体
异步性
各个进程独立运行,进度不可预知<br>OS必须提供进程同步机制来解决异步问题<br>
结构性
每个进程会配置一个PCB,结构上看,<br>进程是程序段、数据段、PCB的结构<br>
进程的状态和转换
状态
运行状态
占有CPU
在CPU上运行
就绪状态
具备运行条件
不占有CPU
阻塞状态
因等待某一事件<br>而暂时不能运行<br>
创建状态
OS为进程分配资源、初始化PCB
终止状态
OS回收分配的资源,撤销PCB(进程结束)
对于单处理机系统,除了死锁状态,其余任何时候都有且仅有一个执行态的进程
转换
就绪→运行
运行→就绪
时间片到期时通<br>常可以降低优先级<br>
运行→阻塞
阻塞→就绪
进程的组织方式<br>
链式方式
执行指针
指向当前处于执行态的进程(PCB)
单处理机计算机中同一时刻只有一个执行态进程
就绪队列指针
指向当前处于就绪态的进程
通常优先级高的在队头
→PCB6→PCB4→PCB7...<br>
等待打印机的阻塞队列
等待磁盘的阻塞队列
*其他原因阻塞队列<br>
索引方式
执行指针
指向当前处于执行态的进程(PCB)
单处理机计算机中同一时刻只有一个执行态进程
就绪表指针
指向就绪索引表
索引表表项指向就绪态PCB
进程控制<br>实现进程状态转换<br>
实现<br>
原语<br>Primitive<br>
是一种特殊的应用程序<br>
原子性
执行必须一次性完成
实现
关中断指令<br>特权指令<br>
执行后CPU不再例行检查中断信号<br>直到执行了开中断指令<br>
开中断指令<br>特权指令<br>
控制方法
创建进程<br>允许一个进程创建另一个进程<br>创建者称父进程<br>被创建者称子进程<br>子进程可继承父进程资源<br>
应用场景
用户登录
分时系统中,用户登录成功,OS会为其建立一个新进程
作业调度
多道批处理系统中,新的作业放入内存,为其建立新进程
作业就是外存中尚未运行的程序
系统提供服务
用户/用户程序向OS提出请求
用户程序应用请求
用户程序主动请求创建子线程
创建原语
分配PID,申请空白PCB
若申请失败则创建失败
分配资源(内存等)
若资源不足,进入阻塞态
初始化PCB:标志信息、处理机状态、处理机控制信息、设置优先级
若就绪队列能接受新进程,则插入就绪队列
终止进程<br>子进程撤销时资源归还父进程<br>撤销父进程时同时撤销子进程
使用场景
正常结束:进程任务完成准备退出运行
异常结束:运行时发生异常,使程序不能<br>继续运行,如存储区越界、非法指令、特权<br>指令、运行超时、算数运算错、IO故障等
外界干预:进程因外部请求而终止,如<br>操作员或OS干预、父进程请求/终止
撤销原语
根据对象进程的PID检索PCB,确认其状态<br>
若其处于执行态,立即终止其执行,将处理机分配给其他进程
若其还有子孙进程,终止之
将所有资源归还给父进程或OS
自PCB所在链表删除之<br>
阻塞&唤醒
阻塞原语<br>Block<br>
根据PID找到PCB
若该进程为运行态,<font color="#F44336">保护其现场</font>,<br>转至阻塞态并停止运行<br>
将PCB插入对应事件的等待队列<br>并将处理机资源调度给其他就绪线程<br>
唤醒原语<br>Wakeup<br>
在该时间的等待队列中找到对象PCB
移出等待序列,并设为就绪态<br>
将PCB插入就绪队列等待调度程序调度
进程切换
使用场景
时间片到期
有优先级更高的进程到达
当前进程主动阻塞
当前进程终止
Compare:CPU模式切换
切换原语
保存<font color="#F44336"><font color="#212121">处理机</font>上下文(Context)</font>(包括PC和其他寄存器)到PCB
移动PCB到相应队列
选择另一进程执行,更新其PCB
根据PCB恢复所需<font color="#F44336">运行环境</font>
更新内存管理的数据结构
恢复处理机上下文
死锁
<font color="#F44336">死锁状态下没有运行态的进程</font>
如果甲进程需要AB资源,而仅被分配了A<br>同时乙进程需要AB资源,而仅被分配了B<br>此时两个进程都陷入阻塞且永不可能就绪<br>,谓之死锁<br>
0 条评论
下一页
为你推荐
查看更多