-
定义
- 计算机的系统软件,统一管理计算的软件,硬件资源,控制程序的运行。
-
形成与发展
- 1946-1950s,电子管时代
- 1960-1965,晶体管时代
- 1965-1975,集成电路ic时代
- 1975- ,大规模集成电路
-
处理器管理
- 程序: 指令的有序集合
-
并发
-
特性
- 间断性
- 失去封闭性
- 不可再现性
-
临界区
- 并发程序中与共享变量有关的程序段
-
并发控制
- 一次只让一个进程在临界区执行
- 任何一个临界区的进程必须在有限时间退出临界区
- A进程退出临界区,在等待的B进程必须让他进入临界区
-
管理方案
- PV操作(Signals)
- P操作:请求一个资源 V操作:释放一个资源
-
死锁
-
四个必要条件
- 1)互斥条件
- 2)请求和保持条件
- 3)不剥夺条件
- 4)环路等待条件
- 指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。
-
问题描述
- 系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。
- 每个进程的资源需求总量不能超过系统拥有的资源总数, 银行算法进行资源分配可以避免死锁。
- 当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。
-
进程
-
特性
- 动态性
- 并发性
- 独立性
- 异步性
-
结构性
- 程序段
- 数据段
- 进程控制块PCB
- 资源的申请与拥有单位
-
互斥
- 一次只让一个进程在临界区执行
-
线程
- 进程中的一个实体,独立参与调度
- 一个进程可以拥有多个线程
- 线程共享进程所拥有的资源(同一个地址空间)
- 线程控制块TCP
- 同一个进程内的线程之间的通信主要是基于全局变量
-
只拥有一些在运行时必要的资源
- 程序计数器
- 寄存器
- 栈
- 调度执行的基本单位
- job管理
- 存储管理
- 设备管理
- 文件管理