操作系统-进程和线程 课件

上传人:灯火****19 文档编号:125163102 上传时间:2020-03-15 格式:PPT 页数:120 大小:1.69MB
返回 下载 相关 举报
操作系统-进程和线程 课件_第1页
第1页 / 共120页
操作系统-进程和线程 课件_第2页
第2页 / 共120页
操作系统-进程和线程 课件_第3页
第3页 / 共120页
操作系统-进程和线程 课件_第4页
第4页 / 共120页
操作系统-进程和线程 课件_第5页
第5页 / 共120页
点击查看更多>>
资源描述

《操作系统-进程和线程 课件》由会员分享,可在线阅读,更多相关《操作系统-进程和线程 课件(120页珍藏版)》请在金锄头文库上搜索。

1、第2章 进程和线程 2 1 2 1 进进 程程 概概 念念 2 2 2 2 进程的状态和组成进程的状态和组成 2 3 2 3 进进 程程 管管 理理 2 4 2 4 线线 程程 2 5 2 5 进程的同步和通信进程的同步和通信 2 6 2 6 经典进程同步问题经典进程同步问题 2 7 2 7 管程管程 2 8 2 8 进程通信进程通信 2 9 Linux2 9 Linux的进程管理的进程管理 2 2 1 进 程 概 念 2 1 1程序的顺序执行和并发执行 程序的执行有两种方式 顺序执行和并发执行 顺序执行是单道批处理系统的执行方式 也用 于简单的单片机系统 现在的操作系统多为并发执行 具有许多

2、新的 特征 引入并发执行的目的是为了提高资源利用率 3 例 循环程序A和B 共享一个变量N A每执行一次 都要 做N N 1操作 B每执行一次时 都要执行Print N 操作 然后再将N置成 0 程序A和B以不同的速度运行 A N N 1 B printf d N N 0 4 1 N N 1在Print N 和N 0之前 此时得到的N值分别 为n 1 n 1 0 2 N N 1在Print N 和N 0之后 此时得到的N值分别 为n 0 1 3 N N 1在Print N 和N 0之间 此时得到的N值分别 为n n 1 0 5 2 1 1 多道程序设计 顺序执行的特征 顺序性 按照程序结构所指

3、定的次序 可能有分支或循环 封闭性 独占全部资源 计算机的状态只由于该程序的控制逻辑所 决定 可再现性 初始条件相同则结果相同 如 可通过空指令控制时间 关系 并发执行的特征 间断 异步 性 走走停停 一个程序可能走到中途停下来 失去原 有的时序关系 失去封闭性 共享资源 受其他程序的控制逻辑的影响 如 一个程 序写到存储器中的数据可能被另一个程序修改 失去原有的不变特征 失去可再现性 失去封闭性 失去可再现性 外界环境在程序的两 次执行期间发生变化 失去原有的可重复特征 6 2 1 2 进程概念 它对应虚拟处理机 虚拟存储器和虚拟外设等资源的 分配和回收 引入多进程 提高了对硬件资源的利用率

4、 但又带来 额外的空间和时间开销 增加了OS 的复杂性 一个具有一定独立功能的程序在一个数据集合上的一次动态执 行过程 7 2 1 2 进程概念 较典型的进程定义还有 1 进程是程序的一次执行 2 进程是一个程序及其数据在处理机上顺序执行时所发 生的活动 3 进程是程序在一个数据集合上运行的过程 它是系统 进行资源分配和调度的一个独立单位 8 2 进程的特征 动态性 进程具有动态的地址空间 数量和内容 地址空 间上包括 代码 指令执行和CPU状态的改变 数据 变量的生成和赋值 系统控制信息 进程控制块的生成和删除 独立性 各进程的地址空间相互独立 除非采用进程间通信 手段 并发性 异步性 虚拟

5、 结构化 代码段 数据段和核心段 在地址空间中 程序 文件中通常也划分了代码段和数据段 而核心段通常就是OS 核心 由各个进程共享 包括各进程的PCB 9 2 1 2 进程概念 进程和程序的区别 进程是动态的 程序是静态的 程序是有序代码的集合 进程是程序的执行 通常进程不可在计算机之间迁移 而程序通常对应着文件 静态和可以复制 进程是暂时的 程序的永久的 进程是一个状态变化的 过程 程序可长久保存 进程与程序的组成不同 进程的组成包括程序 数据和 进程控制块 即进程状态信息 进程与程序的对应关系 通过多次执行 一个程序可对 应多个进程 通过调用关系 一个进程可包括多个程序 10 2 2 进程

6、的状态和组成 2 2 1 进程的状态及其转换 1 进程的基本状态 运行状态 Running 就绪状态 Ready 阻塞状态 Blocked 新建状态 New 终止状态 Terminated 11 进程的基本状态 1 进程的三种基本状态 运行态 正在占用CPU运行程序 阻塞态 等待外部事件发生 无法 占用CPU 就绪态 可运行 但其他进程正在 占用CPU 所有被暂时挂起 进进程状态态 12 进程的基本状态 2 运行态 阻塞态就绪态 进程就进程就 绪 可绪 可 以运行以运行 状态转换 状态转换 进程等待外进程等待外 部事件 阻部事件 阻 塞塞 OSOS决定由哪决定由哪 个进程占用个进程占用 CPU

7、CPU 进程 进程 调度调度 进进程状态态 13 进程的基本状态 3 运行态变为就绪态 强制终止某进程的运行 系统原因 运行态变为阻塞态 运行进程等待外部事件发生 自身原因 阻塞态变为就绪态 外部事件已经发生 可准备运行 就绪态变为运行态 停止其他进程运行后 运行该进程占用 CPU 进进程状态态 14 进程的基本状态 4 问题1 为什么不能从阻塞态变为运行态呢 问题2 为什么不能从就绪态变为阻塞态呢 答案 三种状态的变换体现了OS的资源管理作 用 进程的核心思想在于运行 CPU资源的 分配 进进程状态态 15 2 五种进程状态的转换 图2 2 进程的5种基本状态及其转换 图 进程的五种基本状态

8、及其转换 16 2 2 2 进程描述 1 进程映像 进程映像由它的 用户 地址空间内容 硬件寄存器内容和 与该进程有关的核心 数据结构组成 图2 3 进程映像模型 17 2 2 2 进程描述 2 进程控制块的组成 进程控制块 PCB 有时也称进程描述块 Process Descriptor 它是进程组成中 最关键的部分 其中含有进程的描述信息 和控制信息 是进程动态特性的集中反映 是系统对进程施行识别和控制的依据 18 进程描述信息 进程标识符 process ID 唯一 通常是一个整数 进程名 通常基于可执行文件名 不唯一 用户标识符 user ID 进程组关系 process group

9、进程控制信息 当前状态 优先级 priority 代码执行入口地址 程序的外存地址 运行统计信息 执行时间 页面调度 进程间同步和通信 阻塞原因 资源占用信息 虚拟地址空间的现状 打开文件列表 CPU现场保护结构 寄存器值 通用 程序计数器 PC 状态PSW 地址包括栈指针 进程控制块的内容 19 3 进程控制块的作用 OS是根据PCB来对并发进程进行控制和管理的 PCB是进程存在的唯一标志 PCB经常被系统访问 系统将所有的PCB组织成若干个链表 或队列 存放在内存PCB区内 进程控制块是进程实体的一部分 由OS维护 用来记录进 程相关信息 20 21 2 2 3 进程队列 1 线性方式 图

10、2 4 PCB线性队列示意图 22 2 2 3 进程队列 2 链接方式 图2 5 PCB链接队列示意图 23 图2 6 PCB索引结构示意图 2 2 3 进程队列 3 索引方式 24 2 3 进 程 管 理 2 3 1 进程图 进程图 Process Graph 是描述进 程族系关系的有向 树 图2 7 进程创建的层次关系 25 2 3 2 进程创建 引发创建进程的事件通常是调度新的批作业 交 互式用户登录 操作系统提供服务和现有进程派生 新进程 创建新进程时要执行创建进程的系统调用 如 UNIX Linux系统中的fork 其主要操作过程有如 下四步 1 申请一个空闲的PCB 2 为新进程分

11、配资源 3 将新进程的PCB初始化 4 将新进程加到就绪队列中 26 下面这个C程序展示了UNIX系统中父进程创建子进程 及各自分开活动的情况 include void main int argc char argv int pid fork another process pid fork if pid 进程之间存在资源共享 进程的运行时间受影响 47 进程间的相互关系 互斥 进行竞争 独占分配到的部分或全部共享资源 同步 进行协作 等待来自其他进程的信息 通信 48 2 5 1 进程的同步和通信 1 1 同步同步 所谓同步 就是并发进程在一些关键点上可所谓同步 就是并发进程在一些关键点上可

12、 能需要互相等待与互通消息 这种相互制约能需要互相等待与互通消息 这种相互制约 的等待与互通消息称为进程同步 的等待与互通消息称为进程同步 同步意味着两个或多个进程之间根据它们一同步意味着两个或多个进程之间根据它们一 致协议进行相互作用 致协议进行相互作用 同步的实质是使各合作进程的行为保持某种同步的实质是使各合作进程的行为保持某种 一致性或不变关系 要实现同步 一定存在一致性或不变关系 要实现同步 一定存在 着遵循的同步规则 着遵循的同步规则 49 缓冲区B P1进程P2进程 进程间同步问题示意图 50 2 互斥 指进程间因相互竞争使用独占型资源 而产 生的制约关系 它主要由资源共享引起 这

13、种关系表现形式为 进程 资源 进程 进程间资源访问冲突 共享变量的修改冲突 操作顺序冲突 51 共享变量的修改冲突 T1 T1 Read xRead x if xif x 1 1 x x 1 x x 1 Write xWrite x T2 T2 Read xRead x if xif x 1 1 x x 1 x x 1 Write xWrite x 5 5 x 4 4 5 5 4 4 考虑一个飞机订票系统 两个终端 运行T1 T2进程 52 操作顺序冲突 例 生产者 消费者问题 生产者指针in 消费者指针out n 1 in in 1 n out out 1 n 满 空 53 生产者和消费者两

14、进程共享下面的变量 int n 缓冲区数目 type item item buffer n 产品缓冲区 int in out 输入指针 输出指针 int counter 产品数量 54 Producer While 1 produce an item in nextp while counter n buffer in nextp in in 1 n counter counter 1 consumer while 1 while counter n nextc buffer out out out 1 n counter counter 1 consumer the item in next

15、c 55 对于Counter变量的操作 生产者和消费者执行如下 register1 counter register 2 counter register1 register 1 1 register 2 register 2 1 counter register 1 counter register 2 并发时可能产生错误 56 2 5 2 临界资源和临界区 1 临界资源和临界区 一次仅允许一个进程使用 我们把这类共享 资源称为临界资源 Critical Resource 在每个进程中访问临界资源的那段程序叫做 临界区 Critical Section 简称CS区 57 2 5 2 临界资源

16、和临界区 2 进程的一般结构 图2 15 典型进程的一般结构 58 2 5 2 临界资源和临界区 3 临界区进入准则 如果若干进程要求进入空闲的临界区 一 次仅允许一个进程进入 任何时候 处于临界区内的进程不可多于 一个 进入临界区的进程要在有限时间内退出 如果进程不能进入自己的临界区 则应让 出CPU 避免进程出现 忙等 现象 59 2 5 2 临界资源和临界区 图2 16 互斥使用临界区 60 2 5 3 互斥实现方式 1 利用硬件方法解决进程互斥问题 1 禁止中断 2 专用机器指令 将内存单元上锁 2 原语 是机器指令的延伸 往往是为完成某些特定的功 能而编制的一段系统程序 原语操作也称做 原子操 作 atomic action 即一个操作中的所有动作要 么全做 要么全不做 执行原语操作时 要屏蔽中断 以保证其操作的 不可分割性 61 2 5 3 互斥实现方式 3 利用软件方法解决进程互斥问题 可为每类临界区设置一把锁 该锁有 打开和关闭两种状态 关锁原语lock W while W 1 W 1 开锁原语unlock W w 0 62 2 5 3 互斥实现方式 进程进程A A l

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号