进程管理
总领:OS是人类设计和实现的最大最繁琐的软件之一,它抽象于冯·诺伊曼计算机模型并对其实现自动化管理。其中处理器是模型中最核心的部分,而处理器管理的单位称为进程,为进一步提升资源利用率则多道程序设计应运而生。
处理器方面(软硬件)

指令系统(特权、非特权)
存储
寄存器、用户栈与核心栈
处理器状态
- 内核态、用户态
- 区别在于:是否被允许运行特权指令(安全)
程序状态字(PSW)
- 实现程序状态的保护和恢复
中断系统
是激活OS的唯一方式,是软硬件协作的典范。
中断分类
- 硬中断、软中断
- 软中断:中断(处理器外中断)、异常(处理器内中断)
- 区别在于:1.产生方式 2.同异步 3.cpu状态 4.主被动 5.阻塞与否、嵌套可否
步骤响应
处理原则
优先级与多重中断
进程
PCB+数据+代码。顺序程序设计4特点、进程5特点属性

状态与转换
- 三态模型、七态模型
(按照运行条件、拥有CPU)

描述与组成
Process Image 动态刻画
- 进程控制块、程序块、核心块、数据块
Process Context 静态刻画(环境)
- 用户级上下文、寄存器、系统级
PCB
- 标识信息、现场、控制
- 两种组织方式:链接、索引


进程各状态的实现
进程控制
进程控制原语
- 创建、阻塞、撤销、挂起、激活
线程
- 引入线程的意义及优点(轻量级进程)
- 公有、私有部分
- 实现:KLT、ULT、混合式
- 模型:一对多模型、多对一、多对多
处理器调度
分层
- 高级调度(作业调度,控制多道proc的道数)、中级调度(平衡调度,控制内存容纳进程数)、低级调度(进程/线程调度,决定CPU的分配)
原则(背计算公式)
- 资源利用率、吞吐率、公平性(均衡)、响应时间、周转时间
作业管理与调度
- 作业是程序、数据、作业说明书构成,JCB
- 交互型作业(终端作业)、批处理作业
- SPOOLing系统 输入井、输出井
- 脱机、联机
低级调度
- 剥夺式(抢占)、非剥夺式(非抢占)
- 算法主要影响作业周转时间和等待时间
FCFS
- 按照进入系统先后顺序来挑选作业
- 非抢占式算法
- 公平性算法
- 易于实现,效率不高
SJF/SPF
- 每次挑选最短运行时间的作业
- 非抢占式
- 优待短作业,长作业易饥饿
- 效率较高
SRTF
- 每次挑选最短剩余时间的作业
- 抢占式
HRRF
- 每次选最高响应比的作业
- 非抢占式
- 等待时间相同,运行时间短的作业优先;运行时间相同,等待时间长的优先
- 效率介于SJF与FCFS之间
HPF
-
根据当前进程的优先级来选择 ,优先级:进程的一种调度属性
-
静态优先级:在进程创建时确定,之后不再改变
-
动态优先级:随着占用CPU的时间而改变
-
剥夺或非剥夺
RR
-
规定每个进程运行的时间片,按照某种顺序(FCFS)轮流调度执行
-
剥夺或非剥夺
-
时间片长度的确定
MLFQ
- 优先级不同分多就绪队列
- 排队参考老化策略
解题思路
- 公式
- 画图:并发执行运行轨迹画法、甘特图
同步、通讯与死锁
进程交互
- 同步(竞争、协助)、通讯
- 竞争(进程互斥):死锁、饥饿; 协助(进程同步): 间接协助、松散、紧密
- 进程互斥关系是一种特殊的进程同步关系
- 并发实质:处理器在几个程序间多路复用
- Bernstein条件:满足公式为交集则保证封闭性、可再现性, P125
- Amdahl定律:可并行和顺序的比例对性能影响的公式
临界区
- 并发进程中与共享变量有关的程序段称为临界区,临界资源是每次仅供一个进程使用的。
- 临界区互斥三原则:互斥使用、忙则等待、有限等待、让权等待
同步
忙式等待策略(软硬件)
1.关中断
2. 测试并设置指令
3.对换指令
忙式等待缺陷
- 忙等待,浪费cpu时间
- 依赖os具体指令
- 只能互斥,不适合控制多进程同时进入临界区
信号量和PV操作
- P、V操作原语
- 用法和可解决的问题
- 信号量 按用途分: 公有、私有;按取值分 二值、一般
- 信号量值的意义(等于、小于0、小于等于0)
- PV成对出现,P操作次序最为重要
管程
- 是一种记录型信号量,相比PV信号量是一个整体的数据结构,与类方法不同的是只被互斥调用
- signal() wait(),可在高级语言实现
- 分为工作区和等待区
IPC
信号通讯
- When:传简单信息
- What:发指定(预定义)的信号来通知另一个进程,接受方根据信号类型执行处理
- How:产生、传递、捕获、释放
管道通信
-
When:同一台PC传大量数据
-
What:单向FIFO,Unix OS特有的进程间通信方式
-
How:临时-> 创建、打开、关闭、读写
有名管道-> FIFO通信机制,以文件形式存于FS,可直接用,用时读写
共享内存
- When:同一台PC传大量数据
- What:多进程共有shared memory,所有进程都可以读写该区
- How:虚拟存储实现
消息传递
-
When&What:不同进程(甚至不同主机上的不同进程)间传递大量数据
-
How:消息队列方式实现。两原语 send() 、receive() 皆有阻塞(同步)or非阻塞(异步)方式
死锁
死锁四大条件
- 互斥、占用和等待、不剥夺、循环等待
- 一般不破坏互斥条件
死锁控制
(动静结合)
事前 ———— 防止(预防)—— 规则(顺序资源分配法)
| |
| ———— 避免 ———————— 银行家算法(不限制申请资源顺序,限制分配资源顺序)
|
事后 ———— 检查与解除 ———— 死锁检查算法 or 资源分配图和死锁定理(找环的回路),恢复(kill P、剥夺资源、保存检查点、重启)
思考
- 死锁与饿死
- 活锁与饥饿
经典同步问题
哲学家吃面
- 等叉子方案
- 等盘子方案
7919

被折叠的 条评论
为什么被折叠?



