23进程及其实现内容摘要:
统例行程序以获得服务,这就是一次 模式切换 , •内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的。 CPU模式切换 (2) 模式切换的步骤 •保存被中断进程的处理器现场信息。 •根据中断号置程序计数器。 •把用户状态切换到内核状态 ,以便执行中断处理程序。 CPU模式切换与进程上下文切换 •模式切换不同于进程切换,它并不引起进程状态变化,也不一定引起进程的切换,在完成了中断调用之后,完全可以再通过一次逆向的模式切换来继续执行用户进程。 UNIX进程上下文切换和模式切换 (1) •两类进程:系统进程和用户进程 , 系统进程在核心态下执行操作系统代码 ,用户进程在用户态下执行用户程序。 • 用户进程因中断和系统调用进入内核态 , 系统进程开始执行 , 两个进程使用同一个 PCB, 实质上是一个进程。 但所执行的程序不同 , 映射到不同物理地址空间 、 使用不同堆栈。 UNIX中进程上下文切换和模式切换 (2) 核心态 运行 系统调用或中断 (隐含模式切换 ) 模式切换 用户态 运行 等待 状态 就绪 状态 发生事件 唤醒 调度进程 中断、 中断返回 允许的上下文切换切换 进程的控制 原语 (1) •处理器管理的一个主要工作是对进程的控制,包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等。 •这些控制和管理功能是由操作系统中的原语来实现的。 原语 (2) • 原语 (Primitive)是在管态下执行、完成系统特定功能的过程。 •原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。 •一种原语的实现方法是以系统调用方式提供原语接口,且采用屏蔽中断的方式来实现原语功能,以保证原语操作不被打断的特性。 进程的创建 (1) 进程创建来源于以下事件 : •提交一个批处理作业。 •在终端上交互式的登录。 •操作系统创建一个服务进程。 •存在的进程孵化 ( spawn) 新的进程。 进程的创建 (2) • 生成进程称父进程 (Parent Process), 被生成进程称子进程 (Child Process) 、 即一个父进程可以创建子进程 , 从而形成树形结构。 进程的创建过程 (1) • 在进程表中增加一项 , 并从 PCB池中取一个空白 PCB。 • 为新进程的进程映像分配地址空间。 传递环境变量 , 构造共享地址空间。 • 为新进程分配资源 , 除内存空间外 , 还有其他各种资源。 进程的创建过程 (2) • 查找辅存 , 找到进程正文段并装到正文区。 • 初始化进程控制块 , 为新进程分配进程标识符 , 初始化 PSW。 • 加入就绪进程队列 , 或直接将进程投入运行。 • 通知操作系统的某些模块 , 如记账程序 、 性能监控程序。 进程的创建过程 (3) •Linux fork( ) 创建子进程但父子进程不共享内容 •Linux clone( ) 允许定义父子进程共享的内容 •Linux中认为线程就是共享上下文的进程 2 进程的阻塞和唤醒 (1) 进程阻塞的步骤如下: •停止进程执行 , 保存现场信息到PSW。 •修改 PCB的有关内容 , 如进程状态由运行改为等待等。 •把修改状态后的 PCB加入相应等待进程队列。 进程的阻塞和唤醒 (2) 进程唤醒的步骤如下: •从相应等待进程队列中取出 PCB。 •修改 PCB有关信息 , 如进程状态等。 •把修改后 PCB加入有关就绪进程队列。 3 进程的撤销 (1) 进程撤销的主要原因 (1): •进程正常运行结束。 •进程执行了非法指令。 •进程在常态下执行了特权指令。 •进程运行时间超越了分给的最大时间段。 •进程等待时间超越了设定的最大等待时间。 •进程申请的内存超过了系统能提供最大量。 •越界错误。 进程的撤销 (2) 进程撤销的主要原因 (2): •对共享内存区的非法使用。 •算术错误 , 如除零和操作数溢出。 •严重的输入输出错误。 •操作员或操作系统干预。 •父进程撤销其子进程。 •父进程撤销。 •操作系统终止。 进程的撤销 (3) 撤销原语终止进程具体步骤 •根据撤销进程标识号 , 从相应队列中找到它的 PCB; •将该进程拥有的资源归还给父进程或操作系统; •若该进程拥有子进程 , 应先撤销它的所有子孙进程 , 以防它们脱离控制; •撤销进程出队 , 将它的 PCB归还到 PCB池。 4 进程的挂起和激活 (1) • 挂起原语执行过程如下:检查要被挂起进程的状态,若处于活动就绪态就修改为挂起就绪,若处于阻塞态,则修改为挂起阻塞。 •被挂起进程 PCB的非常驻部分要交换到磁盘对换区。 进程的挂起和激活 (2) •激活原语主要工作:把进程 PCB非常驻部分调进内存,修改它的状态,挂起等待态改为等待态,挂起就绪态改为就绪态,排入相应队列中。 •挂起原语既可由进程自己也可由其他进程调用,但激活原语却只能由其他进程调用。 实例研究 :UNIX SVR4的 进程管理 • UNIX SVR4采用基于用户进程的运行模型 , 操作系统功能在用户进程的环境中执行 , 需要在用户和内核模式间切换。 • UNIX SVR4允许两类进程:用户进程和系统进程。 系统进程在内核模式下执行 ,完成系统的一些重要功能。 用户进程在用户模式下执行用户程序 , 系统调用 、中断和异常将引起模式切换。 UNIX SVR4 进程状态 • user running: • kernel running: • preempted: • ready to run, in memory: • Asleep in memory: •ready to run, swapped: •sleeping, swapped: •zombie: UNIX SVR4进程状态及其转换 内存就绪 用户态 运行 内核态 运行 被剥夺 就绪换出 创建 内存 睡眠 睡眠 换出 僵死 返回用户模式 系统调用或中断 返回 剥夺 选中 退出 中断, 中断返回。23进程及其实现
相关推荐
Pentinum 4处理器的基石。 这里解释一下处理器的架构与微架构: 处理机的架构 指的是指令集、寄存器和程序员公用的内存驻留的数据结构,它们在处理器的发展进程中得到继承和增强。 处理机的 微架构 指的是处理机架构在硅片上的实现。 第 2章 微处理器 NetBurst微架构特点细节 : 超流水线技术 执行追踪 Cache 快速执行引擎 REE 400MHz 系统总线 先进的动态执行
率相差悬殊。 (2) CISC结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成 本,而且还容易造成设计错误。 (3) CISC结构指令系统的复杂性给 VLSI设计增加了 很大负担,不利于单片集成。 指令集结构的功能设计 10/ 19 (4) CISC结构的指令系统中,许多复杂指令需要很 复杂的操作,因而运行速度慢。 (5) 在 CISC结构的指令系统中
马上行动中的图片“地下通道”, 这个地下通道的设计忽略的哪些人群的需要。 一般的产品设计都是适合于普通人群的,但是特殊人群也是社会的重要组成部分,所以,本着“ 以人为本 ”的理念,设计时,还必须充分考虑特殊人群的特点和需要。 静态的人与动态的人 小辞典: 静态尺寸 是指人的构造尺寸; 动态尺寸 是指人的功能尺寸, 包括人的动作范围、体形变 化等测量数据。 人在使用产品的时候处于静态和动
( T为相邻两计数点之间的时间间隔) (2)用 vt图象法 :即先求出每个点的瞬时速度,后做出 vt图,图线的斜率即为物体运动的加速度。 1 2 3 4 5 0 X1 X2 X3 X4 X5 6 5 4 3 2 129X X X X X XaT 343 2xxvT图象法 选择一条较理想的纸带,用平均速度代替瞬时速度的方法得到各计数点的瞬时速度。 位置 0 1 2 3 4 5