1. 程序顺序执行时的特征: 顺序性, 封闭性, 可再现性
2. 进程的六大特征:
1. 结构特征, 通常的程序是不能并发执行的, 我们会为之配置一进程控制块, 即 PCB. 程序段, 数据, PCB 构成了进程实体.
2. 动态性, 进程的实质是进程实体的一次执行过程
3. 并发性, 多个进程实体同存于内存中, 且能在一段时间内同时运行
4. 独立性 5. 异步性 6. 制约性
3. 进程的三种基本状态: 就绪状态, 运行状态, 阻塞状态.
1. 进程的转换图
运行态: 当一个进程在处理机上运行时, 则称该进程处于运行状态. 处于此状态的进程的数目小于等于处理器的数目, 对于单处理机系统, 处于运行状态的进程只有一个.
就绪态: 当一个进程获得了除处理机以外的一切所需资源, 一旦得到处理机即可运行, 则称此进程处于就绪状态. 就绪进程可以按多个优先级来划分队列. 例如, 当一个进程由于时间片用完而进入就绪状态时, 排入低优先级队列; 当进程由 I/O 操作完成而进入就绪状态时, 排入高优先级队列.
阻塞态: 也称为等待或睡眠状态, 一个进程正在等待某一事件发生 (例如请求 I/O 而等待 I/O 完成等) 而暂时停止运行, 这时即使把处理机分配给进程也无法运行, 故称该进程处于阻塞状态. 进程的阻塞是进程自身的一种主动行为.
不可能存在直接从阻塞态转换到执行态.
2. 引起挂起状态的原因: 终端用户的请求, 父进程请求, 负荷调节的需要, 操作系统的需要.
3. 用于控制进程的原语有
创建原语(Create): 创建一个就绪状态的进程, 使进程从创建状态变迁为就绪状态.
撤销原语: 使进程从执行状态变迁为完成状态.
阻塞原语(Block): 使进程从执行状态变迁为阻塞状态.
唤醒原语(Wakeup): 使进程从阻塞状态变迁为就绪状态.
挂起原语(Suspend): 将指定的进程或处于阻塞的进程挂起
4. 为了描述和控制进程的进行, 系统为每个进程定义了一个数据结构 --PCB(进程控制块),PCB 是进程存在的唯一标志
它包含进程标识符(内部标识符: 每个进行唯一的一个数字标识符, 外部标识符: 创建者提供), 处理机状态, 进程调度信息和进程控制信息.
5. 进程同步:
1. 有两种形式的制约: 间接性制约(同一个系统的进程需要共享着某种资源), 直接性制约(源于进程间的合作)
2. 临界资源: 一次只能供一个进程访问的资源.
3. 临界区: 把不允许多个并发进程交叉执行的一段程序称为临界区或临界部分. 当一个进程使用该临界资源时, 其他需要访问该资源的进程必须阻塞, 直到占用者释放该资源.
4. 互斥: 一组并发进程中的一个或多个程序段, 因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行. 也就是说, 不允许两个以上的共享该资源的并发进程同时进入临界区.
5. 信号量: 本身是一个计数器, 使用 P,V 两个操作来实现计数的减与加, 当计数不大于 0 时, 则进程进入睡眠状态, 它用于为多个进程提供共享数据对象的访问.
6. 互斥量: 如果信号量只存在两个状态, 那就不需要计数了, 可以简化为加锁与解锁两个功能, 这就是互斥量.
6. 实现进程同步的几种方式: 信号量, 管程, 消息传递.
来源: http://www.bubuko.com/infodetail-2975351.html