操作系统原理 Operating System Principles

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Edu.51cto.com 高校教师、高级项目经理 任铄 QQ : edu.51cto.com 第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程.
高级服务器设计和实现 1 —— 基础与进阶 余锋
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
3.2 进程的描述 进程的特征 1 .动态性 动态性是进程最基本的特征。 动态性是进程最基本的特征。 2. 并发性 这是指多个进程实体,同存于内存中,能在一段时 间内同时运行。并发性是进程的重要特征,同时也成 为 OS 的重要特征。引入进程的目的也是为了使该进 程的程序能和其它进程的程序并发执行。
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2.7 线程 2.7.1线程的其本概念.
实用操作系统概念 张惠娟 副教授 1.
Oracle数据库 Oracle 子程序.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
OpenMP简介和开发教程 广州创龙电子科技有限公司
存储系统.
实践演练 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第2章 进程的描述与控制 2.1 进程及其描述 2.2 进程基本状态及其相互转换 2.3 进程控制 2.4 线程 进程的引入
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
逆向工程-汇编语言
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
华南理工大学 陈虎 博士 多核处理器上的操作系统 华南理工大学 陈虎 博士
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
電子郵件簡介.
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
实验一 体验Nachos下的并发程序设计 陈毅东 2006年春.
进程概念.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
本节内容 模块隐藏 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
临界区问题的硬件指令解决方案 (Synchronization Hardware)
OpenStack vs CloudStack
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
本节内容 SEMAPHORE 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

操作系统原理 Operating System Principles 四川大学计算机学院 段 磊 leiduan@scu.edu.cn 2014.2

课程回顾 ★ 计算机的组织结构 OS与计算机 OS概念与目的 内容 操作系统与计算机 要点 操作系统的功能和特征 操作系统的发展 资源管理 IBM计算机与操作系统 2019/1/17 《计算机操作系统》- 第2章

课程回顾 使用操作系统的目的: 操作系统的职责是管理计算机系统的软件和硬件资源, 控制计算机的整个工作流程。 操作系统的概念:操作系统是计算机系统中一组控制和管理计算机硬件资源和软件资源,合理地对各类作业进行调度,以方便用户使用的程序的集合。 使用操作系统的目的: 有效的管理计算机资源 方便用户使用计算机资源 扩大计算机功能 构筑开放环境 2019/1/17 《计算机操作系统》- 第2章

课程回顾 ★ OS的功能 OS的特征 内容 操作系统与计算机 要点 操作系统的功能和特征 功能理解 ----本书的学习线索 特征理解 处理器 管理 存储器 管理 输入/输出 设备管理 文件 系统 用户接口 OS的功能 OS的特征 内容 操作系统与计算机 要点 ★ 操作系统的功能和特征 功能理解 ----本书的学习线索 特征理解 并发性:进程 共享性:资源 虚拟性:存储 异步性:进程 操作系统的发展 IBM计算机与操作系统 2019/1/17 《计算机操作系统》- 第2章

课程回顾 — 操作系统的功能 处理器管理: 存储器管理: 输入/输出设备管理: 文件系统: 用户接口: 进程和线程的描述与控制 处理器调度 进程或线程的同步与互斥 死锁的检测和预防 进程之间及线程之间的通信 存储器管理: 内存规划、分配及地址映射 内存保护 内存扩充 输入/输出设备管理: 输入/输出设备控制 缓冲管理 设备独立性 设备分配 虚拟设备 磁盘存储器管理 文件系统: 对文件结构进行组织和目录管理 提供文件的存取访问 实现文件的存储空间管理 实现文件的共享和保护 用户接口: 程序接口 命令接口 图形接口 2019/1/17 《计算机操作系统》- 第2章

课程回顾 — 操作系统的功能 核心功能 操作系统资源管理中的具体实例 存储设备管理的映像 操作系统提供资源的具体形式 用户接口 进程和资源管理 操作系统提供资源的具体形式 文件管理 存储设备管理的映像 核心功能 设备管理 操作系统资源管理中的具体实例 2019/1/17 《计算机操作系统》- 第2章

操作 系统 基本概念 进程管理 设备管理 作业管理 用户接口 存储管理 文件管理 操作系统定义 OS特征与分类 硬件运行环境 OS结构设计 研究OS的观点 多道程序设计 进程基本概念 同步互斥 进程调度 进程通信 进程死锁 设备分类 设备独立性 I/O软件组成 设备分配 虚设备技术 缓冲技术 通道技术 磁盘调度 文件基本概念 磁盘结构 文件目录 文件系统使用 文件系统安全 外存空间管理 作业基本概念 批处理系统作业管理 分时系统作业管理 存储体系 交换技术 虚拟存储技术 存储管理任务 段式存储管理 页式存储管理 段页式 2019/1/17 《计算机操作系统》- 第2章

进程作为资源分配和处理器调度的基本单位,是操作系统中最活跃的因素, 进程是操作系统并发性、共享性、虚拟性和异步性的体现。 第2章 进程的描述与控制 进程作为资源分配和处理器调度的基本单位,是操作系统中最活跃的因素, 进程是操作系统并发性、共享性、虚拟性和异步性的体现。

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

2.1 进程描述 内容 要点 进程的概念与特征 进程状态与转换 加入挂起功能 进程的描述 概念的理解 状态转换 2019/1/17 2.1 进程描述 内容 进程的概念与特征 进程状态与转换 加入挂起功能 进程的描述 要点 概念的理解 状态转换 2019/1/17 《计算机操作系统》- 第2章

2.1.1 进程概念和特征 进程作为资源分配和处理器调度的基本单位,是操作系统中最活跃的因素,也是操作系统并发性、共享性、虚拟性和异步性的体现。 为了避免进程切换使得系统付出的开销过大,现代操 作系统在进程的基础上又引入了“线程”的概念,用 线程代替进程成为处理器调度的基本单位。 进程的定义:进程是可并发执行的、具有独立功能的 程序在一定数据集合上的一次执行过程,是操作系统 进行资源分配和调度的基本单位。 2019/1/17 《计算机操作系统》- 第2章

补充 举例理解进程的概念 程序的顺序执行与并发执行 程序的相互制约方式 2019/1/17 《计算机操作系统》- 第2章

补充 举例理解进程的概念 做饭进程 洗衣进程 程序 程序 阅读菜谱 阅读洗衣机手册 输入 准备原料 准备衣服、洗衣粉 输入 运行 烹制菜肴 分时切换 运行 烹制菜肴 运行 设定参数,洗衣服 输出 饭菜 干净衣服 输出 做饭进程 洗衣进程 2019/1/17 《计算机操作系统》- 第2章

补充 程序的顺序执行与并发执行 顺序执行 特征 例1:输入I,计算C,打印P 例2: S1,S2,S3 顺序性 封闭性(资源独占) S1:a:=x+y S2:b:=a-5 S3:c:=b+1 I C P I C P S1 S2 S3 特征 顺序性 封闭性(资源独占) 可再现性(结果的无关性) 2019/1/17 《计算机操作系统》- 第2章

补充 程序的顺序执行与并发执行 并发执行 间接性制约 资源共享 相互制约 失去封闭性 等待 不可再现性 2019/1/17 《计算机操作系统》- 第2章

补充 2.1.3 程序中的并发执行及其特征 程序中并发执行的不可再现性 A:N:=N+1 B:Print(N),N:=0 2.1.3 程序中的并发执行及其特征 程序中并发执行的不可再现性 A:N:=N+1 B:Print(N),N:=0 A、B共享变量N (N=n) 例1:A→B n+1,n+1,0 例2:B→A n,0,1 例3:A在B的两个操作之间进行 n,n+1,0 2019/1/17 《计算机操作系统》- 第2章

补充 程序的并发执行 读集写集的概念 Bernstein条件 程序并发执行的判定 读集R(pi)={a1,a2,…,am}表示程序pi在执行期间所要参考的所有变量的集合。 写集W(pi)={b1,b2,…,bn}表示程序pi在执行期间要改变的所有变量的集合。 如c:=a-b和w:=c-1两条语句,其读、写集分别为: R(c:=a-b)={a,b} W(c:=a-b)={c} R(w:=c-1)={c} W(w:=c-1)={w} 2019/1/17 《计算机操作系统》- 第2章

补充 程序的并发执行 读集写集的概念 Bernstein条件 程序并发执行的判定 1966年Bernstein首先提出了p1、p2并发执行的条件,又 称为Bernstein条件: 两个过程如果有数据冲突(Data hazard),那么就没法并行执行。 若两个程序p1、p2能满足下述条件,他们便能并发执行, 且具有可再现性。 R(p1)∧W(p2)∨R(p2)∧W(p1)∨W(p1)∧W(p2)=φ 读集R(pi)={a1,a2,…,am}表示程序pi在执行期间所要参考的所有变量的集合。 写集W(pi)={b1,b2,…,bn}表示程序pi在执行期间要改变的所有变量的集合。 如c:=a-b和w:=c-1两条语句,其读、写集分别为: R(c:=a-b)={a,b} W(c:=a-b)={c} R(w:=c-1)={c} W(w:=c-1)={w} 2019/1/17 《计算机操作系统》- 第2章

补充 程序的相互制约方式 间接制约方式: 直接制约方式: 这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行。 直接制约方式: 这通常是在那些逻辑上相关的程序段之间发生的,一般是由于各种程序段要求共享信息引起的。 2019/1/17 《计算机操作系统》- 第2章

进程的理解 相同的程序可以多次运行,每次运行的环境可能不相同。这种多次运行可以发生在同一时间段中。 进程是程序运行过程 进程是以异步为主要特征并具有“活力”的过程 操作系统需要用数据结构描述进程 进程的运行轨迹是可以控制的 进程是资源分配的单位 进程与程序不同 操作系统通过进程的数据结构了解进程的详细信息,采用进程管理的方法实现对进程运行轨迹的控制。 虽然进程是程序运行,但是进程与程序却不能完全等同。程序是静态的,是以文件形式存放在磁盘上的代码序列。 进程是动态的,是不断向前推进的过程,进程具有各种状态并可以在状态之间转换。 进程的异步特征的表现形式是进程推进过程中的“走走停停”,某一进程被别的进程切换又切换其他的进程; 进程的每一步执行都是一个向前推进的过程,是具有“活力”的过程。 操作系统为了管理进程,对每个进程都有一个数据结构用来描述进程的详细信息,该数据结构根据进程的动态过程不断更新。 在以进程为基础的操作系统中,系统资源以进程为单位进行分配。系统资源包括各种硬件资源和软件资源,特别是处理器资源。 2019/1/17 《计算机操作系统》- 第2章

进程的特征 进程包含有描述进程信息的数据结构和运行在进程上的程序。操作系统用进程控制块描述和记录进程的动态变化过程。进程的数据结构至少包含进程控制块、程序块和数据块。 结构性 动态性 并发性 独立性 异步性 进程是程序在数据集合上的一次执行过程,具有生命周期,由创建而产生,由调度而运行,由结束而消亡,是一个动态推进的过程。 在同一段时间内,若干个进程可以共享一个处理器。进程的并发性能够改进系统的资源利用率,提高计算机的效率。 在操作系统管理上,进程是一个独立的资源分配单位,进程可以在创建时获取资源,也可以在运行过程中获取资源。操作系统为进程分配各种资源,如处理器和内存地址空间等。 在计算机环境中,处理器的数量总是小于进程的数量,多个进程被强制分享同一个处理器,进程以交替方式被处理器执行。进程的这种执行方式为异步性。 2019/1/17 《计算机操作系统》- 第2章

2.1.2 进程的基本状态及转换 操作系统通过控制进程状态达到控制计算机工作过程的目的。 进程的状态不是固定不变的,而是不断转换的。进程有时占有处理器,有时等待处理器,有时等待I/O操作,直至最终完成。 进程的每一个状态都是进程向前推进的整个生命周期中的关键点。 进程的三个基本状态:就绪状态、运行状态、阻塞状态。 2019/1/17 《计算机操作系统》- 第2章

进程的基本状态及转换 就绪状态: 该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。 2019/1/17 《计算机操作系统》- 第2章

进程的基本状态及转换 运行状态: 进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。 2019/1/17 《计算机操作系统》- 第2章

进程的基本状态及转换 阻塞状态: 进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。 2019/1/17 《计算机操作系统》- 第2章

进程的基本状态及转换 状态变化: 就绪状态 → 执行状态 执行状态 → 就绪状态 执行状态 → 阻塞状态 阻塞状态 → 就绪状态 2019/1/17 《计算机操作系统》- 第2章

具有创建和结束状态的进程 新建状态是指操作系统创建进程时,进程所处的状态。进程新建成功后即转入就绪状态,在就绪进程队列中排队。 操作系统创建进程需要为进程分配资源。因此,操作系统将根据系统的性能和内存容量的情况决定是否创建新的进程。如果系统性能较差或内存容量受到限制,不能为新进程分配资源,则操作系统会发出创建新进程失败的响应或将创建新进程的工作推迟。 进程达到了结束点或进程出现了严重的错误时,会被操作系统终止或被其他有终止权的进程终止。 进入终止状态的进程不再被执行,等待操作系统完成进程终止处理。当操作系统完成进程终止处理后,操作系统会删除进程,收回进程所占用的资源。 2019/1/17 《计算机操作系统》- 第2章

进程的状态转换 状态变化: 就绪状态 → 执行状态 执行状态 → 就绪状态 执行状态 → 阻塞状态 阻塞状态 → 就绪状态 思考:加入新建状态和终止状态后的转换图 2019/1/17 《计算机操作系统》- 第2章

进程的状态转换 2019/1/17 《计算机操作系统》- 第2章

2.1.3 具有挂起功能的进程状态和转换 进程挂起及挂起的原因 终端用户可以直接操作自己的程序。当程序员需要调试、检查和修改自己的程序时,可以要求挂起与程序相对应的进程,暂停进程的推进。 进程挂起及挂起的原因 系统资源的需要 调节竞争或消除故障的需要 终端用户的需要 父进程的需要 调节进程的需要 某些定期执行的进程,如系统监控进程、日志进程等,在执行时间未到而需要等待时,可以将进程挂起,对换到外存,从而减轻内存负担。当执行时间到时,再将这些进程激活换入到内存。 父进程对自己的子进程实施控制、修改和检查时,需要挂起自己的子进程,暂停子进程的推进。 当系统中所有的进程均处于阻塞状态时,没有就绪进程,处理器处于空闲。如果这时内存空间已经被进程占满,不能装入更多的进程,需要将内存中处于阻塞状态的进程挂起,对换到外存上,让出内存空间接纳新创建的进程。 操作系统在检查进程运行中竞争资源的情况时,或在系统出现故障使某些功能受到破坏时,为了解决进程的资源竞争或消除系统故障,操作系统需要挂起某些对资源竞争的进程或怀疑引起系统故障的进程,将进程对换到外存。 2019/1/17 《计算机操作系统》- 第2章

具有挂起功能的进程状态和转换 进程挂起后状态的变化 活动状态与静止状态 活动就绪 → 静止就绪 活动阻塞 → 静止阻塞 静止就绪 → 活动就绪 静止阻塞 → 活动阻塞 2019/1/17 《计算机操作系统》- 第2章

当一个进程被创建的时候,处于就绪状态,严格地说是静止就绪状态,等到被激活,该进程就处于活动就绪状态,如果时间片轮到该进程,那么该进程就执行; 活动就绪与静止就绪 当一个进程被创建的时候,处于就绪状态,严格地说是静止就绪状态,等到被激活,该进程就处于活动就绪状态,如果时间片轮到该进程,那么该进程就执行; 执行期间,如果时间片过了,那么该进程退回到活动就绪状态,如果该进程被挂起,就回到静止就绪状态。 2019/1/17 《计算机操作系统》- 第2章

2019/1/17 《计算机操作系统》- 第2章

2019/1/17 《计算机操作系统》- 第2章

2019/1/17 《计算机操作系统》- 第2章

2019/1/17 《计算机操作系统》- 第2章

2.1.4 进程的描述:PCB 进程控制块PCB 内容: 进程标识符: 处理机状态 进程调度信息 进程控制信息 理解:PCB的各部分内容含义 Process Control Block 对进程本质属性的描述,是操作系统管理进程所需要的基本信息。 记录操作系统用于描述进程状况和控制进程运行所需要的基本信息。 每个进程都有一个进程控制块,进程是动态变化的,进程控制块中的信息也是变化的,操作系统通过读或写进程控制块中的信息达到了解进程,记录进程变化的目的。 内容: 进程标识符: 内部标识符 外部标识符 处理机状态 进程调度信息 进程控制信息 理解:PCB的各部分内容含义 2019/1/17 《计算机操作系统》- 第2章

进程控制块 PCB基本内容 组织方式 进程标志符 进程调度信息 链接方式 索引方式 进程控制信息 2019/1/17 《计算机操作系统》- 第2章

进程控制块—链接方式 链接方式 ... 4 3 8 7 9 1 执行指针 PCB 1 PCB 2 PCB 3 就绪队列指针 PCB 4 就绪队列指针 PCB 4 8 PCB 5 PCB 6 7 阻塞队列指针 PCB 7 9 PCB 8 PCB 9 1 空闲队列指针 ... 链接方式 2019/1/17 《计算机操作系统》- 第2章

2.1.5 进程控制块 就绪队列为:进程2→进程5→进程9→进程12。 第1个阻塞队列为:进程3→进程7→进程8→进程13→…… 2.1.5 进程控制块 2019/1/17 《计算机操作系统》- 第2章

进程控制块—链接方式 优点 直观,体现了进程的本身特性,如等待时间的长短、优先级的高低、需要处理时间的长短,为进程调度算法的实施提供了方便。 缺点 以链接方式组织进程控制块的主要缺点是如果进程状态发生变化,则链接队列需要作相应的调整,进程控制块中的首部和尾部指针需要改变。 2019/1/17 《计算机操作系统》- 第2章

进程控制块—索引方式 索引方式 参考教材P37,图2.5 2019/1/17 《计算机操作系统》- 第2章

进程控制块—索引方式 优点 缺点 通过索引表可以快速得到进程控制块地址,不需要像链接方式一样,从链首到链尾查找; 如果进程状态变化,不需要修改进程控制块的链接指针,只需要增加或删除索引表中的记录。 缺点 索引表本身需占用内存空间; 搜索索引表需要时间。 2019/1/17 《计算机操作系统》- 第2章

进程的内存映像 进程的内存映像是进程在内存中的组成 包括如下内容: 进程程序块 进程数据块 系统或用户堆栈 进程控制块 进程程序块为执行的程序代码,规定了进程一次运行需要完成的功能。 进程运行时的全局变量、局部变量和常量等的存储区以及开辟的工作区。 每个进程捆绑的系统/用户堆栈,用来解决过程调用或系统调用时的信息存储和参数传递。 进程的标志信息、处理机状态信息、进程调度信息、进程控制信息。 2019/1/17 《计算机操作系统》- 第2章

进程的上下文 进程的物理实体和支持进程运行的环境合称为进程上下文(process context)。 用户级上下文(user-level context) 系统级上下文(system-level context) 寄存器上下文(register context)。 由进程的正文区、数据区、用户栈区和共享存储区组成,在编译目标文件时生成,占据进程的虚拟地址空间。 由进程控制块、内存管理信息、进程环境块和系统堆栈等组成的进程地址空间。 由程序状态寄存器、各类控制寄存器、地址寄存器、通用寄存器和用户栈指针等组成。 2019/1/17 《计算机操作系统》- 第2章

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

2.2 进程的控制 内容 要点 进程的创建 进程的结束 进程的阻塞与唤醒 进程的挂起与激活 执行的模式 OS的运行 2.2 进程的控制 内容 进程的创建 进程的结束 进程的阻塞与唤醒 进程的挂起与激活 执行的模式 OS的运行 要点 结合状态转换图理解进程控制 2019/1/17 《计算机操作系统》- 第2章

进程的创建 创建步骤 命名进程:为进程设置进程标志符; 从PCB集合中为新进程申请一个空白PCB; 确定进程的优先级; 为进程的程序段、数据段和用户栈分配内存空间;如果进程中需要共享某个已在内存的程序段,则必须建立共享程序段的链接指针; 为进程分配除内存外的其他各种资源; 初始化PCB,将进程的初始化信息写入PCB; 如果就绪队列能够接纳新创建的进程,则将新进程插入到就绪队列; 通知OS的其他管理模块,如记账程序、性能监控程序等。 2019/1/17 《计算机操作系统》- 第2章

进程的创建 创建原因 操作系统初始化 提供用户服务 分时系统用户登录 用户请求系统创建新进程 执行创建新进程的系统调用 正在运行的进程由于程序自身需要可以用系统调用创建新进程。一个正在运行的进程,如果需要处理与其相关却又相互独立的事件,可以用系统调用来创建一个新的进程来完成这样的事件。如UNIX操作系统中父进程用系统调用创建子进程,子进程协同父进程完成同一任务。 当操作系统启动时,通常会创建若干进程,特别是一些常驻系统的进程。这些进程有的运行在系统的前台,供用户交互;有的运行在后台,完成某些专门的功能。如网络服务器中的电子邮件服务进程,如果没有邮件需要处理,则进入休眠状态;如果邮件到来,则该进程被唤醒,处理接收到的邮件。 创建原因 操作系统初始化 提供用户服务 分时系统用户登录 用户请求系统创建新进程 执行创建新进程的系统调用 批处理作业的初始化和调度 当运行中的程序需要某种服务时,系统专门创建一个进程来提供所需要的服务,如打印文件、屏幕输出等。 当用户在终端键入登录命令后,系统将为该终端用户建立一个进程。 用户提交批处理作业,当操作系统能够提供资源时,作业调度程序按照一定的算法,从批处理作业清单中调度某个作业并装入内存,为作业分配必要的资源,创建作业的进程。 在交互式系统中,用户用键盘键入命令或用鼠标点击,则可以创建新进程。如在Windows操作系统中,用户可以用键盘运行多个程序,或用鼠标打开多个窗口。每个程序或每个窗口对应一个新的进程。 2019/1/17 《计算机操作系统》- 第2章

进程的创建 进程图 生成进程称父进程(Parent Process),被生成进程称子进程(Child Process)、即一个父进程可以创建子进程,从而形成树形结构。 关系 子进程可以继承父进程的所有资源 子进程撤销时,向父进程归还资源 父进程撤销时,所有子进程也被撤销 2019/1/17 《计算机操作系统》- 第2章

进程的结束 终止原因 进程正常结束 操作异常退出 时间指标超限引起的进程异常结束 多个进程之间竞争资源 内存的使用出错 父进程结束 操作系统终止 第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态; 第二步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。 第三步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。 第四步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进程为执行态,要进行进程调度)。 第五步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。 2019/1/17 《计算机操作系统》- 第2章

进程的阻塞和唤醒 引发事件 进程阻塞过程:block 进程唤醒过程:wakeup 请求系统服务 启动某种操作 新数据尚未到达 无新工作可做 停止进程在处理器中执行,保存现场信息到进程的进程控制块中。 修改进程控制块中的进程状态等相关内容,并将进程控制块加入到相应阻塞进程的进程控制块队列中。 进程调度程序转入其他进程调度。 引发事件 请求系统服务 启动某种操作 新数据尚未到达 无新工作可做 进程阻塞过程:block 进程唤醒过程:wakeup 当等待的事件到来或等待的输入/输出操作完成时,会产生一个中断,激活操作系统,阻塞的进程被唤醒,其进程状态由阻塞转换为就绪。 唤醒进程的主要工作是修改进程控制块中的状态,将进程控制块转入到就绪进程的进程控制块队列。 2019/1/17 《计算机操作系统》- 第2章

进程的挂起和激活 处于阻塞状态、就绪状态和运行状态的进程都可以被挂起,根据进程挂起前的状态决定挂起后的状态。 如果进程被挂起,进程的进程控制块中的信息要修改,进程上下文被放到外存。 如果进程挂起的时间到或者内存资源充足时,系统或有关进程,特别是进程同步中的原语操作,会激活被挂起的进程。 激活进程的主要工作是将进程上下文从外存调入内存,修改进程控制块信息并调入内存,修改进程控制块中的进程状态,并按照进程状态将进程控制块排入到相应的进程队列。 2019/1/17 《计算机操作系统》- 第2章

执行的模式 OS功能回顾 内核是OS核心功能的集合,包括:进程管理、存储器管理、设备管理、支持功能 模式划分: 与操作系统有关的模式:较高特权模式 与用户程序有关的模式:较低特权模式 与操作系统有关的模式包括: 系统模式(system mode) 控制模式(control mode) 内核模式(kernal mode) 2019/1/17 《计算机操作系统》- 第2章

OS内核的运行 在进程以外运行 在用户进程中运行 作为独立进程运行 易于实现OS的模块化,例如在多处理器或多计算机环境下,能够使一些 OS的服务转移到其它的处理器中,提高系统性能。 早期OS中,系统内核在进程以外运行 OS有自己的内存区和系统栈 进程的概念只适合用户程序,OS代码在特权模式下作为一个独立的实体运行 小型或微型计算机的OS中将所有的OS软件作为用户进程的内容执行 OS作为供用户程序调用的功能集合,在用户进程环境下执行。 优点是不会带来两个进程切换的开销。 2019/1/17 《计算机操作系统》- 第2章

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

2.3 前趋图 内容 要点 图论知识 前趋图的构成与表示 前趋图的绘制 前趋图的绘制与含义 程序的执行次序 2019/1/17 2.3 前趋图 内容 图论知识 前趋图的构成与表示 前趋图的绘制 要点 前趋图的绘制与含义 程序的执行次序 2019/1/17 《计算机操作系统》- 第2章

前趋图 描述多个进程之间的关系 无循环方向图 节点用于表示一个进程或一段程序 节点之间用一个有方向的线段相连 方向表示所连接的节点之间的前趋和后继关系 被指向的节点为后继节点,离开箭头的节点是前趋节点。 2019/1/17 《计算机操作系统》- 第2章

前趋图 →={(Pi, Pj)|Pi must complete before Pj may start}, 如果(Pi, Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。在前趋图中,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)。 每个结点还具有一个权重(Weight),用于表示该结点所含有的程序量或结点的执行时间。 2019/1/17 《计算机操作系统》- 第2章

前趋图 G={P, → } P={P1, P2, P3, P4, P5, P6, P7, P8, P9} →={ (P1, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5), (P4, P6), (P4, P7), (P5, P8), (P6, P8), (P7, P9), (P8, P9)} 请根据前趋图写出偏序关系节点的集合。 2019/1/17 《计算机操作系统》- 第2章

前趋图 对于下述五条语句的程序段: S1: a=5-x S2: b:=a*x S3: c=4*x S4: d=b+c S5: e=d+3 请绘制前趋图; 这是顺序执行还是并发执行? 2019/1/17 《计算机操作系统》- 第2章

前趋图 对于下述四条语句的程序段: S1:a:=x+2 S2:b:=y+4 S3:c:=a+b S4:d:=c+b 请绘制前趋图; 这是顺序执行还是并发执行? 2019/1/17 《计算机操作系统》- 第2章

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

2.4.1 UNIX操作系统的进程状态 不同的操作系统,根据实际描述进程的需要可以定义进程的各种状态。 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 进程的初始状态,进程未进入就绪状态之前的情形 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 进程已具备执行条件,等待系统调度程序调度进程执行 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 为了节约内存,将处于内存就绪状态的进程换出到外存,相当于进程的挂起就绪状态。 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 处于执行状态的进程,此时进程执行的是操作系统核心程序 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 处于执行状态的进程,此时执行的是用户程序 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 与进程阻塞状态对应,进程在内存中等待输入/输出操作的完成或等待事件的发生 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 相当于进程的挂起阻塞状态。将处于睡眠状态的进程换出到外存,当进程被唤醒后处于换出就绪状态 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 当用户进程完成系统调用从核心态返回用户态时,被另一个进程抢占。处于被抢占状态的进程与处于内存就绪状态的进程相同,等待再次被调度 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统中,进程的状态及状态转换关系 也称为进程结束状态。处于该状态的进程已不存在,但会在其父进程中留下进程的结束码及计时统计信息等 2019/1/17 《计算机操作系统》- 第2章

2.4.2 UNIX操作系统进程的描述和控制 对UNIX操作系统进程描述的数据结构为操作系统提供了管理和调度进程的信息,这些数据结构包括: 进程控制块 用户级上下文 系统级上下文 寄存器上下文 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统的进程控制 进程创建 在UNIX操作系统中用系统调用fork创建新进程。系统调用fork运行在内核模式,其步骤为: 为新进程在进程表中分配一个表项(构建进程控制块); 为新进程分配一个唯一的进程标志符pid; 拷贝父进程的进程映像创建一个新进程,新进程获得其父进程地址空间的一份拷贝; 将新进程的进程状态等信息写入进程表中相应的进程表项; 增加与该进程相关联的文件表和索引节点表的引用数,并将创建的新进程的进程标志返回给父进程,收到父进程返回的信号则标志新进程创建完毕。 2019/1/17 《计算机操作系统》- 第2章

在UNIX操作系统中还可以用系统调用exec创建子进程 进程创建 在UNIX操作系统中还可以用系统调用exec创建子进程 与系统调用fork创建子进程不同,exec创建的子进程会完全覆盖父进程的上下文,父进程在子进程创建成功后自动消失,不会出现父进程与子进程并发的情况。 2019/1/17 《计算机操作系统》- 第2章

UNIX操作系统的进程控制 终止进程 进程任务完成后,为了收回进程所占用的系统资源和减少父进程的负担,用系统调用exit来实现进程的自我终止: 关闭进程的软中断信号; 如果进程是与控制终端相连的进程组组长,则向本组进程发出挂起信号; 关闭所有打开的文件; 释放进程的上下文、当前目录; 记录进程运行时的统计信息; 进程状态转换为进入僵死状态; 将未结束的子进程交给系统进程收容,使这些子进程成为系统进程的合法子进程; 保留进程表项,通知并等待父进程; 父进程发回信息,释放进程所占用的资源。 2019/1/17 《计算机操作系统》- 第2章

wait系统调用 在子进程和父进程的终止关系上系统调用wait起着非常特殊的作用 当父进程要自我终止时,系统调用wait将自己挂起。 如果子进程不能结束,则父进程等待子进程终止,接收子进程的返回状态和返回参数。 2019/1/17 《计算机操作系统》- 第2章

2.4.3 UNIX操作系统的多级进程关系 在进程之间的关系上,UNIX按照多层次结构方式组织进程。 一个进程可以再创建新进程,构成父进程和子进程之间的关系。创建的新进程为子进程,原来的进程为父进程。 每个子进程只有一个父进程,每个父进程可以创建多个子进程。 UNIX操作系统的所有 进程都由这种父子进程 关系延伸而来,形成了 一个多级进程结构 。 2019/1/17 《计算机操作系统》- 第2章

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

进程作为资源分配和调度的单位给并发环境下的程序设计带来了如下问题: 2.5.1 线程及其特征 进程作为资源分配和调度的单位给并发环境下的程序设计带来了如下问题: 进程切换需要系统付出的开销大 进程的创建、撤销和进程切换需要系统付出代价 进程通信的代价高 进程通信需要通信进程之间或通信进程与操作系统之间的信息传递,代价高 进程的并发度不高 进程切换和通信都需要付出较大的系统开销,降低了系统的并发度 2019/1/17 《计算机操作系统》- 第2章

线程 在并行计算和分布式环境下,进程之间大量的切换和通信,不但降低了并发度,还降低了并行度 。 在进程的基础上需要新的并发机制,将资源分配单位和调度单位分离开来 进程只作为资源分配的单位,而用新的概念—线程,作为调度的基本单位。 引入线程后,系统的并发程度更高。 线程是操作系统进程中能够独立执行的实体,是进程的组成部分,是处理器调度的基本单位。在一个进程中允许多个并发执行的线程,同一进程的线程共享进程获得的内存空间和资源,但不独立拥有进程资源。 2019/1/17 《计算机操作系统》- 第2章

线程 在并行计算和分布式环境下,进程之间大量的切换和通信,不但降低了并发度,还降低了并行度 。 在进程的基础上需要新的并发机制,将资源分配单位和调度单位分离开来 进程只作为资源分配的单位,而用新的概念—线程,作为调度的基本单位。 引入线程后,系统的并发程度更高。 线程是操作系统进程中能够独立执行的实体,是进程的组成部分,是处理器调度的基本单位。在一个进程中允许多个并发执行的线程,同一进程的线程共享进程获得的内存空间和资源,但不独立拥有进程资源。 2019/1/17 《计算机操作系统》- 第2章

线程的特征 并发性 共享性 动态性 结构性 同一进程的多个线程可在一个或多个处理器上并发或并行执行。 同一进程的所有线程共享但不拥有进程的所有资源和状态,且驻留在进程的同一个地址空间,可以访问相同的数据,线程之间的通信和同步的实现都非常方便。 动态性 线程因创建而产生,因撤销而终结。在支持线程的系统中,当每个进程被创建时,系统至少为该进程创建一个线程。当还需要线程时,由线程可以再创建新的线程。 结构性 线程是操作系统中的基本调度和分派单位,线程具有唯一的标志符和线程控制块。 2019/1/17 《计算机操作系统》- 第2章

线程vs进程 都具有并发性、异步性、结构性 不同的是: 进程具有独立性,是独立的资源分配和调度单位; 线程具有共享性,所有属于同一进程的线程共享进程的资源。 2019/1/17 《计算机操作系统》- 第2章

线程vs进程 进程含有程序运行的管理信息 线程中包含有程序的执行信息 一个进程中可以只有一个线程,该线程可以完全使用进程的所有资源 指令代码、全局数据和I/O状态数据等 线程中包含有程序的执行信息 CPU寄存器信息、用户栈和内核栈信息、局部变量、过程调用参数、返回值等各线程的私有部分的信息 一个进程中可以只有一个线程,该线程可以完全使用进程的所有资源 一个进程中可以有多个线程,多个线程共享进程的所有资源 2019/1/17 《计算机操作系统》- 第2章

同一进程的多个线程共享进程的资源和地址空间,这是线程的一个非常突出的优势,也是很多应用程序采用线程实现的主要原因。 线程的优势 同一进程的多个线程共享进程的资源和地址空间,这是线程的一个非常突出的优势,也是很多应用程序采用线程实现的主要原因。 多线程技术主要用于多处理器系统下,特别是近年来多核技术的出现,在每个独立的处理器核上独立执行线程的代码流,符合现代操作系统的思想,使得系统的性能大大提高。 2019/1/17 《计算机操作系统》- 第2章

线程与进程一样,也具有生命周期,在生命周期中也有不同的状态。 2.5.2 线程的状态与控制 线程与进程一样,也具有生命周期,在生命周期中也有不同的状态。 由于线程不是资源的拥有单位,因此,与进程挂起相关的状态,对线程不具有意义。挂起操作引起的状态变化是进程级状态变化,不作为线程状态变化。 线程的状态有:新建状态、就绪状态、运行状态、阻塞状态、结束状态。 2019/1/17 《计算机操作系统》- 第2章

线程状态及其转换 只要有线程申请系统资源或线程之间相互通信,或由于其他事件而阻塞,相应线程的进程也进入阻塞状态,进程的所有线程都进入阻塞状态,而不管是否有线程会处于就绪状态; 只要有线程申请系统资源而阻塞,不会将相应线程的进程阻塞。进程的所有线程,只要有线程处于就绪状态,仍有机会被调度 2019/1/17 《计算机操作系统》- 第2章

同一进程的多个线程并发执行,由于共享进程的所有资源,线程切换、创建、通信的效率比单独进程之间通信的效率更高。系统中线程的并发程度比进程更高。 同一进程的线程vs不同进程的线程 同一进程的多个线程并发执行,由于共享进程的所有资源,线程切换、创建、通信的效率比单独进程之间通信的效率更高。系统中线程的并发程度比进程更高。 属于不同进程中的多个线程并发执行,线程之间不共享资源,在线程切换、创建、相互通信、资源分配上,和独立进程之间一样,没有多大的优势。 2019/1/17 《计算机操作系统》- 第2章

线程库提供了一系列的操作原语和应用程序接口来支持多线程的运行,包括: 2.5.3 线程库 线程库实现对线程的控制。 线程库提供了一系列的操作原语和应用程序接口来支持多线程的运行,包括: 线程创建、线程撤销、线程激活、线程结束、线程之间的通信、线程之间的同步与互斥等。 线程库分为 运行在用户空间的线程库 运行在内核空间的线程库 Java线程库 2019/1/17 《计算机操作系统》- 第2章

运行在用户空间的线程库 运行在用户空间中的线程库,为应用程序的开发和运行提供支撑环境,由一般的单线程管理,与操作系统内核隔离。 优点: 在内核之外,不使用内核资源,节省了内核资源; 运行时不需要用户态与核心态之间的切换,运行开销小,效率高; 运行时与操作系统内核没有关系,所选线程调度算法与操作系统的调度算法无关,能够运行在任何操作系统上。 缺点: 当一个线程执行系统调用时,不仅该线程本身被阻塞,而且该线程所在进程的所有线程都被阻塞,降低了系统的效率; 多处理器环境下,如果每个线程分别被指定在一个特定处理器上,一个线程阻塞会阻塞所有线程,多个处理器空闲,效率降低。 2019/1/17 《计算机操作系统》- 第2章

运行在内核空间的线程库 运行在OS内核空间中的线程库,由内核管理。在内核中既要保存进程的数据结构,又要建立、保存和维护线程的数据结构以及每个线程的入口。 优点: 能够调度同一进程的多个线程在不同处理器中并发运行,在多处理器环境下,充分发挥了多个处理器并行工作的能力; 如果某一线程阻塞,内核能够调度同一进程的其它线程占有处理器,而且能够调度其他进程中的线程占用处理器,提高了效率。 缺点:如果线程的控制权从一个线程传递到另一个线程,线程需要从用户态到核心态,再从核心态到用户态进行模式切换,系统开销较大。 2019/1/17 《计算机操作系统》- 第2章

Java线程库中的线程控制有创建线程、阻塞线程、唤醒线程、停止线程等API函数调用。通过各种线程控制函数的调用,实现线程各种状态之间的转换。 Java线程库是一种用于高级语言的线程库,该线程库提供了线程的创建和管理。所有的Java程序至少可以由一个单线程构成。Java线程库提供给程序开发者在一个程序中创建和操作更多线程的机会。 Java线程库中的线程控制有创建线程、阻塞线程、唤醒线程、停止线程等API函数调用。通过各种线程控制函数的调用,实现线程各种状态之间的转换。 2019/1/17 《计算机操作系统》- 第2章

2.5.4 线程的实现 线程的三种实现方式: 在操作系统内核实现的内核级线程(Kernel Level Thread,KLT),如Windows 2000/XP,OS/2等; 在用户空间实现的用户级线程(User Level Thread,ULT),如Java的线程库等; 同时支持两种线程的混合式线程实现,如Solaris系统。 2019/1/17 《计算机操作系统》- 第2章

内核级线程实现 在完全内核级线程环境中,线程管理的全部工作由操作系统内核在内核空间实现。内核为应用程序开发者提供了一个应用程序设计接口API 主要优点: 在多处理器上,内核能够同时调度同一进程的多个线程并行执行; 如果一个线程阻塞,内核能调度同一进程的其它线程占有处理器; 数据结构和堆栈均较小,内核级线程的切换快,效率高; 内核级线程可用多线程技术实现,提高了系统的并发性和执行速度。 主要缺点:应用程序的线程运行在用户空间,而线程调度和管理在内核空间,从一个线程传送到另一个线程时,要经过用户态到核心态,再从内核态到用户态的模式切换,系统开销较大。 2019/1/17 《计算机操作系统》- 第2章

用户级线程实现 线程管理由应用程序在用户空间实现,内核不知道线程的存在。用户级线程由用户空间运行的用户级线程库实现,任何应用程序通过线程库进行程序设计。用户级线程库是线程运行的支撑环境。 优点: 线程切换不需要内核特权方式。 用户级线程根据应用程序的需要选择进程调度算法,而线程库的线程调度算法与进程调度算法无关。 内核在支持用户级线程上不需要任何改变,用户级线程能够运行在任何操作系统上。 主要缺点:如果一个线程被阻塞,则该线程所在进程的所有线程都将被阻塞,浪费了处理器资源 。 2019/1/17 《计算机操作系统》- 第2章

混合式线程的实现 不但内核支持内核级线程的建立、调度和管理,而且允许用户应用程序建立、调度和管理用户级线程 同一个进程的多个线程可以同时在不同处理器上并行执行 一个应用程序的多个用户级线程可以被映射成多个内核级线程 兼备内核级线程实现和用户级线程实现的优点 2019/1/17 《计算机操作系统》- 第2章

在同时支持内核级线程和用户级线程的系统中,用户级线程与内核级线程之间的关系可以有三种模型表示: 2.5.5 线程模型 在同时支持内核级线程和用户级线程的系统中,用户级线程与内核级线程之间的关系可以有三种模型表示: 一对一模型 多对一模型 多对多模型 2019/1/17 《计算机操作系统》- 第2章

一对一模型 每创建一个用户级线程,需要创建一个内核级线程与之对应。 如果一个线程阻塞,系统允许调度另一个线程运行。因此,多处理器系统可以实现多个线程并行执行,系统效率较高。 缺点是每创建一个用户 级线程,则需要创建一 个内核级线程,系统线 程数目较多,开销较大 2019/1/17 《计算机操作系统》- 第2章

多对一模型 多个用户级线程属于一个进程,线程的管理和调度也在用户空间完成,只有当用户线程需要访问内核时,才将其映射到一个内核线程上,但每次只允许一个线程映射。 该模型的优点是线程管 理等都在用户空间完成, 节约系统资源。缺点是 如果一个线程阻塞,属 于同一个进程的所有线 程都阻塞,系统效率低 2019/1/17 《计算机操作系统》- 第2章

多个用户级线程映射到多个内核级线程。为了节约系统资源,与用户级线程对应的内核级线程数不会超过用户级线程数。 多对多模型 多个用户级线程映射到多个内核级线程。为了节约系统资源,与用户级线程对应的内核级线程数不会超过用户级线程数。 一个应用程序在多处理 器系统中分配内核级线 程数可以多于单处理器 系统。 2019/1/17 《计算机操作系统》- 第2章

三种模式的比较 多对一模型:虽然允许用户创建尽可能多的线程,但内核一次只允许调度一个线程,所以,不能实现真正并发。 一对一模型:虽然允许并发的程度很大,但应用程序的开发者却需要十分小心,这是因为一个用户级线程对应一个内核级线程,而系统不允许创建太多的线程。 多对多模型:既可创建较多的用户级线程,又能够使与用户级线程对应的内核级线程有很高的并发性;当一个线程阻塞时,OS内核能够调度另一个线程运行。兼备了多对一和一对一模型的优点。 Solaris、Digital UNIX和IRIX都支持多对多模型 2019/1/17 《计算机操作系统》- 第2章

本章目录 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.1 进程描述 2.2 进程的控制 2.3 前趋图 2.4 Unix OS的进程描述与控制 2.5 线程的描述与控制 2.6 Solaris OS线程 2019/1/17 《计算机操作系统》- 第2章

2.6.1 Solaris系统中的进程与线程 Solaris是SUN开发的UNIX操作系统。 Solaris与普通UNIX最大不同是除支持进程外,还支持线程。 在Solaris中,除传统进程外,还存在轻量级进程(Light Weight Process,LWP),一个轻量级进程表示一个或多个用户级线程映射到一个内核级线程。轻量级进程与内核级线程对应,由内核独立调度,可以在多个处理器上并行执行。 Solaris系统支持的线程实现为用户级和内核级两种方式。 2019/1/17 《计算机操作系统》- 第2章

进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 2019/1/17 《计算机操作系统》- 第2章

多个用户级线程与多个轻量进程的对应;一个用户级线程与一个轻量进程对应 进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 多个用户级线程与多个轻量进程的对应;一个用户级线程与一个轻量进程对应 2019/1/17 《计算机操作系统》- 第2章

进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 没有并发线程的传统单线程进程 2019/1/17 《计算机操作系统》- 第2章

进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 线程与轻量进程一对一捆绑,内核进程并行 2019/1/17 《计算机操作系统》- 第2章

进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 多个用户级线程映射到一个轻量进程上 2019/1/17 《计算机操作系统》- 第2章

进程、轻量进程、用户级线程、内核级线程 轻量进程处于用户空间与内核空间之间,每个轻量进程都与一个内核级线程绑定,所有的用户级线程通过轻量进程与内核级线程连接。 多个用户级线程映射到多个轻量进程上 2019/1/17 《计算机操作系统》- 第2章

轻量进程 每个轻量进程需要连接到内核级线程上,才能做到每个用户级线程通过轻量进程与内核级线程连接,实现用户级线程与内核之间的通信。 多个用户级线程可以共用一个轻量进程,但只有连接到当前轻量进程的用户级线程才能与内核通信,其余的用户级线程将被阻塞,等待连接轻量进程。 有了轻量进程后,一个轻量进程在不同用户级线程之间切换时,只是数据结构的切换,时间开销远小于内核级线程之间的切换时间开销。 2019/1/17 《计算机操作系统》- 第2章

2.6.2 Solaris系统中的线程状态 一般的线程状态有创建、就绪、阻塞、运行和结束。在Solaris系统中,由于引入了轻量进程,线程状态与一般线程状态有一定的区别。 用户级线程的执行由线程库管理。如果用户级线程没有绑定到一个指定的轻量进程上,则多个用户级线程可以共享轻量进程,用户级线程可处于的状态为:可运行、活跃、睡眠和停止。 轻量进程可处于的状态为:可运行态、运行态、阻塞态、停止态。 2019/1/17 《计算机操作系统》- 第2章

Solaris系统线程状态及转换 2019/1/17 《计算机操作系统》- 第2章

Solaris系统轻量进程状态及转换 2019/1/17 《计算机操作系统》- 第2章

作业 复习: 练习: 作业通过发送电子邮件附件形式提交到助教老师邮箱: 进程、线程的概念 进程的状态转换 前趋图 2.18 ~ 2.21 谢昭阳 1183135172@qq.com (周二) 赵 静 1215052241@qq.com (周四) 作业文件名命名要求: OS_学号_姓名_n.doc (n为当章节序号) 如一个合法文件名: OS_95002_张三_2.doc 2019/1/17 《计算机操作系统》- 第2章

Any Question? Thank you ! 2019/1/17 《计算机操作系统》- 第2章