© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

我国国有银行 资本构成及资本充足率变化 小组成员:金融 尹佳裕 王淼 刘钰 金融 吴昱.
1 認識創業之財務 ( 資金 ) 及稅務問題 講師 : 蘇炳章 日期 : 92 年 8 月 12 日.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
职业指导服务系统 欢迎了解职业指导服务系统!
PC DIY達人培訓班 主辦單位:東海高中資訊科 報告人:李宏傑.
第 20 章 檢視系統資訊.
高齡自主學習團體終身學習試辦計畫經費核銷
第6章 计算机网络基础 信息技术基础.
第十章 UNIX系统内核结构 10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理
龙芯多媒体电脑教室培训 龙梦极域电子教室 江苏龙芯梦兰科技股份有限公司.
台北縣98年三鶯區語文研習 --建國國小 修辭與標點符號 福和國中廖惠貞
保典配精英 宝剑配英雄 对职业代理人而言,保费固然重要,但更重要的是通过专业金融服务获得源源不断的客户,轻松愉快的长期签单。
农业银行网上签约流程 宁夏金溢投资 内部资料 1.
廉政會報專題報告 農地重劃工程 施工常見缺失 報告:吳東霖 製作:張昌鈴 日期:103年12月23日.
有三件事我很確定: 第一、愛德華是吸血鬼 第二、出於天性,他渴望喝我的血 第三、我無可救藥地愛上他了……
專案製作經驗談.
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
普通话模拟测试 与学习平台 使用指南.
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
香港普通話研習社科技創意小學 周順強老師.
操作系统原理 Principles of Operating System
你,是扼殺 孩子競爭力的幫兇嗎?.
第1章 Linux概述 马丽洁.
靜宜大學專用 PowerPoint 檔案 數位教材
網路小說劇情建構與伏線營造 Windows98.
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
Windows Server 2003操作系统相关配置
金門縣重大空難應變機制-消防局 壹、消防搶救、滅火、緊急救護 一、派遣作為:
3G邮件应用平台 合作共赢之路 泰信(Tmailer®)电子邮件平台
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
“服务器服务于Internet”报告会 倪光南 1999年7月6日
公務員廉政倫理規範.
中央广播电视大学计算机课程 操 作 系 统.
組 員: 王 新 惠 吳 映 暄 李 盈 慧 廖 香 涵 盧 姵 華 訪談日期:
主講人:黃鎮榮 東方設計學院觀光與休閒事業管理系
第4章 作業系統的介紹及操作.
MPI并行编程      报告人:李俊照.
讲师:田家华 第1章 认识计算机 本章要点   计算机的发展 计算机的组成.
作業系統 家庭和小型企業網路– 第二章.
第2章 Linux概述 2.1 操作系统的功能和分类 2.2 Linux操作系统概述 2.3 Linux的应用现状与前景
Chapter 4 多執行緒 (Multi Thread)
國立中央大學機械系網管小組 指導老師:葉則亮 教授 張新民 助教 邱創文 助教 專案成員:劉柏清 簡永懿
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
线程(Thread).
进程操作.
Process management(程序管理)
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
作業系統 (Operating System)
南瑞学堂 学员简明操作指南 上海时代光华教育发展有限公司 2013年.
第二章 Linux简介 Linux概述 Linux系统的特点 Linux中使用的应用程序 Linux的组成 Linux版本介绍
第3章 認識處理元.
作業系統 第三章 作業系統結構.
第1章 网络操作系统概述.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
作業系統 第四章 行程.
使用服务平台办理离校 操作指南.
作業系統 第三章 作業系統結構.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
学年第一学期领取教材明细查询的通知 学年第一学期学生使用的教材均在网上平台公示。现将有关事项通知如下:
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab4.
組員:.
 主講人:楊文明主任委員   106/06/30 中華電信職工福利委員會台北分會業務簡介.
Presentation transcript:

© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型 2.6 Solaris 的进程和线程模型 2.7 NT 的进程和线程模型

© 2001 孟静制作 版权所有 2.1 CPU 管理概述 n CPU 管理内容或问题由何决定? n CPU 管理功能类型 n CPU 管理功能要完成的工作:

© 2001 孟静制作 版权所有 CPU 管理内容或问题由何决定? u 硬件背景 u 用户要求 CPU 数量和是否并发两因素影响最大

© 2001 孟静制作 版权所有 CPU 管理功能类型 n 单处理机单任务模型 n 单处理机多任务模型 n 多处理机多任务模型

© 2001 孟静制作 版权所有 CPU 管理功能要完成的工作: 1. 启动程序执行 2. 处理程序结束工作 3. 提高对 CPU 的利用率, 实现并发技术 4. 向用户程序提供与 CPU 使用相关的用户接口 5. 在多 CPU 硬件背景下负责多个 CPU 登录、分配和 通讯等管理工作

© 2001 孟静制作 版权所有 1. 启动程序执行 将 CPU 交给用户程序使用 重要工作: F 将程序装入内存 F 置 PC

© 2001 孟静制作 版权所有 2. 处理程序结束工作 将 CPU 的使用权从用户手中收回 收尾处理工作: F 程序结束系统调用指令 F 中断 进入操作系统,释放资源、返回结果 信息或错误信息、返回父程序。

© 2001 孟静制作 版权所有 3. 提高对 CPU 的利用率, 实现并发技术 实现多个程序对 CPU 的并发共享

© 2001 孟静制作 版权所有 4. 向用户程序提供与 CPU 使用相关的用 户接口 操作系统提供的系统调用中与 CPU 使用相关的有: F 在一个程序中启动另一程序 F 程序结束 F 关于信号操作的一组系统调用等等

© 2001 孟静制作 版权所有 2.2 进程管理 进程模型的功能与接口: ( 1 )向用户提供多任务使用方式 ( 2 )向用户程序提供一组系统调用 进程模型的实现是围绕进程三态转 换进行的。

© 2001 孟静制作 版权所有 2.2 进程管理 进程三态的转换过程分析 进程三态转换的实现中所需的数 据结构和子程序 专题: CPU 调度算法

© 2001 孟静制作 版权所有 进程三态的转换过程分析 1.“ 运行 -> 等待 ” 、 “ 等待 -> 就绪 ” 、 “ 就绪 -> 运行 ” 、 “ 等待 -> 运行 ” 2.“ 运行 -> 就绪 ” 3.“ 建立 -> 就绪 ” 、 “ 建立 -> 运行 ” 4.“ 运行 -> 结束 ”

© 2001 孟静制作 版权所有 ( 进程三态转换原因和 实现工作内容 )

© 2001 孟静制作 版权所有 进程三态转换的实现中所需 的数据结构和子程序 图 ( 进程模型的数据结构与子程序 ) 、 (PCB 表的内容 ) 、 (“ 建立进程 ” 子程序的框图 ) 、 (“ 进程切换 ” 子程序的框图 )

© 2001 孟静制作 版权所有 专题: CPU 调度算法 衡量 CPU 调度算法的标准: u CPU 利用率 u 用户程序响应时间 u 系统吞吐量 等 ……

© 2001 孟静制作 版权所有 调度算法 : 1. 先进先出 ( 最先进入就绪态的进程,最先运行 ) 2. 轮转调度法 ( 时间片法 ) 3. 优先级调度法 ( 一种是短作业优先法 ) 4. 多级反馈法 ( 多重队列法 ) 5. 策略驱动法 ( 基于对各个用户承诺的算法 ) 6. 二级调度法 ( 决定用户进程在后备队列和就绪队列 的转换 )

© 2001 孟静制作 版权所有 2.3 进程模型实例分析 :UNIX 早期 版本的 CPU 管理子系统 ( 进程模型 ) UNIX 下如何建立进程和在一个程序中 启动另一个程序 UNIX 的进程层次和初启过程 UNIX 进程模型的基本结构和工作过程

© 2001 孟静制作 版权所有 UNIX 下如何建立进程和在一个程 序中启动另一个程序 每个进程由进程标识符( pid, 一个整数)唯一标别 u fork 系统调用 u exec 系统调用 u wait 系统调用 典型地,子进程在 FORK 后用 EXECVE 系统调 用来用一个新程序覆盖进程内存空间

© 2001 孟静制作 版权所有 Fork 系统调用 : 功能 : 建立子进程 返回值 : 对子进程返回 0, 对父进程返回子进 程标识符 exec 系统调用: 输入参数 : 新程序名,... 功能 : 以指定程序覆盖当前进程的程序代码 wait 系统调用: 输入参数:进程号 功能:等待指定进程结束

© 2001 孟静制作 版权所有 图 (UNIX 命令解释程序 shell 的内部部分代 码 ) 图 (fork 内部实现过程中父子进程的内存空 间内容和 proc 等数据结构的内容 )

© 2001 孟静制作 版权所有 UNIX 的进程层次和初启过程 n 图 (UNIX 的进程层次 ) n 图 ( 注册周期 )

© 2001 孟静制作 版权所有 UNIX 进程模型的基本结构 和工作过程 n 图 (UNIX 处理机管理总体实现机制 )

© 2001 孟静制作 版权所有 1. 每个进程的进程管理信息存放在 proc 结构和 user 结构中 2. ppda 区 3. 除了进程 0 外,每个进程都在两种状态之一运行 :核心态和用户态 4.UNIX 的 CPU 调度算法,采用优先级调度算法 图形说明 :

© 2001 孟静制作 版权所有 2.5 线程模型 线程概念 线程的作用和必要性 线程的实现

© 2001 孟静制作 版权所有 线程概念 引例: 问题: 一个文件服务器 ( 进程 ), 由于等待盘操作 而经常被阻塞 解决办法 :服务进程设多个控制线索 好处: 文件服务的吞吐率和性能都提高了

© 2001 孟静制作 版权所有 图 2.14 (a) 三个进程, 各有一个线程。 (b) 一个进程, 有三个线程

© 2001 孟静制作 版权所有 每个线程的内容 每个进程的内容 程序计数器 地址空间 堆栈 全局变量 寄存器组 打开文件 子线程 子进程 状态 定时器 信号 信号量 记帐信息 图 2.15 线程和进程的内容比较

© 2001 孟静制作 版权所有 线程的特点: u 线程(轻量级进程)严格顺序执行 u 所有的线程有完全相同的地址空间 u 线程间无保护 u 线程间共享同一组打开的文件、子进 程、定时器、信号等

© 2001 孟静制作 版权所有 线程的作用和必要性 n 图 2.16 进程中线程的三种组织方式。 (a) 调度者 / 工作者模型 (b) 组模型 (c) 流水线模型 n 表 2.3 三种构造服务器的方法

© 2001 孟静制作 版权所有 线程的实现 1. 线程包的内容 2. 用户态、核心态线程 3. 实例

© 2001 孟静制作 版权所有 线程包的功能 (1). 线程建立与撤消 ( 静态线程、动态线程) (2). 线程调度 (3). 进程全局变量和线程全局变量 (4). 线程互斥与同步

© 2001 孟静制作 版权所有 (不同线程使用同一 全局变量造成的冲突) (线程可以有私有的 全局变量)

© 2001 孟静制作 版权所有 解决私有全局变量访问问题的方法 之一: 为全局变量分配一块存储器, 并将它作 为一个额外的参数传递给线程中的每个过程 调用是 : create_global("bufptr"); set_global("bufptr", &buf); ptr = read_global("bufptr");

© 2001 孟静制作 版权所有 之二: 引入一些新的库函数来创 建、设置和读这些线程内的全局 变量。

© 2001 孟静制作 版权所有 2. 用户态、核心态线程 —— 线程包的用户空间实现 和核心空间实现 ? 两种方法的优缺点分析

© 2001 孟静制作 版权所有 用户级线程包的问题 第一个是阻塞型系统调用的实现方法 第二个是在一个线程开始运行以后, 除非它 自愿放弃 CPU, 否则没有其它线程能得到 运行 第三个是 线程不停地进行系统调用

© 2001 孟静制作 版权所有 3. 用户级线程包实例 Open Software Foundation 的分布式计算环境 ( DEC )的线程包 : 五类函数调用 第一类函数用于线程管理, 它们允许线程被创建和 撤销 第二类函数用于杀死线程 第三类函数用于选择线程调度算法 第四类是线程全局变量的管理函数 第五类是模板的建删和设置

© 2001 孟静制作 版权所有 2.6 Solaris 的进程和线程模型 用户态线程、 LWP 、核心线程的区 别和关系,以及为什么同时需要它们 Solaris 线程模型的设计目标和实现机 制总瞰 SVR4 和 SVR4.2MP 的进程和线程模 型概述

© 2001 孟静制作 版权所有 用户态线程、 LWP 、核心线程的区 别和关系及为什么同时需要它们 图 2.20 Solaris 进程和线程模型的总体设计思想 图 2.21 LWP 实现用户态线程

© 2001 孟静制作 版权所有 Solaris 线程模型的设计目标 和实现机制总瞰 Solaris 线程模型的设计目标: u 能够描述各种情况下的线程间工作机制 u 支持代价尽可能小的线程 u 既支持单 CPU 实现,又支持多 CPU 实现 u · 保持对现有 UNIX 版本的兼容性

© 2001 孟静制作 版权所有 图 2.30 Solaris 进程和线程模型 的实现机制总貌

© 2001 孟静制作 版权所有 Solaris 的进程和线程模型的特点: 1. 支持完全可抢先 2. 支持 SMP 3. 核心多线程结构 4. 由核心线程、 LWP 、用户级 线程、进程这四级构成的模型

© 2001 孟静制作 版权所有 SVR4 和 SVR4.2MP 的进程 和线程模型概述

© 2001 孟静制作 版权所有 2.7 NT 的进程和线程模型 Windows NT 的 CPU 管理模型的特点: 1. 多任务(多进程)、多线程、对称多处理 2.NT 体现为多个服务器进程,每个服务器进 程使用多个线程来处理同时从多个客户来的 请求 3.NT 进程、线程均被作为对象实现,并通过 对象服务访问

© 2001 孟静制作 版权所有 4.NT 进程管理程序在它所管理的子进程之间 不具有父进程 / 子进程或其他关系 5. 在 NT 中,基本的调度实体是线程而不是进 程,采用动态优先级多级调度队列算法,允 许可抢先但核心代码不可被抢先 6. 在进程间共享对象的优越功能及灵活的内部 进程通信能力,进程对象和线程对象都具有 内部同步能力

© 2001 孟静制作 版权所有 ( 图 2.31 NT 进程和线程模型 实现机制总貌 )

© 2001 孟静制作 版权所有 LINUX 的特点: u 性能非常快 u 进程与任务两种内外机制的并存和特殊关系 u 进程状态的定义与其他 UNIX 系统有些不同 u 快中断(可抢夺式调度)与慢中断(不可抢 夺式)两种中断类型的并存 u CPU 调度算法采用动态优先级算法

© 2001 孟静制作 版权所有 表 2.2 LINUX 进程管理类系统调用 图 2.14 LINUX 的 CPU 管理功能的内部实现 机制总瞰图 2.15 LINUX 启动过程 图 2.17 LINUX 的系统调用过程 图 2.18 LINUX 的 CPU 调度过程

© 2001 孟静制作 版权所有 分析: 1. 进程与任务的关系 2. 进程表 (process table) 3. 任务结构 task_struct 4. 进程状态 ( 任务状态 ) 5. 快中断和慢中断 6. 进程层次(0,1,...) 7. 进程调度