没有合适的资源?快使用搜索试试~ 我知道了~
引入原因各进程拥有独立的内存地址空间,为了保证安全,一个进程不能直接访问其它进程的地址空间共享存储设置一块可直接访问的共享空间,读写交换信息互斥访问共享空间,读
资源详情
资源评论
资源推荐
进程管理
进程与线程
进程的概念和特征
进程的概念
进程是进程实体的运行过程,是系统进行资源分
配和调度的一个独立单位
进程是程序数据在CPU上的一次执行活动过程,
引入进程以更好地描述和控制程序的并发执行,
以实现现代操作系统的并发性和共享性(基本)
实
现
并
发
、
共享
的
基
础
进程的特征 动态(基本)、并发、独立、异步、结构性(理解)
进程映像(实体)
由程序段、数据段、PCB组成进程实体
创建进程的实质是创建进程映像中的PCB
进程映像(程序文件)是静态的,进程是动态的
PCB
存
放
进
程的管
理
信
息
进程的组织
进程控制块PCB
包含内容
进程描述信息 PID标志各个进程、UID进程归属用户(共享安全)
进程控制和管理信息
进程当前状态信息(CPU调度分配的依据)、优先
级(抢占依据)、代码运行入口地址、程序外存地
址、进入内存时间、cpu占用时间、信号量使用
资源分配清单
代码段指针、数据段指针、堆栈段指针、文件描
述符、鼠标键盘(使用的输入输出设备的信息)
内
存
/
虚
拟
地址
空
间
状
况
处理机相关信息
处理机中各寄存器的值;进程切换时保存CPU状
态信息(以便程序重新执行能从断点返回执行)
组织方式
链接方式
索引方式
进程生命周期对PCB的使用
进程创建:新建PCB(进程存在的唯一标识)
进程执行:了解进程的现性状态信息(控制管理)
进程结束:回收PCB,进程随之消亡
贯穿生命周期
进程调度前从PCB中查出进程当前状态和优先级
进程调度时根据保存的CPU状态信息,恢复现场
进程运行中通过访问PCB实现同步 通信 文件访问
进程暂停运行时,将断点的CPU环境保存在PCB
程序段
能调度到CPU执行的程序的代码段(指令序列)
可以被多个程序共享(多个进程运行同一程序段)
数据段 原始定义 或者 运行过程产生的各种数据
进程的状态与转换
生命周期:由于系统中各进程之间的相互制约关
系及系统运行环境的变化,进程状态也不断变化
五种状态
运行态 进程在CPU上运行;单处理机最多1个运行态
就绪态 进程获得了除CPU外的一切资源,存入就绪队列
阻塞态 进程等待某一事件(等待资源)而暂停运行 如等IO
创建态 进程正被创建,尚未转到就绪态(详见进程控制)
结束态 进程正常结束或其他原因中断运行,先置结束态
状态转换
就绪态->运行态 处于就绪态被调度,获得处理机资源(时间片)
运行态->就绪态
1.时间片用完,调度程序让进程换态(非主动)
2.或者被可剥夺系统中被优先级高的进程抢占
运行态->阻塞态
1.进程请求某一资源(如外设)的使用和分配
2.或者等待某一事件(如等待I/O执行中(阻塞))
进
程
发
出
系统
调
用
请
求
(
主
动
)
阻塞态->就绪态
1.进程等待事件的发生(得到资源),如另一个进程
的I/O操作结束,释放IO资源,这个进程得到IO资源
2.或中断结束 中断处理程序来改变相应进程状态
需
要
借
助
相
关
进
程的
协助
(
被
动
)
进程控制
基本概念
进程控制就是要实现进程状态的转换
进程控制用原语实现
原语用关/开中断特权指令实现,关中断后不再
例行检查中断信号,开中断指令后才会恢复检查
原语是一种特殊的程序,执行一气呵成不可中断
进程控制相关的原语
1.更新PCB中的信息
修改进程状态标志state
(剥夺CPU时)保存/(开始运行时)恢复运行环境
2.将PCB插入合适的队列
3.分配/回收资源
相关原语
进程的创建
进程创建的原语
1.申请空白PCB
2.为新进程分配所需资源(不足时处于阻塞态)
3.初始化PCB,标志、CPU控制信息、优先级
4.以上都完成后,将PCB插入就绪队列(有空间)
引起进程创建的事件
用户登录 分时系统中,用户登录成功,创建新进程
作业调度 多道批处理系统中,作业放入内存,创建新进程
提供服务 用户向操作系统提出请求 分配新进程处理该请求
应用请求 由用户进程主动请求创建一个子进程
进程的终止
撤销原语
1.检索找到终止进程的PCB,读出当前进程状态
2.若进程正在运行,立即剥夺CPU并分配给其它
3.若有子进程终止所有子进程 (进程间树形关系)
4.将该进程拥有的所有资源归还操作系统/父进程
5.删除PCB
引起进程终止的事件
正常结束 进程任务完成自己请求终止,exit系统调用
异常结束 整除除0、非法用特权指令、IO故障、存储越界
外界干预 用户/操作系统干预杀掉、父进程外界请求/终止
进程的阻塞和唤醒
进程的阻塞
阻塞原语
1.找到PCB
2.保护进程运行现场,改为阻塞态,暂停运行
3.将PCB插入相应事件的等待队列
引起进程阻塞的事件
需要等待系统分配某种资源
需要等待相互合作的其他进程完成工作
创
建
获
取
资
源
失
败
->
阻
塞
态
运
行
态
->
阻
塞
态
进程的唤醒
唤醒原语
1.在事件等待队列中找到PCB
2.将PCB从等待队列中移除,设置进程为就绪态
3.将PCB插入就绪队列,等待被调度
引起进程唤醒的事件 等待的事件发生
因
何事
等
待
,
就应
何事
唤
醒
(
成对
)
阻
塞
态
->
就
绪
态
进程切换
切换原语
1.将运行环境(进程和处理机)上下文信息存入PCB
2.PCB移入相应队列
3.选择另一个进程执行,并更新其PCB
4.根据PCB恢复新进程所需的运行环境
区
分
进
程
切
换
与
处
理
机
切
换
进
程
切
换
:
保
存
/
恢
复
进
程
和
CPU
上下
文
处
理
机
切
换
:
进
程
可
能
不
变
,
只
需
恢
复
CPU
引起进程切换的事件
当前进程时间片到
有更高优先级的进程到达
当前进程在运行态时主动阻塞
当前进程终止
运
行
态
->
就
绪
态
运
行
态
->
阻
塞
态
进程的通信
概念
概念 进程之间信息交换
引入原因
各进程拥有独立的内存地址空间,为了保证安
全,一个进程不能直接访问其它进程的地址空间
共享存储
设置一块可直接访问的共享空间,读写交换信息
互斥访问共享空间,读/写操作使用p/v
两种方式
基于数据结构(低级)
基于存储区的共享(高级)
操作系统只提供互斥工具和存储空间
数据交换由用户程序自己安排读/写指令
消息传递
进程间数据交换以格式化的消息为单位
系统提供“发送/接受原语”
两种方式
直接通信方式 消息直接挂到接收方的“消息队列”里
间接通信方式 消息先发送到中间实体(信箱)(类似邮件系统)
管道通信
设置一个特殊的共享文件(管道),缓冲区
一个管道只能实现半双工通信(两进程一个工作)
各进程要互斥访问管道
写满时,write被阻塞。读空时,read被阻塞
没写满,不能直接读。没读空,不能直接写
一
次
性
操
作
线程与多线程模型
线程的概念和属性
"轻量级进程"实体,自己不拥有系统资源,
由线程ID和一个线程控制块(记录线程执行所需要
的寄存器、堆栈、程序计数器等现场状态)组成
同一进程中各个线程共享该进程拥有的所有资源
线程是CPU最基本的执行单元,CPU独立的调度
分配单元,是程序执行的最小单元
因线程间也相互制约,有就绪、阻塞、运行三态
资
源
方
面
单
元
线程生
命周
期
线程与进程的比较,引进线程的变化
调度单位 线程是独立调度单位,进程拥有资源的基本单位
资源
进程都是拥有资源的基本单位,线程不拥有系统
资源(少) 但可以访问共享其隶属进程的系统资源
并发粒度
不仅进程可以并发,线程间也可以并发执行,并
发度提升,吞吐量提升
系统开销
1.进程创建撤销,系统为之分配回收资源开销大
2.进程切换时保存/恢复执行进程的上下文开销
大,而线程切换只需保存和设置少了寄存器内容
3.因为同一进程多个线程共享进程的地址空间,
同步通信容易实现,无需系统干预,开销减小
地址空间和其他资源 进程地址空间独立、同一进程共享进程资源
通信方面
进程间通信:需要同步和互斥手段保证数据一致
线程间通信:可直接读写进程数据段(全局变量)
线程的实现方式
用户级线程
用户视角,线程管理(创建撤销切换)均有应用程
序(使用线程库)完成,对内核透明
内核级线程
操作系统视角,线程管理由内核完成(核心态),
应用程序只有到内核线程的编程接口
内
核
级线程
才
是
CPU
分
配
的
单
元
组合方式 用户级线程“映射”到内核级线程
多线程模型
多对一模型
优点
用户及线程切换在用户空间完成,不需要切换到
核心态,因此线程管理的系统开销小、效率高
缺点
一个线程阻塞会导致整个进程被阻塞(并发度低)
多个线程不能运行在多处理机上(只有1内核线程)
一对一模型
优点
一个线程被阻塞,其它仍可执行,并发能力强(多
核多线程下可并行)
缺点
创建一个用户进程需要创建一个内核级线程与之
对应,因此开销大,性能低
多对多模型 优点
既克服了多对一模型并发度不高缺点,又克服了
一对一模型一个用户进程占用太多内核开销问题
启动程序执行
同
一
状
态
相
互
链
接
就
绪
态
等
待
CPU
调
度
阻
塞
态
等
待
除
CPU
外
的
其
它
资
源
区
别
:
主
动
、
被
动
运
行
态
->
阻
塞
态
阻
塞
态
->
就
绪
态
运
行
态
->
终
止
态
视角
不
同
决
定
半双
工
的
因
素
区
分
等
待
事件
的
状
态
(
是
否
完成
)
永远的12
- 粉丝: 67
- 资源: 321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0