第2章-进程与线程.ppt_第1页
第2章-进程与线程.ppt_第2页
第2章-进程与线程.ppt_第3页
第2章-进程与线程.ppt_第4页
第2章-进程与线程.ppt_第5页
免费预览已结束,剩余55页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章进程与线程 进程是操作系统中最重要的概念之一 进程不仅是最基本的并发执行单位 而且也是分配资源的基本单位 从进程观点出发 对计算机系统进行结构设计 也是软件开发的一种新技术 2 本章要点 进程的引入 进程的状态及其组成控制 线程的概念 进程间的通信 Linux中的进程 3 学习目标 掌握 进程概念 进程的状态及其变化 进程的通信 理解 多道程序设计 进程的组成 临界资源和临界区 线程的概念 了解 进程间的高级通信 线程概念 4 2 1进程概念 进程 Process 是计算机中的程序关于某数据集合上的一次运行活动 是系统进行资源分配和调度的基本单位 是操作系统结构的基础 在早期面向进程设计的计算机结构中 进程是程序的基本执行实体 在当代面向线程设计的计算机结构中 进程是线程的容器 程序是指令 数据及其组织形式的描述 进程是程序的实体 5 2 1 1多道程序设计 顺序执行 顺序程序示意图 6 2 1 1多道程序设计 顺序执行 7 2 1 1多道程序设计 顺序执行 t 输入 计算 输出 t0t1t2t3t4t5t6t7t8t9t10 三个程序间顺序执行 t 程序2 程序3 I2 C2 P2 I3 C3 P3 8 2 1 1多道程序设计 顺序执行 顺序程序活动特点顺序性 顺序执行行过程可看作一系列严格按程序规定的状态转移过程 封闭性 程序执行得到的最终结果由给定的初始条件决定 不受外界因素的影响 可再现性 只要输入的初始条件相同 则无论何时重复执行该程序都会得到相同的结果 9 2 1 1多道程序设计 并发执行 输入 计算 输出 t0t1t2t3t4t5t6 t t 三个程序并发执行示例 10 2 1 1多道程序设计 并发执行 程序并发执行概念作业吞吐量是指在给定时间间隔内所完成作业的数量 CPU的利用率 单道程序系统的缺点 资源浪费 效率低 周转时间长等 多道程序系统的优点 资源利用率高 吞吐量大等 11 2 1 1多道程序设计 并发执行 t A A t 等待I O的时间 6个 t a 单道情况 11 0 7 8 B B t A A t b 两道情况 11 0 7 1 8 9 t 单道 两道和四道情况 1 2 1 8 t 0 125道程序 t 2 9 t 0 222道程序 t 4 11 t 0 363道程序 t 吞吐量 12 2 1 1多道程序设计 并发执行 程序并发执行的特征失去封闭性程序与计算不再一一对应并发程序在执行期间相互制约 13 2 1 1多道程序设计 并发执行 航班座位示意图 begin ifrow n begin ticket row col 1 write 座位 row 排 col 号 begin ifrow n begin ticket row col 1 write 座位 row 排 col 号 B1 B2 12345 12345 row 3 col 4 row 3 col 4 row 3 col 4 例 在多道程序设计环境下 结果再现性 被打破的简单例子 航班售票系统 14 2 1 2进程的概念 引入进程概念多道程序并发执行所引发的一系列新情况 必须引入新的概念来描述程序动态执行过程的性质 15 2 1 2进程的概念 进程概念定义程序在并发环境中的执行过程 进程最根本的属性是动态性和并发性 进程 是操作系统的最基本 最重要的概念之一 这是对正在运行程序的一个抽象 但还没有形成统一的定义 生活中事例 按菜谱做菜 16 2 1 2进程的概念 进程和程序的区别 17 2 1 2进程的概念 进程特征动态性 进程具有生命过程 有诞生 消亡 可以执行也可暂停 可处于不同状态 并发性 多个进程能够存在于同一内存中 在一定时间内都能得到执行 一个程序的进程可与另一个程序的进程以并发的形式执行 但各个进程向前执行的速度无法预知 以异步形式执行 因此造成进程间的相互制约 使程序具有不可再现性 调度性 进程是系统中申请资源和调度的单位 操作系统中的调度程序 根据各自不同的调度策略选择合适的进程 并为其运行提供条件 18 2 2进程状态与转换 19 2 2 1进程的状态 进程的状态运行状态 Running 运行状态是指当前进程已经分配到CPU 正在处理机上执行时的状态就绪状态 Ready 就绪状态是指进程已经具备运行条件 但因其他进程正占用CPU 使其不能运行而只能处于等待CPU的状态 处于此状态的进程数目可以有多个 阻塞状态 Blocked 又称为等待状态或封锁状态 一个进程正在等待某一事件 如等待某资源成为可用 等待输入输出完成或等待与其他进程的通信等 而暂时不能运行的状态 20 2 2 1进程的状态 21 2 2 2进程状态的转换 22 进程的基本状态和状态变迁 进程五状态及转换图 事件发生如I O完成 等待事件发生如等待I O 时间片到 调度 接纳 终止 进程在生存期间 可以多次地从一个状态转换到另一个状态 即多次地处于运行状态 就绪状态 阻塞状态 反映了并发程序 走走停停 的运行轨迹 进程不断地从一个状态转换到另一个状态是有条件 或原因的 这些状态随着进程的执行和外界条件发生变化而转换 事实上 进程的状态转换是一个非常复杂的过程 从一个状态到另一个状态的转换除了不同的控制过程 有时还要借助于硬件才能完成 进程优先数 45 新建 23 对进程状态更细致的划分 进程的挂起状态 具有挂起状态的进程状态转换图 事件发生如I O完成 运行 等待事件发生如等待I O 时间片到 调度 完成 终止 活动空间 挂起 激活 挂起 事件发生如I O完成 接纳 接纳 挂起 激活 24 2 3进程的描述与控制 25 2 3 1进程的描述 1 进程映像进程映像通常就由程序 数据集合 栈和PCB等4部分组成 进程映像模型 26 2 3 1进程的描述 2 进程控制块的定义与作用进程控制块 PCB 也称进程描述块 ProcessDescriptor 进程组成中最关键的部分 其中含有进程的描述信息和控制信息 是进程动态特性的集中反映 是系统对进程施行识别和控制的依据 每个进程都必须有一个唯一的标识符每个进程有惟一的进程控制块PCB是进程存在的唯一标志 27 2 3 1进程的描述 3 进程控制块的组成进程控制块一般应包括如下内容 进程描述信息进程标识符 进程名 用户标识符处理器状态信息 现场保护区 用户可见寄存器 程序计数器 条件码 状态信息 栈指针进程控制信息当前状态 优先级 priority 调度信息 进程间通信 资源占用信息 进程实体信息 族系关系 28 2 3 2进程的控制 进程是有生命周期的 产生 运行 暂停 终止 进程控制包括 进程创建 进程撤消 进程阻塞 进程唤醒 改变进程优先数 调度进程运行 四种原语进程阻塞 运行状态转变为等待状态 进程唤醒 等待状态转变为就绪状态 进程创建 新建进程转变为就绪状态 进程调度 就绪状态转变为运行状态 29 2 3 2进程的控制 进程的创建 create name priority start addr 创建一个指定标识符的进程 30 2 3 2进程的控制 进程的撤销 kill exit 撤销当前运行的进程 31 2 3 2进程的控制 进程阻塞 susp chan 终止调用进程的执行 加入等待chan的等待队列中 32 2 3 2进程的控制 进程唤醒 wakeup chan 当进程等待的事件发生时 唤醒等待该事件的所有进程或等待该事件的首进程 33 2 4进程的组织 34 2 4 1进程的组成 进程是由程序段 数据段和进程控制块组成的 程序段描述了进程本身所要完成的功能 数据段是程序操作的一组存储单元 是程序操作的对象 当进程存在于系统时 进程控制制块PCB就代表了这个进程 35 2 4 2PCB的组织方式 1 线性方式 PCB线性队列示意图 36 PCB链接队列示意图 2 4 2PCB的组织方式 2 链接方式 37 2 4 2PCB的组织方式 PCB索引结构示意图 3 索引方式 38 2 5进程的通信 低级通信方式信号量高级通信方式共享存储器系统消息传递系统管道通信 39 2 5 1共享存储器系统 为了传输大量数据 在存储器中划出一块共享存储区 相互通信的进程共享某些数据结构或共享存储区 基于共享数据结构的通信方式基于共享存储区的通信方式 40 2 5 2消息传递系统 消息系统中 进程间的信息交换以消息或报文为单位 程序员直接利用系统提供的一组通信命令 原语 来实现通信 消息系统的通信方式可分成以下两种 直接通信方式Send receiver message Receive sender message 间接通信方式在间接通信方式中 进程之间需要通过某种中间实体 来暂存发送进程发送给某个或某些目标进程的消息 接收进程则从中取出发送给自己的消息 41 2 5 3管道通信 管道通信是指用于连接一个写进程和一个读进程的一个共享文件 这是基于原有的文件系统形成的一种通信方式 即它利用共享文件实现进程间的通信 为了协调双方的通信 管道通信机制必须提供三方面的协调能力 互斥当一个进程正在对pipe进行读 写操作时 另一进程必须等待 同步当写 输入 进程把一定数据 如4kB 写入pipe后便去睡眠等待 直到读 输出 进程取走数据后再把它唤醒 当读进程读一空pipe时也应睡眠等待 直到写进程将消息写入管道后 才将它唤醒 判断对方是否存在只有已确定对方存在时 方能进行通信 42 2 6线程 43 2 6 1线程的概念 线程 thread 是比进程更小的独立运行单位 线程的引入系统在创建进程时 必须为之分配其所必须的 除了CPU以外的所有资源 进程在建立以后到被撤消之前 要经历若干次进程的状态转换 在进行进程状态转换时 要保留进程执行时的CPU环境 并设置新选中进程的CPU环境 为此系统需要花费不少的处理机的时间 由于进程不仅是系统调度的基本单位还是一个资源的拥有者 这双重身份使得进程在创建 撤消以及状态转换中 系统要为之付出较大的时间和空间开销 现代操作系统把资源分配和调度分离开来 让进程仍作为资源分配的单位 只作为资源拥有者 而把线程作为系统调度的单位 44 2 6 1线程的概念 单线程进程和多线程进程的结构一个进程至少拥有一个线程 该线程为主线程 进程根据需要可以创建若干个线程 45 2 6 1线程的概念 线程的状态线程创建后运行过程三个主要状态是 运行 就绪 阻塞 每个线程都有一个thread结构 即TCB 46 2 6 2线程与进程的比较 调度单位在引入线程的操作系统中 进程作为资源分配的基本单位 线程作为调度和分派的基本单位 并发性作为比进程更小的执行单位 一个进程中的多个线程之间 也可以并发执行 因而操作系统具有更好的并发性 拥有资源在多线程环境中 进程仍然有一个进程控制块和用户地址空间 线程本身基本上不拥有资源 只拥有少量必不可少的资源 系统开销在一个进程中创建一个新的线程比创建一个全新的进程所需要的时间要少 撤消一个线程比撤消一个进程所需要的时间要少 47 2 6 3线程的实现与模型 是否依赖于内核 用户级线程 内核级线程 混合式线程 48 2 6 3线程的实现与模型 三种模型一对一多对多多对一 49 2 7Linux中的进程 Linux是一个多任务多用户的操作系统 支持多个进程在系统中并发执行 每个进程都具有一定的功能和权限 它们都运行在各自独立的虚拟地址空间中 并且进程也是系统资源分配的基本单位和使用CPU运行的基本调度单位 50 2 7 1Linux中进程的概念 Linux中进程实体的组成正文段 只读的指令代码 允许多个进程共享该代码段 用户数据段 进程执行时直接操作的所有数据 系统数据段 存放进程的控制信息 即PCB 51 2 7 1Linux中进程的概念 Linux中进程的状态 52 2 7 1Linux中进程的概念 Linux进程控制块的组成进程当前的状态调度信息进程标识符进程通信信息进程的家族关系时间和定时信息文件系统信息存储管理信息CPU现场信息 53 2 7 2Linux的进程控制 进程的创建进程的执行进程的终止进程的等待 54 2 7 2Linux的进程控制 进程的创建在Linux系统初启时 只生成初始化进程 其他进程都是由当前进程通过系统调用fork 函数建立的 调用进程称为父进程 通过fork 建立的新进程为子进程 进程的执行可执行的文件名作为L1nux的exect 系统调用参数 该可执行文件可以是具有不同格式的二进制文件 也可以是一个文本的脚本文件 可执行文件中包含了可执行代码及数据 同时也包含了操作系统用来将映像正确装入内存并执行的信息 55 2 7 2Linux的进程控制 进程的等待当父进程用fork 创建子进程后 子进程通过exect 转去执行指定程序 而父进程可通过系统调用wait 等待子进程结束 wait 的参数指定了父进程等待的子进程 如果子进程尚未完成任务 则父进程挂起 一旦等到指定的于进程结束 父进程被唤醒 继续再做其他工作 进程的终止系统调用exit 来实现 exit 首先释放进程占用的大部分资源 如关闭打开的文件描述符 释放内存等 然后进程进入 僵死 状态 并返回一个状态参数 使等待子进程结束的父进程取得该参数后恢复执行 56 2 7 3Linux中进程的通信 消息队列管道机制 57 2 7 3Linux中进程的通信 消

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论