文章索引
进程基础
进程的基本概念
- 程序顺序执行的特征:
- 顺序性
- 封闭性
- 可再现性
- 程序并发执行的特征:
- 间断性
- 失去封闭性:各程序共享系统资源
- 不可再现性:必须想办法避免
- 进程的概念:具有独立功能的程序在某一个数据集合上的执行过程。它是系统进行资源分配和调度的一个独立单位。
- 进程的特征:
- 结构特征:
- PCB(进程控制块):与进程共存亡,用于记录进程的基本情况和活动过程,一般常驻内存
- 程序段:描述要完成的功能,需要的时候动态调入内存
- 数据段:操作的对象即工作区,需要的时候动态调入内存
- 动态性:进程是动态的。由创建产生,由调度(进程调度而非作业调度)执行,由撤销而消亡
- 并发性:多个进程实体在内存中,能在同一时间段内执行
- 独立性:进程实体是一个能独立运行,独立获得资源和独立接收调度的基本单位
- 异步性:指进程以不可预知的速度向前推进
- 结构特征:
- 进程的三种基本状态:
- 就绪状态:进程已经分配到了除CPU外的所有资源,获得CPU即可执行
- 执行状态:已经获得CPU,正在执行的进程(单处理机同一时刻只能有一个进程,多处理机则相反)
- 阻塞/等待状态:在执行的过程中由于发生某些事件(I/O请求、申请缓存等),暂时无法执行的进程。进入阻塞态的进程被调离内存,进入外存。
- 进程的创建状态和终止状态:
- 创建状态:就绪状态之前的状态
- 终止状态:自然结束、遇到无法克服的问题、被操作系统终结,即进入终止状态
进程与程序的区别与联系
- 区别:
- 进程是一个动态的概念,程序是静态的概念
- 进程可以具有并行性,但是程序没有
- 进程是竞争系统资源的基本单位
- 联系:一个程序可以对应多个进程,一个进程又可以为多个程序服务
进程同步
- 进程同步的基本概念:
- 进程同步的目的:
- 按照一定的规则共享系统资源
- 对多个相关进程在执行次序上进行协调,使程序具有可再现性
- 两种形式的制约关系:
- 间接相互制约关系:多个进程在并发执行时,由于共享系统的临界资源而相互制约(互斥)
- 直接相互制约关系:多个进程为完成统一任务而相互合作(同步)
- 临界资源:一次仅允许一个进程使用的共享资源
- 互斥和同步的概念:
- 互斥:并发的多个进程由于竞争同一资源,而产生的互相排斥的关系
- 同步:进程间共同完成一项任务时,直接发生相互作用的关系
- 信号量机制:
- 信号量:
- 仅与P,V操作有关。P为等候原语wait(S),V为释放原语signal(S)
- wait操作即在申请资源,signal操作即在释放资源
- 整型信号量:
- 定义:一个用于表示资源数目的整形量。当申请资源时死循环等待有空闲,然后将资源数-1。释放时将资源数+1。
- 优缺点:实现简单;违背了同步机制中的让权等待原则,死循环浪费资源。
- 记录型信号量:
- 定义:使用结构体,记录资源空闲数或被阻塞的进程数和阻塞列表。当申请资源时将变量-1,若变量小于0,则将进程加入阻塞队列。释放时将变量+1,并可能会唤醒一个阻塞的进程。
- 优缺点:通过链表弥补整形信号量的缺点。只适用于对单一资源的管理,无法管理一个进程需要请求多类资源的情况,可能会发生死锁。
- AND型信号量:
- 定义:类似地,可以同时申请多个资源,当全部满足时分配,否则进入阻塞态。释放时将所有处于阻塞态的其它任务唤醒。
- 信号量集:
- 定义:类似地,可以同时申请多个资源,且可以要求至少需要的资源数量。
- 信号量:
- 进程同步的目的: