进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(

Slides:



Advertisements
Similar presentations
Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010.
Advertisements

定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
等可能性事件的概率(二) 上虞春晖中学数学组欢迎你! 1 本课件制作于 §10.5 等可能事件 的概率 ( 二 )
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
© 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 典型操作系统概述.
港股通首单分拆合并业务技术培训. 恒发洋参 4 : 1 合并股份 根据恒发洋参控股有限公司(恒发洋参)之股份合并建议,每 4 股每股面值 港元之现有股份( “ 现有股份 ” )将合并为 1 股每股面值 港元之股份 (“ 合并股份 ”) 。合并股份的开始买卖日期预计为 2016.
第 20 章 檢視系統資訊.
科學論文 鰂魚涌街的衛生情況 作者:廖梓芯 學校:北角官立上午小學 班級:P.5A.
上課教材 Database Slide Windows筆電 (32 bit)
研商「99年宜蘭縣相關單位同步滅鼠工作」執行事宜
第1单元 操作系统概论 第一节 绪论 操作系统定义.
Foundations of Computer Science
第十章 UNIX系统内核结构 10.1 UNIX系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理
美国教育心理学家吉诺特说:在历经了若干年的教师工作之后,我得到了一个令人惶恐的结论:教育的成功与失败,我是决定性的因素,我个人采用的方法和每天的情绪,是造成学习气氛和情景的的主要原因。身为教师,我具有极大的力量,能够让孩子们活得愉快或悲惨,我可以是制造痛苦的工具,也可能是启发灵感的媒介。无论在什么情况下,一场危机之恶化和化解,学生是否受到感化,全部决定于我。
《成佛之道》序~第三章 圓融 /
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
第二章 项目一:企业厂区与车间平面设计 1.
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
香港普通話研習社科技創意小學 周順強老師.
中央广播电视大学开放教育试点课程 计算机操作系统.
操作系统原理 Principles of Operating System
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
大气的受热过程 周南中学.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
第8章 机床操作 主讲:臧红彬 博士.
報告人:萬華國中 吳菜霞校長 中華民國103年11月27日
权力的行使:需要监督 北京市京源学校 冯 悦.
中央广播电视大学计算机课程 操 作 系 统.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
C H A P T E R 11 体系结构对操作系统的支持.
第4章 作業系統的介紹及操作.
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
Chapter 3 行程觀念 (Process Concept)
第2章 Linux概述 2.1 操作系统的功能和分类 2.2 Linux操作系统概述 2.3 Linux的应用现状与前景
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
Process management(程序管理)
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
作業系統 (Operating System)
个人介绍 我是小小.
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
李元金 计算机与信息工程学院 第 3 讲 进程管理(1) 李元金 计算机与信息工程学院 1/
第3章 認識處理元.
实验一、进程控制 一、实验目的 1、加深对进程的理解,进一步认识并发执行的实质; 2、分析进程争用资源现象,学习解决进程互斥的方法;
第2章 进程管理 2.1 进程概念 2.2 线程 2.3 进程管理 2.4 进程间通信 2.5 经典进程同步问题 2.6 管程
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
Linux Debugging ls,ps,top,etc. printk() /proc i386提供的调试机制(断点,信号,单步执行)
作業系統 第三章 作業系統結構.
RTOS.
作業系統 第四章 行程.
作業系統 第三章 作業系統結構.
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
台灣大學計算機及資訊網路中心 教學研究組 張傑生
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
第 7 章 进程间的通信.
程序管理 蘇偉順助教.
程序管理 蘇偉順助教.
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
架构师成长感悟 吴隆烽
Computer Science & Information Management
职称评审服务指南.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
2019 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab7.
Presentation transcript:

进 程

“ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符( process descriptor )的结构来描述,其结构类型定义为 task_struct ,包含了一个进程的所有信息。 一个可执行目标文件(即程序)可被加载执行多次,也即,一个 程序可能对应多个不同的进程。 程序( program )指按某种方式组合形成的代码和数据集合,代码即 是机器指令序列,因而程序是一种静态概念。 进程( process )指程序的一次运行过程。更确切说,进程是具有独 立功能的一个程序关于某个数据集合的一次运行活动,因而进程 具有动态含义 。同一个程序处理不同的数据就是不同的进程

创建进程 ——fork

命令行参数与环境变量

进程有自己的生命周期,它由于任务的启动而创建,随着任务的完成 ( 或 终止 ) 而消亡。 每个进程从产生到消亡,经常会处于 5 种不同的状态之一, 并在不同状态之间频繁进行转换 。 进程的状态及其转换:五态模型 选中 选中 时间到 出现等 待事件 事件结束 运行态 就绪态 等待态 新建态终止态 退出 (exit) 接纳 创建 (creat) 系统当前 状态允许 等待使用资 源;或等待 I/O ;或等 待人工干预 进程运行结束 或强迫终止 运行时间到; 或出现有更高 优先权进程 资源得到满 足; I/O 操 作结束;人 工干预完成 CPU 空闲时选择 一个就绪进程 除了正在运行的进程之 外,其他状态的进程分 别在不同的队列中排队 等候

进程的队列和调度 (Scheduling) 就绪进程在就绪队 列中排队等待调度 等待从磁盘读出文件的进 程在 I/O 队列中排队等候 等待用户输入的进程在等 待输入队列中排队等候 如何从就绪队列中选择一 个进程交给 CPU 执行,称 为进程调度 ( 短程调度 ) , 又叫做处理器管理 调度 完成 等待队列 就绪队列 事件 出现 生成 1 个 子进程 运行 时间到 等待某 个事件 I/O 队列 I/O 完成 请求 I/O 操作 CPU 新进程 接纳 进程运行

内存地址空间 进程的执 行环境和 CPU 现场 IA-32 中进 程的 执行 环境 每个进程都有 专属于该进程 的私有存储空 间,用于存储 它自己的程序、 数据和工作区 程序 数据 工作区 程序 数据 工作区 程序 数据 工作区 OS CPU FLAGS 标志寄存器 通用寄存器 浮点寄存器 MMX 寄存器 XMM 寄存器 指令计数器 代码段基址寄存器 数据段基址寄存器 堆栈段基址寄存器 运行进程就是一条一条地执行相应程序中的指令 指令执行的效果就是改变 CPU 寄存器和存储器的状态 任一指令都在前一条指令的基础上执行 CPU 中所有寄存器的状态,称为 CPU 现场信息 若进程从运行态转换为等待态或就绪态,则必须保存 CPU 现场信息,如果进程再次运行,则需恢复 CPU 现场

进程 P 0 操作系统 进程 P 1 运行 等待 等待等待 等待等待 切换进程必须交换上下文 (Context-switch) 上下文信息 →PCB 0 上下文信息 →PCB 1 从 PCB 1 恢复上下文 从 PCB 0 恢复上下文 进程 P0 处于运行状态, CPU 执行 P0 中的指 令 2. 时间到,系统时钟向 CPU 发出中断信号, OS 取代 P0 进入 CPU 运行 3.OS 把进程 P0 的上下文信息保存在 P0 的进 程控制块 PCB0 中,把 P0 放进就绪队列排队 4.OS 按调度算法从就绪进程的队列中选择另 一个进程 P1 准备运行 5.OS 从 P1 的进程控制块 PCB1 中把进程 P1 的 上下文信息恢复在 CPU 中 6.OS 让出 CPU ,进程 P1 进入运行状态, CPU 执行 P1 中的指令 7. 进程 P1 需要从磁盘上读出文件而执行一个 “ system call ” ,因而引出 OS ,启动磁盘的 文件读出操作 8.OS 把进程 P1 的上下文信息保存在 P1 的进 程控制块 PCB1 中, 然后将 P1 进程放进等 待队列排队 9.OS 按调度算法从就绪进程的队列中选择另 一个进程 P0 准备运行 10.OS 从 P0 的进程控制块 PCB0 中把进程 P0 的 上下文信息恢复在 CPU 中 11.OS 让出 CPU ,进程 P0 进入运行状态, CPU 执行 P0 中的指令 系统调用 (中断) 从就绪队列中选出 P1 从就绪队列中选出 P0

“ 进程 ” 与 “ 上下文切换 ” Unix>./hello hello, world Unix> “Unix>” 是 shell 命令行提示符, 说明正在运行 shell 进程。 在一个进程的生命周期中,可 能会有其他不同进程在处理器 上交替运行! 感觉到的运行时间比真实执行 时间要长! OS 通过处理器调度让处理器轮流执行多个进程。实现不同进程中指 令交替执行的机制称为进程的上下文切换( context switching ) 处理器调度等事件会引起用户进程正常执行被打断,因而形成异常控制流。 进程的上下文切换机制很好地解决了这类异常控制流,实现了从一个进程安 全切换到另一个进程执行的过程。

信 号

信号 ——Linux 中对异常的处理 所有异常处理程序的结构是一致的,都可划分成以下三个部分: ( 1 )准备阶段:在内核栈保存通用寄存器内容(称为现场信息),这部分大多 用汇编语言程序实现。 ( 2 )处理阶段:采用 C 函数进行具体处理。函数名由 do_ 前缀和处理程序名组 成,如 do_overflow 为溢出处理函数。 大部分函数的处理方式:保存硬件出错码(如果有的话)和异常类型号,然 后,向当前进程发送一个 信号 。当前进程接受到信号后,若有对应信号 处理程序,则转信号处理程序执行。 ( 3 )恢复阶段:恢复保存在内核栈中的 各个寄存器的内容,切换到用户态并 返回到当前进程的断点处继续执行 。

信号 高层软件形式的 异常 提供了一种通知 用户进程有关低 层硬件异常的机 制 – 异常由内核相应 例程处理,对用 户进程不可见 Linux 系统的 30 种 信号类型 – 每种信号类型对 应于某种系统事 件

信号实例 低层硬件异常 进程除 0 时,内核向其发送 SIGFPE 信号 进程执行非法指令时,内核向其发送 SIGILL 信号 进程引用非法存储地址时,内核向其发送 SIGSEGV 信号 高层软件事件 在前台进程运行时键入 Ctrl-C ,内核向其发送 SIGINT 信号 进程可向另一进程发送 SIGKILL 进程强制终止它 进程终止 / 停止时,内核向其父进程发送 SIGCHLD 信号

发送 / 接收信号 发送信号至目的进程包括两个步骤: 发送信号 – 内核更新目的进程上下文中的状态 – 两种发送原因: 1 )内核检测到一个系统事件(如除 0 ); 2 )进程 通过调用 kill 函数显式要求内核向目的进程发送一个信号 接收信号 – 内核强制目的进程对发送的信号做出某种响应 – 目的进程可以: 1 )忽略该信号; 2 )执行一个称为信号处理程序 的用户层函数以捕获信号; 3 )终止

发送 / 接收信号 一个已发出但尚未被接收的信号称为 pending 信号 任何时刻,进程至多存在每种类型的一个 pending 信号 – 假如已存在一类型 k 的 pending 信号,后续发送至该进程的类型 k 信号将被简单丢弃 进程可选择阻塞( block )接收某种信号 – 被阻塞的信号可以被发送,但不会被接收,直至进程取消阻塞 进程组:由进程组 ID ( PGID )标识 – 默认子进程与父进程属于同一进程组,其进程组 ID 为父进程的 PID

发送信号 Unix/Linux Shell 用作业( job )指代其创建的进程 ( 组 ) 任何时刻至多只有一个前台作业,同时可有多个后台作业 –unix> ls | sort// 创建由管道连接在一起的两个进程组成的前台 作业 Shell 为每个作业创建一个独立的进程组 键入 Ctrl-C 将使一个 SIGINT 信号被发送给 Shell 1 ) Shell 捕获该信号, 并向前台进程组中的每 一进程发送 SIGINT 信号 2 )默认进程将终止

发送信号 /bin/kill 程序可向一进程发送任一信号 –unix> /bin/kill // 向进程 发送 SIGKILL(9) 信号 –unix> /bin/kill // 向进程组 中的每一进程发送 SIGKILL(9) 信号 进程可调用 kill 函数向其他进程(包括自己)发送信号 进程可调用 alarm 函数要求内核在指定时间向自己发送 SIGALRM 信号

接收信号 当内核从异常处理程序返回准备将控制传递给进程前,将 检查该进程的未被阻塞的 pending 信号集合。 如果集合非空,内核选择其中某个信号 k (通常取最小的 k )并强制进程接收信号 k ,相应触发进程的特定行为,并 在其完成后控制传递回进程的逻辑控制流的下一条指令 每个信号类型对应下列之一的预定义默认行为: – 进程终止 – 进程终止并转储存储器( core dump ) – 进程停止直到被 SIGCONT 信号重启 – 进程忽略该信号 例如,收到 SIGKILL 信号的默认行为是终止接收进程 可使用 signal 函数改变与某信号相关联的行为

处理信号 调用信号处理程序称为捕获( catch )信号 当进程执行信号处理程序的 return 语句时,控制传递回因 接收信号而中断的逻辑控制流中的指令 修改 SIGINT 的默认行 为(终止进程)为捕获 并处理信号(输出信息 )

非本地跳转 ( nonlocal jump )

非本地跳转 C 语言提供一种用户级异常控制流 ——nonlocal jump – 将控制从一个函数直接传递给另一正在执行的函数,跳过正常的 调用 - 返回处理序列 – 通过 setjmp 和 longjmp 函数实现 setjmp 将当前调用环境(程序计数器、栈指针、通用寄存 器等)保持在 env 缓冲区中,供后面的 longjmp 函数调用 使用。返回 0.

非本地跳转 longjmp 从 env 缓冲区中恢复调用环境,并触发从最近一 次设置 env 的 setjmp 中返回,注意不是从 longjmp 返回 注意 setjmp 只被调用一次却返回多次: 1 )第一次调用初 始化 env 内容时返回 0 ; 2 )每次 longjmp 调用触发的返回 (返回非 0 的 longjmp 调用参数 retval ) 非本地跳转的应用之一是允许从深层嵌套的函数调用中返 回至预先设置的任一位置。例如用户级异常捕获与处理。

非本地跳转

12 月 24 日小班课 PA 报告要求

PA 小班口头报告 教学目标 – 通过小班交流与讨论,进一步促进课程 PA 实践环节 – 了解学生在 PA 方面投入的工作量 报告方式 – 以 PPT 方式展示自己在模拟器实现过程中的亮点,尤其 是有特色或有参考价值的做法、功能等 – 可配合现场演示 自愿报名