程序与进程
- 程序的执行顺序:1-2-3,1是2的前驱,2是1的后继
- 同一个作业没有前驱关系的程序断或不同作业的程序段可以分别并行执行。
- 程序并发执行的特征:失去了程序的封闭性,程序和机器的执行顺序不再一一对应,并发程序见的相互制约性
进程的组成
- pcb是进程存在的唯一标准
- 程序:一个程序能被多个进程同时共享执行,那这一部分就应该再入纯码的形式编制,程序执行时不可以修改
- 数据:数据部分包括程序执行时所需的数据以及工作区,该部分只能为一个进程所专用,是进程的可修改部分
进程的状态
- 三态模型
五态模型
挂起状态
进程控制
进程间的通信
- 同步与互斥
- 同步:进程间的相互协调,a进程完成,b进程开始
- 互斥:我的你不能拿
- 管理原则:有空则进,无空等待,有限等待,让权等待
- 有限等待:要保障进程在有限的时间进入临界区
- 让权等待:当进程不能进入临界区,就释放
- 信号量机制:公用:互斥,1 私用;同步 0
高级通信原语
- 共享存储模式:相互通信的进程共享某些数据结构实现通信
- 消息传递模式:通过原语进行通信
- 管道通信:通过pip文件,写进程和读进程
管程
- 将资源集中管理,将系统中的资源抽象的表现出来。
- 管程是由:共享数据,一些能为并发进程所执行的作用在共享数据上的操作集合,初始代码以及存取权组成。
进程调度
- 高级调度:高级调度也叫:长调度,接纳调度,作业调度。将进程丢到就绪状态
- 中级调度:也叫:中程调度,对换调度,将交换区的进程丢到运行,或者将阻塞状态的丢到交换区,让路给其他进程
- 低级调度:也叫短程调度或者进程调度,将内存中的进程丢到运行
- 调度算法:
- 先来先服务:谁先谁用
- 时间片轮转:固定时间片:分配给每个进程的时间片相等,可变时间片:根据实际情况进行变化
- 优先级调度:根据优先级进行调度,静态优先级:开始的时候就会创建一个优先级,不能变化,动态优先级:可以变化
- 多级反馈调度:最高优先级队列可以先运行
- 进程优先级确定:
- 对于I/O型进程,最高级队列,计算性进程,最低级队列,I/O次数不多,主要是cpu的进程,在完成I/O之后,优先返回I/O进程结束的队列
死锁 - 有2个资源,一人一个,但是他们都要抢对方的,就会构成一个环路,造成死锁
- 死锁的解决方法:
- 预先静态分配法:一次性请求所有资源,不给他们抢的机会
- 资源有序分配法:把资源分类按顺序排列,不让他们形成环路