UNIX操作系统处理机管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UNIX的进程调度
在Unix 操作系统中,所以的程序,不论是用户 级上还是在内核级上执行的,都出现在某个进程 的现场内,所有的用户程序都在它们自己的进程 现场中运行。当这些用户进程通过系统调用请求 内核服务的时候,实现该系统调用的内核代码继 续在请求进程的现场内执行,这就能让内核方便 的访问进程的所有状态及其他地址空间。它还提 供了一种代表用户程序记录内核执行的当前状态 的方式。例如,如果需要挂起一次系统调用的执 行来等待I/O 操作完成,那么内核有关系统调用 处理的状态就要保存在进程中。
• UNIX 系统是一个多用户分时系统, 其分时性是通过对 用户进程频繁的调度来实现的, 系统的调度程序分成两 部分, 即处理机调度程序( swtch) 和进程对换程序 (sched) . 在这里我涉及的是处理机调度程序. 在如下几 种情况下会调用处理机调度程序: • (1) 若一个进程已到达它不能超过的某个点, 这时它就 要调用“sleep ”, 而“sleep ”则调用“swtch ”; • (2) 一个在核心态下运行的进程, 当它将要转入用户态 之前, 会测试变量“runrun ”, 如果其值非0 , 则意味着 更高优先权的进程已为运行准备就绪. 此时核心态进程 也将调用“swtch ”.UNIX 进程调度策略是基于动态优 先数, 优先数的设置有如下特点:
UNIX的进程调度
因为系统的所有活动,无论是用户级上的还是内核 级上的,都发生在某个进程的现场内,所有UNIX 内核 只调度需要执行的进程。当使用传统的分时调度策略 的 时候,在用户级执行的进程不会被分入时间内执行。 只有当前的内核进程明确允许的情况下,才能切换到 在内核执行的另一个进程。

在传统Unix 中进程优先级的设置是通过 nice 和set priority 完成的;但不幸的是速 两种系统调用无法使用最高优先级的进程 得以立即进行,这是因为在循环调度(时间 片调度)机制下。当进程的时闻片用完后。 不论扰先级如何都让出CPU 。另外,由于 它是非抢占式内核,优先级高的进程不能 立即打断当前正在运行的进程,获得CPU 资源。这对一些要求进程立即抢占CPU , 并且一次运行完成的实时应用是不能满足 要求的.
• swtch 由“trap ”、“sleep ”、“expand ”、 “exit ”、“stop ”、“xalloc ”调用. 它是一个 非常特殊的过程, 分为三段执行, 涉及3 个核心态进 程.
• Unix 系统是多用户,多任务的操作系统, 它通过向进程提供与机器无关的抽象服务, 从而在Unix 实现之间提供了高度的程序的 可移植性。内核给每个进程提供了一个环境 让这个环境显得好像该进程是系统中正在执 行的唯一进程那样。这主要是赋予每个进程 自己的虚拟地址空间来实现的。系统调用可 以创建新进程,改变进程正在执行的程序, 以及终止进程,还可以使用其他许多系统调 用,其中包括动态分配未初始化数据的系统 调用。
UNIX进程的组成
进程控制块
• 进程基本控制块常驻内存,进程扩充控制块 不常驻,通常放在对话区。 • 把进程基本控制块的数据结构称为proc结构。 • 把进程扩充控制块的数据结构称为user结构。
进程控制块
正文段
在多道程序设计中,不同的进程可 能要调相同的程序。在UNIX中把可供 多个进程共享的程序称为进程的正文 段。正文表(text)用来管理可供共 享的的正文段。
正文段
数据段
• 进程的数据段包括进 程执行的非共享程序 和程序执行时用到的 数据; • UNIX把进程的数据段 分成用户栈区,用户 数据区和系统工作区; • 系统工作区又分为核 心区和user区 • 不同的区的功能是有 分工的
UNIX进程的状态
• UNIX系统的任何一个 进程在生命周期内状 态会不断发生变化, 在不同的时刻会处于 不同的状态 • 进程按状态链入进程 队列中,同一队列中 的进程用进程基本快 的p_link链接在一起 • 任何时刻进程只能在 一个队列中
UNIX的系统中的进程的特点
• 通常,一个进程要么是用户进程,要么是 系统进程;UNIX不这么区分,而是将各种 进程一视同仁,视为进程。 • 在UNIX系统中区分管态和目态。 • 通常,用户进程和系统进程的运行状态是 不同的,一个进程只能运行在同一个状态 下,但UNIX中进程可以在两种状态下切换。
UNIX操作系统
UNIX的系统结构 UNIX的系统中的进程的特点 UNIX的系统中的进程组成 UNIX进程的状态、(线程)状 态切换图 UNIX的进程调度
组员: 陈必冠、张晓荣 董雷鸣、汤瀚宇、汪德忠
UNIX的系统结构
UNIX是一个分层的操作系统系统体系结构
1) 硬件:在这个层状结构中,最里层是为操作系 统提供服务的硬件,是整个系统的物 “质基 础”。
2)内核:顾名思义,是整个操作系统的核心部分, 主要作用是一方面交互驱动协调硬件工作,另一 方面交互为系统外层程序和用户程序提供服务, 有了内核,系统外层程序和用户程序不需要关心 关于硬件的任何具体信息,只需知道如何与内核 交互操作即可,剩下的工作就交给内核去完成了。
3) SHELL: UNIX使用shell程序使得核心程序 和用户相互隔离。Shell程序只是一些比较简 单的程序,它在核心程序顶部运行,并且处理 所有用户的输入。具体而言,Shell起命令解 释作用,接受用户输入的终端命令,并把命令 转换成内核能够完成的动作,最后根据需要把 结果反馈给用户。
UNIX进程的状态
Hale Waihona Puke Baidu
UNIX进程的状态切换图
线程
• 线程是在一个进程内的基本调度单位, 线程可以看做是一个执行流,拥有记录 自己状态和运行现场的少量数据(栈段 和上下文)但没有单独的代码段和数据 段,而是与其它线程共享 • UNIX中基本没区分进程和线程,他们 都使用相同的描述方法,使用相同的调 度和管理策略。
相关文档
最新文档