第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程

Slides:



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

怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 睡姿最好採取半側臥,可保證全身放鬆,氣血順暢。不過 無論怎樣的睡姿,以「舒適放鬆」為最好。 中醫有「不通則痛」之說,良好的睡眠姿勢,保證週身氣 道通達, 血絡順暢,可以調氣養神,濡養脈絡,消除疲勞 ,滋養精神。「坐如鍾、站如松、臥如佛 …… 」我們的先人.
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
大地遊戲王 課程實錄.
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
两汉文学及汉代诗歌.
近现代文学概说.
第 20 章 檢視系統資訊.
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 每 60 秒自動換頁 ,敬請慢慢體會 , 或按一下跳下頁 . 公 益‧分 享 音樂 :
102年實施之高中職及五專多元入學(含免試入學)之招生機制
C语言程序设计 李伟光.
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
姻緣天注定 定婚店 李復言.
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
Foundations of Computer Science
國中適性輔導宣導 生涯導航 談國中學生適性輔導 石牌國中 輔導室葉嘉惠.
做好就业与自主创业的准备.
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 每 60 秒自動換頁 ,敬請慢慢體會 , 或按一下跳下頁 .
第二章 项目一:企业厂区与车间平面设计 1.
班級:行流四甲 組員:497D0004何筱瑩 497D0016鄧宜欣 497D0044呂亭儀 497D0056黃 琪 497D0063賴依淩
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
采编班的“三朵奇葩”? 精品团会主题.
第8章 机床操作 主讲:臧红彬 博士.
网络信息资源的开发与设计 主讲教师 罗双兰 广西师范大学教育科学学院.
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
心靈補給站 你可以「活」的「更好」 輔導主任 陳正馨老師.
转正述职报告 乐恩公司 史航
口才与思辨并重 专业与职业共扬 -----法学院 “口才训练营” 精品活动介绍.
荷福威士顿机器人科技有限公司 上海荷福集团
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
契約 課程:文書實務與應用 教師:黃湃翔老師.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
作業系統 補充: 雲端運算.
Applied Operating System Concepts
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
Chapter 3 行程觀念 (Process Concept)
第一章 認識Java Java 程式設計入門(I).
Chapter 4 多執行緒 (Multi Thread)
线程(Thread).
奢侈稅成效分析與房市未來發展 吳中書 中華經濟研究院 第十九屆亞太財務經濟會計及管理會議 ~07.09.
作業系統 (Operating System)
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
李元金 计算机与信息工程学院 第 3 讲 进程管理(1) 李元金 计算机与信息工程学院 1/
第3章 認識處理元.
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
Operation System(OS).
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
作業系統 第四章 行程.
兒少保護通報處理流程介紹 臺中市家庭暴力及性侵害防治中心 陳秀婷/張美慧 社工督導員 2012/10/19.
萬能科技大學博碩士論文系統 萬能科技大學 圖書館 林詩茵.
報告人:張淑惠.
學士學位畢業論文說明 逢 學 大 甲 土 理 管 地 2009/10/05.
浮雕畫 探索線條的魅力 劉文涵老師.
方格紙上畫正方形.
大學學群學類卡 林宏茂 中壢高中 李欣樺 振聲高中.
亞洲大學 資訊工程學系 多重來源影像監控系統
Chapter 4 Multi-Threads (多執行緒).
第六章 直接成本法.
Presentation transcript:

第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程 Thread and light-weighted process 作业 Job

2.1 多道程序设计 单道程序设计的缺点 多道程序设计的提出 多道程序设计的问题

2.1.1 单道程序设计 处理机利用率低 设备利用率低 内存利用率低 t t1 t2 t5 t6 CPU 设备1 设备2 运行程序A

2.1.2 多道程序设计的提出 设计目标:提高系统效率(吞吐量) t1 t2 t5 t6 t3 t4 t CPU 设备1 程序A 设备2 程序B t3 t4 t 设计目标:提高系统效率(吞吐量)

2.1.3 多道程序设计的问题 处理机资源的管理 程序个数处理机个数(如何分配?) 存储资源的管理 地址空间的相对独立性、共享性 内存、外存的分配与去配 设备资源管理 分配策略 IO控制

2.2 进程的引入 进程的概念 进程状态及状态转换 进程控制块 进程的组成与上下文 进程的队列 进程的类型与特征 进程间相互联系与相互作用 进程的创建与撤销 进程与程序间的联系与差别

2.2.1 进程的概念 定义: 进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。 定义强调两个方面: 动态:执行中的程序; 并发:可与其他进程同时执行。

2.2.2 进程状态及转换 进程状态(基本状态) 运行态(RUN): 占有CPU正在向前推进 就绪态(READY): 可以运行,但未得到CPU 等待态(WAIT): 等待某一事件发生

进程状态转换图 就绪 等待 运行 获得处理机 剥夺处理机 等待事件 事件发生 Keep in Mind

进程状态转换图2 初创 终止 创建 结束 就绪 等待 运行 获得处理机 剥夺处理机 等待事件 事件发生

2.2.3 进程控制块(PCB) 标志进程存在的数据结构,其中保存系统管理进程所需的全部信息 PCB 内容: 进程标识(pid) 家族联系 进程状态 地址信息 现场信息 打开文件 调度参数 消息指针 所属用户(uid) 队列指针

2.2.4 进程的组成与上下文 进程的组成 进程控制块(process control block) 建立进程建立PCB 程序 代码(code) 数据(data) 堆栈(stack+heap)

2.2.4 进程的组成与上下文 进程的表记 PCB 程序 代码 数据 + 堆栈 表记1 表记2 系统空间 用户空间

2.2.4 进程的组成与上下文 进程上下文:进程的物理实体与支持进程运行的物理环境,包括: PCB+程序 系统环境:地址空间,系统栈,打开文件表,… 上下文切换:由一个进程的上下文转到另一个进程的上下文 系统开销:运行操作系统程序完成系统管理工作所花费的时间和空间

2.2.5 进程的队列 1. 就绪队列:系统一个或若干个(根据调度算法确定) 2. 等待队列:每个等待事件一个 PCB构成的队列:(不一定FIFO) PCB …… head 1. 就绪队列:系统一个或若干个(根据调度算法确定) 2. 等待队列:每个等待事件一个 3. 运行队列:每个处理机一个

2.2.6 进程的类型与特征 进程类型 系统进程 运行操作系统程序,完成系统管理(服务)功能. 用户进程 运行用户(应用)程序,为用户服务。

2.2.6 进程的类型与特征(Cont.) 进程的特征 并发性:可以与其它进程一道向前推进; 动态性:动态产生、消亡,生存期内状态动态变化; 独立性:一个进程是可以调度的基本单位; 交往性:同时运行的进程可能发生相互作用; 异步性:进程以各自独立,不可预知的速度向前推进; 结构性:每个进程有一个PCB。

2.2.7 进程间相互联系与相互作用 相互联系 相关进程 同一家族的进程 可以共享文件,需要相互通讯,协调推进速度… 父进程可以监视子进程,子进程完成父进程交给的任务。 无关进程 没有逻辑关系、同时执行的进程。 有资源竞争关系,互斥、死锁、饿死。

2.2.7 进程间相互联系与作用 相互作用 receive send sync 1. 直接相互作用:发生在相关进程之间 P1: P2: 2. 间接相互作用:发生在任何进程之间 R P2 P1 hold wait

2.2.8 进程的创建与撤销 进程的创建 建立PCB,分配内存,加载程序,入就绪链 UNIX:pid=fork(),exec(prog,args) 进程的撤销 去配资源,撤销PCB,通知父进程 UNIX:exit() vs. kill 除初始进程外,其它进程由(父)进程创建,并形成进程家族。

2.2.9 进程与程序的联系与差别 进程与程序的联系 进程包括一个程序 进程存在的目的就是执行这个程序 进程与程序的差别 程序静态,进程动态 程序可长期保存,进程有生存期 一个程序可对应多个进程,一个进程只能执行一个程序

2.3 线程与轻进程 2.3.1 线程的引入 2.3.2 线程的概念 2.3.3 线程的结构 2.3.4 线程的实现 2.3.5 线程的应用 2.3.6 Java线程

2.3.1 线程的引入 进程切换 上下文涉及内容多,开销大,“笨重” 相关进程之间耦合关系差 解决方案 Multi-threading 同一进程中包含多个线程 上下文只涉及寄存器和用户栈,切换速度快 相关线程之间通讯方便、快捷

2.3.2 线程的概念 进程中一个相对独立的执行流。 进程 /线程 进程是资源分配单位 线程是执行单位 多线程优点 切换速度快(地址空间不变)(light weighted) 系统开销小 通讯容易(共享数据空间)

线程控制块 TCB(Thread control block) 标志线程存在的数据结构, 其中包含对线程管理需要的全部信息. 内容 线程标识、线程状态 调度参数、现场(通用寄存器,PC,SP) 存放位置 用户级线程:目态空间(运行系统) 核心级线程:系统空间

2.3.3 线程结构 多进程结构(用户视图) 静态数据 程序代码 栈 进程1 动 态 堆 内存 寄存器 静态数据 程序代码 栈 寄存器 动 态 堆 内存 寄存器 静态数据 程序代码 栈 寄存器 进程2 动 态 堆 内存 寄存器

2.3.3 线程结构 多线程结构(用户视图) 静态数据 程序代码 栈 寄存器 线程1: 线程2: 进程 动 态 堆 内存

2.3.4 线程的实现 2.3.1 用户级别线程 User-level thread 2.3.2 核心级别线程 Kernel-level thread 2.3.3 混合线程 Hybrid approach

2.3.4.1 用户级别线程 实现方法: 基于library函数,系统不可见 线程创建、撤销、状态转换在目态完成 TCB在用户空间,每个进程一个系统栈 优点: 不依赖于操作系统,调度灵活 切换速度快 缺点:同一进程中多个线程不能真正并行,一个线程进入系统受阻,进程中其它线程不能执行

2.3.4.1 用户级别线程 运行系统 TCB 进程 线程 核心栈 进程表 用户空间 系统空间

2.3.4.2 核心级别线程 实现方法: 基于系统调用 创建、撤销、状态转换由操作系统完成 优点: 同一进程内多线程可以并行执行 一线程进入核心等待,其它线程仍可执行 缺点: 系统开销大,同一进程内多线程切换速度慢 调度算法不能灵活控制

2.3.4.2 核心级别线程 进程 线程 核心栈 进程表 用户空间 系统空间 TCB

2.3.4.3 混合线程 Solaris例子 User level thread: 由Lib程序支持(创建.调度) Light weighted process(LWP): 由Lib程序支持 每个task至少一个LWP 用戶级别线程与LWP可以多对多 只有与LWP相联系的用户线程向前推进 Kernel level thread: 由kernel 支持 每个核心线程与唯一一个LWP对应 核心线程可与CPU多对多,可对一

2.3.4.3 混合线程(Solaris) kernel CPU task1 task2 task3 User level thread Lightweight process Kernel

2.3.5 线程的应用 内在的多控制流 生产-消费问题 多线程优于多进程 快100倍! 提高处理机与设备的并行性 多处理机环境 提高处理机利用率,加快进程推进速度

2.3.5 线程的应用 例子: Word字处理(不同代码) 交互编辑(T1) 词法检查(T2) 定时保存(T3) HTTP server(相同代码) 对每个http请求,pop up一个线程

2.4 作业(Job) 作业概念 用户要求计算机系统为其完成的计算任务集合。 作业步(job step) 作业处理过程中一个相对独立的步骤 一般一个作业步可由一个进程完成 某些作业步之间可以并行 作业分类 批处理作业 交互式作业

2.4.1 批处理作业 作业控制语言(JCL) 描述批处理作业控制意图的语言 作业说明书(JCL语句的序列) 一般以特殊符号起始 $JOB J1 $FORTN … $LINK … $ENDJOB 作业控制程序:解释并处理作业说明书的程序 作业控制进程:执行作业控制程序的进程

作业控制进程 读入作业内容 释放输入井空间 顺取作业控制语句 是结束语句 执行该作业步 (可能创建子进程) 申请输出井空间 输出作业结果 进程自我终止 F T

2.4.2 交互式作业 帐户管理:/etc/passwd文件 创建与撤销 创建: 用户提供(用户名,口令,资金) 系统操作员建立(根目录/usr/zhang, 填写passwd文件) 撤销: 删除该用户目录及所有文件 在passwd文件中清除对应entry

2.4.2 交互式作业 注册与注销 注册: logon: 用户名 password: ******** 注销: 显示注销: logout 隐式注销: (如5分钟无输入命令)

命令解释程序 提示符$ 读入终端命令 分析 Logout 内部命令 处理 建立子进程 后台命令 等子进程结束 输出子进程号 记帐 T F

小结:作业、进程、线程 作业与进程 作业进入内存后变为进程 一个作业通常与多个进程相对应 进程与线程 不支持多线程的系统,可视为单线程进程 一个进程一般包含多个线程,至少包含一个线程