重庆大学 操作系统复习大纲

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

版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
序与服务通过信息交换来通信。 虚拟机 低层硬件被科龙称多个独立的虚拟机 虚拟机提供了底层裸硬件相同的接口 操作系统功能建立在虚拟机之上 优劣: 虚拟机概念提供了完整的系统资源保护因为每个虚拟机都是独立于其他虚拟机的 (保证没有 对资源的直接分享) 一个虚拟机系统是 OS 研究与开发的完美容器 虚拟机概念很难去实现,因为提供与底层及其完全一样的拷贝需要大量工作。 策略:需要做什么 机制:怎样去做 策略和机制的分离是一个很重要的原则,当策略改变的时候它提供了最大的灵活性。 极端:微内核,全部机制,几乎无策略 第四章 进程不只是程序,它包括: 文本段(可执行的机器码) 数据段(全局变量) 处理器、寄存器的内容 栈,包含了临时数据,如函数的参数,返回地址,局部变量 堆,用于动态分配的内存 其他资源,如打开的文件 程序和进程的比较: 程序是被动的实体,储存在磁盘上 进程是活动实体,包括程序之外的相关资源集合 多个进程可以执行同一个程序,但是 他们被认为是独立的操作序列,虽然他们共享同一文本段 其他资源常常变化(数据段不同) 进程执行中会改变状态 New 进程被创建 Running 指令被执行 Waiting 进程等待其他事件发生 Ready 进程等待被分配给处理器 Terminated 进程和完成执行
First try
违反有空让进原则 没有保留每个进程状态的足够信息,只记住了那个进程能进入临界区。 它要求进程在临界区中执行时要严格交替。 如果当 turn==0 且 P1 就绪想要进入临界区, 那么 尽管 P0 不临界区,在 P1 也无法进入。
版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
用户模式 1 监视程序模式 0 特权指令:避免用户程序通过发出非法 I/O 指令打乱系统的正常操作 I/O 指令都是特权指令,硬件只允许特权指令在监视模式下执行 若想在用户模式执行,认为非法,捕捉给 OS 特权模式下用户程序不能获得控制权 内存保护:避免用户程序直接访问其他用户程序或操作系统的内存 CPU 保护:避免用户程序被困在无限循环中并无法把控制权返回 OS 计时器:在一个周期后中断 CPU,保证 OS 得到控制权(通过中断服务程序) ,timer 也用于 实现分时。 系统调用 操作系统本身没有做任何有用的事情 但他为用户程序提供了有用的服务,而提供这些服务的方式就是系统调用。 System call—操作系统与用户程序之间的接口 用户程序只能请求 OS 通过系统调用提供的服务 不同 OS 的系统调用接口是不一样的 也被称为 supervisor call 用户程序不能直接进入 OS 只能通过异常或特殊的指令 系统调用与库函数的对比: 系统调用会被捕捉到 OS,库函数则不会,所以系统调用更慢 库函数与用户自定义函数相同, 我们可以用自己的版本置换一个已存在的库函数, 却不能置 换系统调用 一个 OS 中的系统调用可能在另一个系统中成为库函数 第三章 系统结构: 现代操作系统这样庞大而复杂的系统为了能正常工作并能容易修改, 必须认真设 计。 通常方法是将这个任务分成小模块而不只是一个单块系统。 每个这样的模块都应该是定 义明确的系统部分,且具有定义明确的输入、输出和功能。 简单结构 一些系统没有很好的组织,开始时是小、简单、有限的系统,后来就变得很复杂 分层结构 操作系统分成若干层,每层建立在较低层之上。较高层可以调用较低层的操作。 分层结构的主要难题: 每一层的精确地定义 效率不高 微内核 将所有非基本部分从内核中移走,并将它们当做系统级程序和用户级程序来实现 需要保留在微内核中的部分:进程管理 内存管理 通信设备 微内核只要功能是提供客户程序和运行在用户空间的各种服务之间进行通信的能力, 客户程
版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
状态变化: 允许:进程被创建并已就绪去被执行 调度算法分派:调度器选择一个进程去执行 中断:一个中断产生 I/O 等待:进程等待 I/O 完成或者等待一个信号 I/O 完成:I/O 完成或者事件发生 退出:进程完成执行 进程控制块: 每个进程在 OS 内用进程控制块来表示。 Process number 进程号,进程的标识 Program counter(PC) Scheduling information 包括进程属性 进程调度 让执行中的进程由于某种原因不能继续进行时,操作系统需要决定接下来运行哪一个进程 三个主要概念: 正在运行的进程发生了什么 如何追踪每个进程将做作的工作 如何决定接下来运行哪一个进程 上下文切换 将 CPU 切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。 上下文切换是纯消耗的,依赖于底层处理器 上下文切换成为性能瓶颈,程序员使用新的结构去尽量避免它 调度 CPU 调度(短调度) 操作 把 CPU 分配给就绪进程 频率 100ms 执行一次 目标 保证在分时系统中良好的响应时间
进程可以在不同队列之间移动
第七章 背景:协作进程可以通过内核提供的进程间通信设备分享内存块 统一进程的多线程可以通过全局变量分享内存 共享数据的并发访问会导致数据不一致 确保共享同一逻辑地址空间的协作进程有序执行并维护数据一致性的机制。 有限缓冲问题的共享内存解决方案允许在缓冲内同时最多有 buffer_size-1 项。 多个进程并发访问和操作统一数据且执行结果与访问发生的特定顺序有关,称为竞争条件。 避免竞争条件的方法: 找到一种方法,不允许一个以上的进程同时读写共享数据 访问必须序列化,即使进程试图同时访问。 临界区:存在对共享资源配进行访问的一段代码。 临界区问题解决的要求: 1、 互斥:临界区不能同时有两个进程运行 2、 有空让进:临界区外的进程不能阻止其他进程进入临界区 3、 有限等待:进程不能无限制的等待 4、 速度:CPU 的数量和速度不能被假设
版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
2、 资源共享 线程默认共享它们所属进程的内存和资源,线程间通信不必通过内核。 3、 经济 与进程相比创建一个新线程节省了很多的时间和资源,上下文切换也更经济。 4、 多处理器体系结构的利用 每个线程能并行运行的不同的处理器上 多线程的实现: 用户层的用户线程 通过线程库来实现,线程库提供对线程创建、调度和管理的支持而无需内核支持 优点:线程管理和上线文切换不需要捕捉到内核,节省 CPU 周期 允许每个进程拥有自己的调度算法 缺点:任何用户级线程阻塞系统调用就会导致整个进程阻塞(即使其他线程已经就绪) 在一个多处理器系统中,用户级线程不能并行。 内核层的内核线程 由操作系统直接支持,内核在其空间内执行线程的创建、调度和管理。 缺点:比用户级线程慢 优点:当一个线程阻塞时,内核能调度应用程序内的另一个线程以执行 在多处理器环境下,内核能在不同处理器上调度线程 第六章 CPU 调度 在内存中选择已就绪的进程,并分配到 CPU 中,也称为短期调度 CPU 调度发生的情况是因为进程状态的如下切换: 1、从运行到等待(I/O) 2、从运行到就绪(中断) 3、从等待到就绪(I/O 完成) 4、终止 只有 1 和 4 是非抢占的,一旦 CPU 被分配给一个进程,那么该进程会一直使用 CPU 知道进 程终止或切换到等待状态释放 CPU. 分派 分派程序是一个模块, 用来将 CPU 的控制权交给由短期调度程序所选择的进程, 功能包括: 切换上下文 切换到用户模式 跳转到用户程序的合适位置以重启这个程序 分派程序停止一个进程而启动宁一个进程执行所要花费的时间称为分派延迟。 调度算法: FCFS SJF(shortest job first) 最短作业优先调度算法 Priority scheduling 给进程设置优先权,优先权的先分配 Round Robin scheduling 就绪队列作为循环队列处理,CPU 调度程序为每个进程分配不超过 一个时间片间隔的 CPU Multilevel queue (多级队列) 就绪队列再分为多个队列,每个队列有不同的优先权及算法软件学院操作系统复习大纲
作业调度(长期调度) 操作 创建进程把他们加入就绪序列 频率 几分钟 目标 在控制多道程序程度和保证很少的 I/O 和 CPU-bound 进程的境况下保持良好的通过量 内存调度(中期调度) 操作 根据可利用的内存将进程移进或移出内存 频率 在短、长期调度之间 目标 当长调度高估对进程的需要时减少多道程序的程度 生产者与消费者问题: 生产者进程产生被消费者进程消耗的信息 这个问题是协作系统的范例 要允许生产者与消费者同时进行,需要: 一个缓冲被生产者填充,被消费者清空 去让生产者消费者同步 根据缓冲的大小 无限缓冲:生产者消费者问题 有限缓冲 缓冲由 OS 通过 interprocess communication 设备(IPC 进程间通信)提供 程序员利用系统调用填充或清空缓冲 缓冲液可以存在于一片共享的内存,消费者、生产者都可以访问 在此情况下,程序员必须自己管理共享缓冲 IPC 提供了一个机制允许进程在没有共享相同地址空间的情况下通信、同步他们的操作。 第五章 进程是资源分配的单元 进程是调度的单元 一个传统进程只有单个线程控制 如果我们把以上面两点概念分离并允许多线程控制同一个进程,那么它能同时做多个任务。 进程用来把资源聚集在一起,线程作为 CPU 调度以执行的实体。 线程是现代操作系统中 CPU 使用的基本单元,也成为轻量级进程。 多线程 允许多个线程在同一个进程里 他们分享这个进程的资源,如代码段、数据段、开放文件等。 但是每个线程必须拥有私有线程上下文(包括 CPU 寄存器组和其他状态信息 PC)以及私 有栈。 线程的优势: 1、 响应度高 允许其他线程继续响应用户即使一个或多个阻塞或在执行冗长的操作。
版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
第一章 计算机系统可以分为:硬件 操所系统 应用程序 用户 什么是操作系统?有不同的观点 控制程序:操作系统控制、协调各个用户的各种应用程序对硬件的使用 资源管理: 操作系统决定如何和为各个程序和用户分配资源, 以便计算机系统能有效而公平 地运行。 扩展的机器:操作系统抽象了计算机硬件,提供给用户友好的界面。 OS 没有明确的定义,它的存在为创建一个可用的计算机系统提供了可行的解决方案 操作系统的内核为资源(内存、处理器、I/O 设备)提供了最底层的抽象,包括: 进程管理 内存管理 文件系统 设备管理 大型机和小型机有专用的 OS,发展经历了批处理系统、多道程序系统、分时系统 多道程序系统:OS 同时将多个作业保存在内存中,CPU 在它们之间切换。 分时系统:CPU 在内存和磁盘中的工作间切换。 为快速响应时间的交互式计算机系统而设计。 功能迁移: 总的来说, 研究大型机和微型机的操作系统会发现许多大型机所具有的功能以为 微型机所采用。 第二章 Bootstrap(引导程序) 为了使计算机开始运行,例如当电源打开时,它需要一个初始化程序。 必须把操作系统内核从永续性储存(磁盘、网络)加载到内存 然后控制权就转移到了拥有最基本环境的 OS 入口 这就是驱动操作系统 Boot-loader 不是操作系统的一部分。 Trap(异常) 中断: 被外围设备触发 异步 异常:也称为软件产生的中断 异常是处理器执行指令时发现的错误情况,例如除以 0,无效的内存访问。 同步 硬件保护: 为确保操作正常,必须保护操作系统和所有其他程序及数据使之不受任何故障程序影响。 硬件保护方案: 双模式操作: 避免用户程序接管 OS 的部分程序并利用其去重写别的程序或是修改 OS 本身。
版权所有:08 级 Daphne·Yuan
软件学院操作系统复习大纲
Multilevel feedback queue scheduling 多级反馈队列调度 结论: 在实际中正确运用比理论上的可行更难。 由于有多种调度方法,需要某种方法从中选择它们 解决方法是调度策略与机制的分离。 调度算法参数化,但参数的设置依赖于用户
相关文档
最新文档