操作系统原理第2章 进程的描述与控制---Here is the extracted content from the image: **《复习课思维导图》** **第2章 进程的描述与控制** **程序** * 前驱图 * 有向无循环图, 用于描述 * 进程之间执行的先后顺序 * 程序顺序执行的特征 * 顺序性 * 程序每个动作都按顺序执行 * 封闭性 * 只有程序本身的动作才能改变程序运行的环境 * 可再现性 * 程序的执行结果与程序运行速度无关 * 程序并发执行的特征 * 间断性 * 多个程序共享全局资源, 执行状态受外界因素影响 * 失去了封闭性 * 程序经过多次执行后, 虽然执行时的环境和初始条件都相同, 但得到的结果却不各相同。(不可再现性) * 相互制约性 * 并发程序之间相互制约。 * 与计算不再一一对应 * 一个共享程序可被多个用户调用, 从而形成多个“计算” **进程** * 定义 * 程序在并发环境中的执行过程, 是正在运行程序的一个抽象 * 特征 * 动态性 (最基本的特征) * 具有生命周期, 会动态地产生和消亡 * 并发性 * 一段时间内同时运行多个进程 * 非对应性 (独立性) * 进程实体是一个能独立运行的基本单位 * 是系统中独立获得资源和独立调度的基本单位 * 异步性 * 程序和进程无一一对应关系 * 按各自独立的目的, 不可预知的速度向前推进 * 进程和程序的区别 * 进程是动态概念。 * 进程具有并发性, 宏观上同时运行。 * 进程具有独立性, 是一个能独立运行的单位, 是系统资源分配的基本单位, 是运行调度的基本单位 * 进程和程序无一一对应关系, 一个进程可顺序执行多个程序 * 进程异步前进, 会相互制约。 * 程序是静态概念。 * 程序本身具有顺序性, 程序的并发执行是通过进程实现的 * 程序本身没有此特性 * 一个程序可由多个进程共用。 * 程序不具备此特性 * 进程的描述 * 进程映像 * 程序 * 数据集合 * 栈 * PCB * 进程控制块 (PCB) * 是操作系统中最重要的记录型数据结构 * PCB是进程存在的唯一标识; * 作用 * 操作系统根据PCB对进程实施控制和管理; * 提供进程管理所需的信息; * 进程的动态、并发等特征是利用PCB表现出来的 * PCB的组织方式 * 线性方式 * 链接方式 * 索引方式 * 进程的状态及转换 * 三种基本状态 * 运行状态 (Running) * 就绪状态 (Ready) * 阻塞状态 (Blocked) * 进程状态的转换 * 进程管理 * 进程创建 * 引起进程创建的事件 * 用户登录、作业调度、提供服务、应用请求 * 进程创建过程 * 1、申请空白PCB; * 2、分配所需资源; * 3、初始化PCB; * 4、插入就绪队列 * 进程终止 * 引起进程终止的情况 * 正常结束、异常结束、外界干预 * 进程的终止过程 * 1、从PCB集合中检索出该进程的PCB, 若被终止进程正处于执行状态, 应立即终止该进程的执行 * 2、回收该进程占用的全部资源 * 3、若该进程还有子孙进程, 则还需终止所有子孙进程, 并回收资源 * 4、将被终止进程 (PCB) 从所在队列中移去。 * 进程阻塞与唤醒 * 引起进程阻塞的事件 * 向系统请求共享资源失败; 等待某种操作的完成; 新数据尚未到达; 等待新任务的到达 * 进程阻塞过程 * 1、停止执行; 2、保存现场信息, 将状态由执行改为阻塞; 3、将PCB插入阻塞队列; 4、转到调度程序 * 引起进程所等待的时间出现时 * 唤醒进程 * 1、从阻塞队列中移出; 2、状态由阻塞改为就绪; 3、将PCB插入就绪队列。 * 进程挂起与激活 **进程同步与互斥** * 同步 * 进程之间的一种直接的协作关系。即进程之间相互制约的等待与互通消息。 * 互斥 * 进程之间的一种间接关系。即两个或两个以上的进程之间互斥地争夺共享资源的现象 * 临界资源 * 系统中某些资源一次只允许一个进程使用, 这样的资源为临界资源 * 临界区 * 进程互斥执行的程序段。 * 临界区的调用原则 * 有空让进 * 忙则等待 * 有限等待 * 让权等待 * 信号量 * 是一个特殊变量, 表示资源的实体, 其值仅由P、V操作来改变 * 互斥信号量 * 用于实现进程间的互斥, 初值为1, 只可进行P、V操作 * 同步信号量 * 用于实现进程间的同步, 初值为0或正整数n, 拥有它的进程只能进行P操作 * P操作 * 执行S=S-1, 申请调用资源 * 若S≥0, 则进程继续执行 * 若S<0, 则进程阻塞, 并进入阻塞队列 * V操作 * 执行S=S+1, 申请回收资源 * 若S>0, 则进程继续 * 若S<=0, 则从等待队列中取出一个进程 * P、V操作都应作为一个整体实施, 不允许分割或相互穿插执行 * 经典同步互斥问题 * 生产者-消费者问题 * 读者-写者问题 * 哲学家就餐问题 **进程通信** * 低级 * 特点 * 效率低 * 通信对用户不透明 * 高级 * 特点 * 使用方便 * 高效地传送大量数据 * 共享存储器 * 消息传递系统 * 直接通信方式 (消息队列) * 间接通信方式 (通过邮箱) * 管道文件 * 客户机-服务器系统 * 套接字 (Socket) * 远程调用 **线程** * 定义 * 线程 (Thread) 是进程中执行调度的最小单位, 亦即执行调度的基本单位 * 引入线程概念 * 使并发获得共享同一地址空间和所有可用数据的能力 * 易于切换, 代价低 * 可以改善系统的性能 * 线程与进程的比较 * 一个进程可以有多个线程, 但至少要有一个线程; 而一个线程只能在一个进程的地址空间内活动。 * 资源分配给进程, 同一进程的所有线程共享进程的所有资源。 * 处理器分配给线程, 即真正在处理机上运行的是线程。 * 线程在执行过程中需要协作同步。不同进程间的线程要利用通信的办法实现同步。

视频信息