自考02323操作系统概论通关宝典讲义.docx
3目 录操作系统概论1操作系统概论考试标准与考核内容 2Chapter 1 操作系统简介 5. 模块一 什么是操作系统5. 模块二 操作系统的发展5. 模块三 操作系统的特征6. 模块四 操作系统的功能7. 模块五 操作系统的体系结构8. 模块六 指令的执行8Chapter 2 进程管理 9. 模块一 进程的描述9. 模块二 进程的控制10. 模块三 操作系统内核11. 模块四 进程同步13. 模块五 进程通信17. 模块六 线程18Chapter 3 进程调度与死锁 20. 模块一 进程调度的功能与时机20. 模块二 进程调度算法21. 模块三 实时系统中的调度21. 模块四 进程切换22模块五 多处理器调度 22. 模块四 死锁23Chapter 4 内存管理 24. 模块一 存储器的层次结构24. 模块二 程序的链接和装入25. 模块三 连续分配存储管理方式26. 模块四 基本分页存储管理方式2834. 模块五 基于分页的虚拟系统30. 模块六 分段存储管理35. 模块七 Linux 的伙伴系统 37Chapter 5 文件系统 37. 模块一 文件38. 模块二 目录40. 模块三 文件系统的实现42Chapter 6 I/O 设备管理 44. 模块一 I/O 系统的组成44. 模块二 I/O 控制方式45. 模块三 缓冲管理46. 模块四 设备分配48. 模块五 I/O 软件原理49. 模块六 磁盘管理5045Chapter 1操作系统简介. 模块一 什么是操作系统知识点一 操作系统的定义 P19操作系统(OS)是一种复杂的系统软件,是不同程序代码、数据结构、数据初始化文 件的集合, 可执行。知识点二 操作系统的作用 P19(1)用户与硬件之间的接口(2)资源的管理者知识点三 操作系统的功能 P22从资源管理的观点看,操作系统的功能可分为:处理器管理、存储管理、文件管理和设 备管理。. 模块二 操作系统的发展知识点一 无操作系统 P22第一代计算机(19451955)使用电子管作为主要的电子器件,用插件板上的硬连线或 穿孔卡片表示程序, 没有用来存储程序的内存,无操作系统。整个计算机系统处于运行 因等待人工操作暂停运行, 这样一种不能连续自动工作的状态。知识点二 单道批处理系统的特点与缺点 P25单道批处理系统内存中只有一道作业,可以自动成批处理作业,特点是:(1)自动性(2)顺序性(3)单道性单道批处理系统与无操作系统的计算机系统相比而言,减少了等待人工操作的时间。但 是单道批处理系统中,由于作业独占 CPU 和内存, 当作业进行 I/O 时, CPU 只能等待 I/O 完成而无事可做,使得 CPU 资源不能得到充分利用。知识点三 多道批处理系统的特点与优缺点 P26多道批处理系统中,用户所提交的作业都先存放在外存中并排成一个队列,该队列称为 “后备作业队列”。由操作系统的作业调度程序按一定策略从后备作业队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源,以达到提高资源利用率和系统吞吐量的目的。它的特点是:(1)多道性(2)无序性(3)调度性(4)复杂性56多道批处理系统的优点是能够提高 CPU、内存和 I/O 设备的利用率和系统吞吐量。多道批处理系统的缺点是系统平均周转时间长,缺乏交互能力。周转时间是指从作业被 提交给系统开始到作业完成为止的时间。平均周转时间是指所有作业的周转时间之和与作业 数量的比值。知识点四 分时操作系统的特点和优点 P26分时操作系统允许多个用户通过终端同时使用计算机。分时操作系统的特点是多路性、独立性、及时性和交互性。分时操作系统的优点是向用户提供了人机交互的方便性,使多个用户可以通过不同的终 端共享主机。知识点五 实时操作系统的特点和应用领域 P27实时操作系统主要用于实时控制和实时信息处理领域。它的特点是:(1)多路性(2)独立性(3)及时性(4)交互性(5)可靠性批处理系统、分时系统和实时系统是三种基本的操作系统类型,而一个实际的操作系统 可能兼有三者或其中两者的功能特点。知识点六 操作系统产品现状 P27(1)主机操作系统: 主机操作系统是运行在大型主机上的操作系统,主要提供三类服 务:批处理、事务处理和分时处理。(2)服务器操作系统:服务器操作系统是运行在网络服务器上的操作系统, 可以通过 网络同时为众多用户服务,允许用户共享硬件和软件资源。服务器可提供打印服务、文件服 务和 Web 服务。(3)微机操作系统: 微机操作系统也称个人机操作系统,现代微机操作系统都支持多 道程序处理,就是通常所说的支持多任务。微机操作系统为单个用户提供良好的应用环境和 应用软件开发环境。(4)嵌入式操作系统:嵌入式操作系统的特征是小巧、实时性、可装卸、代码固化、 弱交互性、强稳定性、接口统一、低能耗。嵌入式操作系统的应用领域有掌上电脑、智能手机、数码相机、自动售货机、自动取款 机、工业控制设备、军工装备、游戏机、医疗设备和网络设备等。. 模块三 操作系统的特征知识点一 操作系统的特征 P28(1)并发:指两个或多个事件在同一时间间隔内发生。(2)共享:共享是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享有 两种方式, 即互斥共享和同时共享。(3)虚拟:是指通过某种技术把一个物理实体变成若干逻辑上的对应物。 (4)异步性: 进程以不可预知的速度向前推进。67. 模块四 操作系统的功能知识点一 内存管理 P29内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用内存,提高内 存的利用率,以及从逻辑上扩充内存以实现虚拟存储。为此, 内存管理应具有内存分配、内 存保护、地址映射和内存扩充功能。(1)内存分配:内存分配的主要任务是为每道程序分配内存空间。可采用两种分配方 式,即静态分配方式和动态分配方式。为了实现内存分配,需要以下数据结构和功能支持: 用于内存分配数据结构、内存分配功能和内存回收功能。(2)内存保护:内存保护的任务: 一是使操作系统内核的空间不会被用户随意访问, 以保证系统的安全和稳定;二是确保每道用户程序都在自己的内存空间中运行,互不干扰。 实现方式可以采用界限寄存器存放允许程序访问的地址区间的上限和下限值。(3)地址映射:CPU 执行程序过程中访问内存时,需要把程序的逻辑地址转变为物理 地址, 这个转换的过程称为地址映射。(3)内存扩充:内存扩充的任务是借助虚拟存储技术,从逻辑上扩充内存容量,使系 统能够向用户提供比物理内存大的存储容量。为了能从逻辑上扩充内存,系统必须具有内存 扩充机制, 以实现请求调入功能和置换功能。知识点二 进程管理 P32进程可以被认为是程序的执行实体。进程管理功能主要包括进程的描述与组织、进程控 制、进程同步、进程通信及进程调度。进程控制完成进程创建、撤销进程、唤醒进程和阻塞 进程等操作。知识点三 设备管理 P32设备管理主要完成用户的 I/O 请求, 为用户分配 I/O 设备。为了完成这些任务,设备管 理应具有以下功能:(1)缓冲管理(2)设备分配(3)设备处理(4)设备独立性和虚拟设备。知识点四 文件管理 P32(1)文件存储空间的管理:为每个文件分配必要的外存空间,提高外存利用率,并能 有助于提高访问文件的速度。(2) 目录管理:为每个文件建立目录项并对众多目录项进行有效组织。(3)文件的读、写管理和存取控制:根据用户的请求,从外存中读取数据或将数据写 入外存。防止未经核准的用户存取文件,防止冒名顶替存取文件,防止以不正确的方式使用 文件。知识点五 提供用户接口 P33为了方便用户使用操作系统,操作系统向用户提供了用户与操作系统之间的接口。操作 系统向最终用户提供命令行和图形用户接口,向程序员提供应用程序与操作系统之间的接口即系统调用。命令接口又可分为联机用户接口和脱机用户接口。78. 模块五 操作系统的体系结构知识点一 简单的监控程序模型 P34这种系统的功能相当简陋,任意时刻系统中只能运行一个任务,这样保证了对系统信息 的互斥访问,保护了系统数据的安全。知识点二 单体结构模型 P34单体结构模型中,所有的软件和数据结构都放置在一个逻辑模块中,对外层的用户程序 提供一个完整的内核界面系统调用。整个系统由若干具有一定独立功能的子程序组成, 系统各部分之间没有确定的位置概念,彼此间没有信息隐藏,允许任一子程序调用其它子程 序。因此,它的特点是结构简单, 便于理解和实现,而且系统所有部分都集中在一个内核中, 效率较高。缺点也很明显,由于各子程序间可以互相调用,系统结构关系复杂, 容易引起循 环调用和死锁。知识点三 层次结构模型 P35层次结构模型为系统中各个模块赋予了位置的理念。在操作系统的系统结构中,各个模 块都有相对固定的位置、相对固定的层次。层与层之间有严格的接口定义, 并且每一层只依 赖于它下层提供的服务而工作, 不能访问上层所提供的服务。这样组织的好处是方便了操作 系统的实现、调试和测试。“分层”结构使操作系统中各模块间的组织和依赖关系清晰明了, 系统的可读性、可靠性和可移植性都得到了增强。此外,对某一层的修改或替换只影响邻近 的两层,便于系统的维护和扩充。知识点四 客户/服务器模型与微内核结构 P36微内核技术的核心思想是核心功能外移,即把传统操作系统内核中的一些组成部分放到 内核之外作为一个独立的服务器进程来实现, 在微内核中只保留了操作系统最基本的功能, 包括处理机调度,存储管理和消息通信等,这些服务器借助于微内核传递消息来实现相互之 间的交互。微内核结构带来的好处是系统结构清晰,具有较高的灵活性、可靠性和可维护性;其次 是可靠性好;再者, 微内核体积小, 便于测试、管理和维护, 而且修改服务器的代码也不会 影响系统其他部分。另外,微内核结构完全适宜于网络环境及分布式计算模型。但是, 微内核设计有一个严重的缺点是效率不高。微内核结构的操作系统有两个发展方向:向通用操作系统的方向发展和嵌入式操作系 统。知识点五 动态可扩展结构模型 P37动态可扩展结构的基本思想就是在运行过程中,能够动态地实现系统行为扩展的结构, 也可称之为弹性结构。动态可扩展结构的操作系统具有很好的扩展性和灵活性。缺点是系统的安全性较低,内 核抽象的安全必须由用户来保证,这也增加了用户的负担。. 模块六 指令的执行知识点一 指令周期 P37一个单一指令需要的处理称为指令周期。知识点二 取指令和执行指令 P38(1) 取指令:在每个指令周期开始时,处理器从存储器中取一条指令。(2) 执行指令:取到的指令被放置在处理器的指令寄存器 IR 中。指令中包含确定处89理器将要采取动作的位, 处理器解释指令并执行要求的动作,这些动作可分为 4 类:处理器与存储器之间的指令或数据传送操作;处理器与 I/O 设备之间的指 令或数据传送操作; 算术运算操作或逻辑运算操作;控制操作。Chapter 2进程管理. 模块一 进程的描述知识点一 程序的顺序执行 P42先进入内存的程序先执行,在一个程序执行完毕之前,不能执行其他程序。具有的特 点如下:(1)顺序性; (2)封闭性;(3)可再现性。知识点二 程序的并发执行 P43程序的并发执行是指在同一时间间隔内运行多个程序。具有的特点如下:(1)间断性; (2)失去封闭性。知识点三 进程的定义 P44定义 1:进程是允许并发执行程序在某个数据集合上的运行过程。定义 2:进程是由正文段、用户数据段及进程控制块共同组成的执行环境。知识点四 进程的特征 P45(1) 并发性。(2) 动态性。(3) 独立性。(4) 异步性。(5) 结构特征。知识点五 进程和程序的比较 P45进程与程序的区别:(1)进程是动态的,程序是静态的;(2)进程是有生命期的,而程序没有生命期, 可以做文档资料,长期保存。进程与程序的联系:(1)进程总是对应至少一个特定的程序。(2)一个程序可以对应多个进程。知识点六 进程控制块的定义 P46进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。知识点七 进程控制块中的信息 P46(1)进程标识符信息: 进程标识符用于唯一标识一个进程。(2)处理机状态信息:进程控制块中保留的处理机状态信息通常包括通用寄存器、指 令计数器、程序状态字 PSW 和用户栈指针。(3)进程调度信息:进程状态信息、进程优先级和进程调度所需的其他信息。(4)进程控制信息: 程序和数据的地址、进程同步和通信机制、资源清单, 以及链接指针。知识点八 进程的 3 种基本状态 P47进程有三种基本状态:就绪态、执行态、 阻塞态。,10就绪态等待事件等待的事件发生三种状态之间的转换关系如图所示:时间片用完执行态进程调度阻塞态知识点九 Linux 的进程状态 P48(1) Linux 2.4.30可运行状态;可中断的等待状态;不可中断的等待状态; 暂停状态;僵死状态。(2) Linux 2.6.11可运行状态;可中断的等待状态; 不可中断的等待状态;暂停状态;跟踪状态;僵死状态;僵死_撤销状态。知识点十 进程的组织 P49(1) 链接方式:具有相同状态的进程的进程控制块用其中的链接字链接成一个队列。(2) 索引方式:根据所有进程的状态,建立几张索引表,索引表的每一个表项指向 一个 PCB 的物理块。(3) 进程队列:当系统中有很多进程时,可以把进程控制块用队列组织起来,形成 进程队列。. 模块二 进程的控制知识点一 进程的创建 P51通常在下列情况下需要创建新进程:(1)用户登录;(2)作业调度;(3)提供服务;(4)应用请求。 创建进程的步骤:(1)申请空白 PCB;(2)为新进程分配资源;(3)初始化进程控制块;(4)将新 进程插入就绪队列。知识点二 进程的阻塞 P52通常在下列情况下需要进行进程的阻塞和唤醒操作:(1)请求系统服务;(2)启动某种操作;(3)新数据尚未到达;(4)无新工作可做。 完成进程阻塞的简化过程:(1)将进程的状态改为阻塞态;(2)将进程插入相应的阻塞队列;(3)转进程调度 程序, 从就绪进程中选择进程为其分配 CPU。知识点三 进程的唤醒 P531011(1)将进程从阻塞队列中移出;(2)将进程状态由阻塞态改为就绪态;(3)将进程插入就绪队列。知识点四 进程的终止 P53通常在下列情况下, 进程会被终止:(1)当进程正常执行完毕,调用终止进程的系统调用,请求操作系统删除该进程;(2) 一个进程调用适当的系统调用, 终止另外一个进程;父进程终止其子进程的原因可能有以下几个:(1)子进程使用了超过它所分配到的一些资源;(2)分配给子进程的任务已不再需要; (3)父进程退出, 如果父进程终止, 那么操作系统不允许子进程继续。完成进程终止的一般过程:(1)从进程 PCB 中读进程状态;(2)若进程正在执行, 则终止进程的执行;(3)若 进程有子孙进程,在大多数情况下需要终止子孙进程。(4)释放资源。(5)将终止进程的 PCB 移出。. 模块三 操作系统内核知识点一 操作系统内核的定义和功能 P55操作系统内核是计算机硬件的第一次扩充,内核执行操作系统与硬件关系密切,执行频率高的模块,常驻内存。操作系统的功能包括:(1)支撑功能:中断处理、时钟管理和原语操作。(2)资源管理功能:进程管理、存储器管理和设备管理。知识点二 中断的定义 P55中断是改变处理器执行指令顺序的一种事件,这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。知识点三 中断的类型 P56(1)同步中断(内部中断或异常)(2)异步中断(外部中断):外部可屏蔽中断和外部不可屏蔽中断。知识点四 引起中断的原因 P56(1) 人为设置中断;(2)程序性事故;(3)硬件故障;(4)I/O 设备;(5)外部事件。知识点五 中断响应 P56(1)响应中断的条件: 开中断是响应中断的前提。(2)相应中断的时机:对于外部中断, CPU 每执行完一条指令都会检测是否有外部中断信号的到来。若有,则转中断处理过程。知识点六 单重中断的处理过程 P56(1) 系统关闭中断, 保护断点,把当前要执行的下一条指令的地址保存到内存中,以便中断返回时,能把这个地址恢复到程序计数器 PC 中,使被中断的程序从1112断点处开始继续执行。(2) 转中断处理程序。(3) 保护完现场后,要根据中断向量到中断向量表中找到与中断处理子例程入口地 址相关的信息, 由这些信息得到中断处理子例程的入口地址,以执行中断处理子例程, 完成本次中断处理的特定处理工作。(4) 恢复现场, 开中断, CPU 返回断点处继续执行被中断的程序。知识点七 中断向量和中断描述符表 P58(1)中断向量:中断向量是对不同中断源到来的信号编号,该编号是一个无符号整数,称为中断向量。(2)中断描述表:是一个系统表,每一个中断或异常与向量相联系。知识点八 时钟的重要性 P59时钟是计算机系统的脉搏。计算机中当前时间显示功能、即时通信程序等与时间相关的软件都需要时钟机制的支持。知识点九 计算机系统中的时钟 P59大部分 PC 中有两个时钟源,分别称为实时时钟和 OS 时钟。实时时钟、 OS 时钟和应用程序之间的关系如图:知识点十 操作系统的时钟机制 P60(1)OS 时钟管理硬件(可编程间隔定时器 RIT):功能是按指定的时间间隔产生时钟 中断, 测量逝去的时间,并触发与时间有关的操作。主要由 3 部分构成:晶振、计数器和保持寄存器。(2)时钟软件时钟驱动程序: 时钟驱动程序也称为时钟中断处理程序, 每产生一次时钟中断信号,操作系统内核要执行时钟驱动程序, 时钟驱动程序完成以下功能:维护日期和时间;递减当前进程在一个时间片内的剩余执行时间,并检查是否为零,防止进程运行超时; 对 CPU 的使用情况记账; 递减报警计数器。知识点十一 系统调用 P621213(1) 定义:系统调用是一群预先定义好的模块,它们提供一条管道让应用程序或一般 用户能由此得到核心程序的服务。系统调用是系统程序与用户程序之间的接口,在类UNIX 系统中, 系统调用多使用 C 语言提供的库函数作为接口。(2) 用户态执行:用户空间是指用户进程所处的地址空间,一个用户进程不能访问其他进程的用户空间, 只有系统程序才能访问其他用户空间。当 cpu 执行用户空间的代 码时,称该进程在用户态执行;系统态执行: 系统空间是指含有一切系统核心代码的地址空间, 当 CPU 执行系统核心代码时, 称进程处于系统态执行。(3) 系统调用与一般函数的区别: 系统调用运行在系统态(核心态),而一般函数运行在用户态; 系统调用与一般函数调用的执行过程不同; 系统调用要进行“中断处理”,比一般函数调用多了一些系统开销。知识点十二 系统调用的类型 P63(1) 进程控制类系统调用(2) 文件操作类系统调用(3) 设备管理类系统调用(4) 通信类系统调用(5) 信息维护类系统调用. 模块四 进程同步知识点一 进程同步的基本概念 P65在多道程序环境下,进程之间可能存在资源共享关系和相互合作关系。进程同步有两个 任务,一是对具有资源共享关系的进程,保证诸进程以互斥的方式访问临界资源。临界资源是必须以互斥方式访问的共享资源。二是对具有相互合作关系的进程,保证相互合作的诸进程协调执行。相互合作的进程可能同时存在资源共享的关系。知识点二 同步机制应遵循的准则 P66(1) 空闲让进(2) 忙则等待(3) 有限等待(4) 让权等待知识点三 整型信号量机制 P67整型信号量是表示共享资源状态且只能由特殊的原子操作改变的整型量,其完成同步功 能的原理是定义一个整型变量,用整型变量值来标记资源的使用情况。如果整型量O,说明有可用资源;如果整型量O,说明资源忙,进程必须等待。对于一次只允许一个进程访问的临界资源, 可定义一个用于互斥的整型信号量,并将其初始化为 1。整型信号量的值只能通过两个特定的原子操作 wait 和 signal 来改变。(1) 整型信号量的 wait 和 signal 操作1314(2) 用整型信号量实现进程互斥用整型信号量实现进程互斥的思想是:为必须互斥访问的临界资源 CS 定义一个互 斥信息量 mutex,将初始值置为 1,然后将 CS 放入 wait 和 signal 之间。当 CS可访问时,wait 才能正常结束使进程进入 CS,如图所示:(3) 用整型信号量实现进程的协调(4) Linux 中的整型信号量知识点四 记录型信号量机制 P671415(1)记录型信号量的数据类型(2)记录型信号量的 wait 和 signal 操作知识点五 AND 型信号量机制 P73(1) AND 型信号量机制的引入(2) AND 型信号量机制的实现知识点六 生产者消费者问题的描述 P74(1) 问题描述:生产者进程生产消息,并将消息提供给消费者进程消费。(2) 需要解决的问题:实现任意两个进程对缓冲池的互斥访问;实现对生产者进程和消费者进程的“协调”。(3) 信号量的设置: 设置一个互斥的信号量 mutex 初值为 1;设置两个资源信号量。(4) 同步程序:1516知识点七 读者写者问题的描述 P74(1) 问题描述: D 是多个进程共享的数据区,允许多个进程同时读 D 区, 仅允许一个进程写 D 区, 且有进程写 D 区时, 不能有任何其他进程读或写 D 区。(2) 信号量的设置:全局变量 readcount 用于对进入共享区的读进程计数;互斥信号量rmulex 用于对多个进程共享的全局变量 readcount 的互斥访问;互斥信号量 wmutex 用于实现读操作与写操作的互斥,以及写操作与写操作的互斥。(3) 同步进程:1617知识点八 管程的定义和说明 P77管程是描述共享资源的数据结构和在数据结构上的共享资源管理程序的集合。对管程的说明:(1) 管程是可供程序员调用的软件包。(2) 每次只有一个进程调用管程执行。(3) 管程是一种编程语言的构件,所以编译器知道它们很特殊,并可以调用与其他过程不同的方法来处理它们。. 模块五 进程通信知识点一 共享存储器系统 P80在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信,共享存储系统可分为两种类型。(1)基于共享数据结构的通信方式。在这种通信方式中, 要求诸进程公用某些数据结构, 以实现进程间的信息交换,(2)基于共享存储区的通信方式。为了传输大量数据, 在存储器中划出一块共享存储区,进程可以通过对共享存储区中的数据的读或写来实现通信。知识点二 消息传递系统 P801718在消息传递系统中, 进程间通过操作系统提供的一组通信程序传递格式化的消息。这种方式对应用程序隐藏了通信实现的细节,使通信过程对用户是透明的。消息传递系统中,根据源进程向目标进程传递消息方式的不同, 可分为直接通信方式和间接通信方式。知识点三 管道通信 P81管道是连接读写进程的一个特殊文件,也被称为管道文件。管道文件存在于外存中, 其中的消息没有固定长度,能用于进程间大量的信息通信。向管道提供输人的发送进程以字 手符流的形式将大量的数据送入管道(写)。接受管道输出的接收进程,从管道中接收数据(读) 。知识点四 消息缓冲队列 P81消息缓冲队列机制广泛用于本地进程之间的通信。该机制包括数据结构、发送原语和 接收原语.每个进程都有自己的消息缓冲队列和消息缓冲区。发送进程发送消息时, 先申请 一个消息缓冲区,将要发送的消息从发送进程的发送区放入消息缓冲区。然后, 调用发送原 语将消息发送给接收进程,发送原语将发送缓冲区插入接收进程的消息缓冲队列。接收消息的进程通过调用接收原语将该进程消息缓冲队列中的消息复制到自己的消息接收区。. 模块六 线程知识点一 线程的概念 P81线程是进程的一个实体, 是被系统独立调度和分派的基本单位。18知识点二(1)(2)知识点三线程的分类 P82用户级线程内核级线程线程的 3 种基本状态 P82知识点四 线程控制块 P8219(1)定义:每个线程都由一个数据结构表示,包括它的基本状态、标识及记账信息。 这个数据结构就是线程数据块。(2)线程数据块包含线程标识信息、处理机状态信息、线程调度信息和线程控制信息。(3)组织方式: 链接方式。知识点五 线程与进程的关系 P82(1)资源和调度。(2)地址空间资源。(3)通信关系。(4)并发性。(5)系统开销。知识点六线程创建 P84(1)用户线程的创建: 通过调用线程库中的实用程序完成的。(2)内核线程的创建: 内核线程的创建是由内核完成的。知识点七 线程的终止 P84原因:(1)正常结束。(2)异常结束。(3)外界干预。线程终止的过程:(1)根据被终止线程的标识符, 从 TCB 集合中检索出该线程的状态。(2)若被终止线程正处于运行状态, 应立即终止该线程的执行,并置调度标志为真,用于指示该线程被终止后应重新执行线程调度程序。(3)将被终止线程的 TCB 从所在队列(或链表)中移出,等待其他程序来搜集信息。知识点七 进程的调度与切换 P85(1)用户线程的调度与切换。(2)内核线程的调度与切换。知识点八 引起线程阻塞的事件 P85(1)请求系统服务。(2)启动某种操作。(3)新数据尚未到达。知识点九 用户线程阻塞过程 P86(1)停止该线程的执行,将该线程的状态改为阻塞态。(2)将该线程控制块插入相应的线程阻塞队列。(3)将该线程所属进程的状态改为阻塞态。(4)将该线程所属进程的进程控制块插入相应的进程阻塞队列。(5)将控制传递给进程调度程序,重新进行进程调度。知识点十 用户线程唤醒过程 P861920(1)将该线程所属进程的状态由阻塞改为就绪。(2)将该线程所属进程的进程控制块从进程阻塞队列中移出。(3)将该线程所属进程的进程控制块插入进程就绪队列。(4)将该线程状态由阻塞改为就绪。(5)将该线程的线程控制块从线程阻塞队列中移出。(6)将该线程的线程控制块插人线程就绪队列。知识点十一 内核线程阻塞过程 P86(1)停止该线程的执行,将该线程的状态改为阻塞态。(2)将该线程控制块插人相应的线程阻塞队列。(3)将控制传递给线程调度程序,重新进行线程调度。知识点十二 内核线程唤醒过程 P86(1)将该线程状态由阻塞态改为就绪态。(2)将该线程的线程控制块从线程阻塞队列中移出。(3)将该线程的线程控制块插入线程就绪队列。知识点十三 线程的同步 P86一个进程中的所有线程共享同一个地址空间和诸如打开的文件之类的其他资源。 一个 线程对资源的任何修改都会影响同一个进程中其他线程的环境。因此, 需要对各种线程活动 进行同步, 保证诸线程以互斥的方式访问临界资源,以使它们互不干扰且不破坏数据结构。线程同步的机制有原语操作和信号量机制。知识点十三 线程通信 P86线程通信是指线程之间的信息交换。Chapter 3进程调度与死锁. 模块一 进程调度的功能与时机知识点一 进程调度的功能 P88进程调度功能由操作系统内核的进程调度程序完成,在 Linux 内核中,进程调度功能的实现从调用内核函数 schedule() 开始。进程调度的功能是按照某种策略和算法从就绪态 进程(在 Linux 中是可执行进程)中为当前空闲的 CPU 选择在其上运行的新进程。知识点二 进程调度的时机 P88当一个进程运行结束(包括正常结束和异常结束) 、进程阻塞、中断返回、在支持抢 占式调度的系统中有比当前运行进程优先级更高的进程到来、当前运行进程的时间片用完 时,系统都会通过执行进程调度程序重新进行进程调度。2021. 模块二 进程调度算法知识点一 选择调度方式和算法的若干准则 P88(1) 周转时间短(2) 响应时间快(3) 截止时间的保证(4) 系统吞吐量高(5) 处理机利用率好知识点二 调度算法 P89(1) 先来先服务调度算法:从就绪队列的队首选择最先到达就绪队列的进程,为该进程分配 CPU。适合长进程, 不利于短进程, 短进程等待时间相对运行时间而言太长。(2) 短进程优先调度算法:从就绪队列中选择估计运行时间最短的进程,将处理机分配 给它,使它立即执行并一直执行完成, 或发生某事件而被阻塞放弃处理机时,再重新 调度。它的优点是能有效降低进程的平均等待时间,提高系统的吞吐量。它的缺点有: 对长进程不利、不能保证紧迫进程的及时处理、进程的长短根据用户的估计而定, 故 不一定能真正做到短进程优先。性能分析可以得出优先调度算法能降低系统的平均周 转时间和带权平均周转时间。(3) 优先权调度算法:包含非抢占式优先权调度算法和抢占式优先权调度算法。优先权 的类型有静态优先权和动态优先权。优先权调度算法的一个主要问题是无穷阻塞, 或 称饥饿问题。解决方案之一是老化技术。(4) 时间片轮转调度算法:系统将所有的就绪进程按先来先服务的原则,排成一个队列, 每次调度时把 CPU 分配给队首进程,并令其执行一个时间片。当时间片用完时, 调度 程序终止当前进程的执行,并将它送到就绪队列的队尾。时间片大小的确定应考虑: 系统对响应时间的要求、就绪队列中进程的数目、系统的处理能力。时间片轮转调度 算法的性能很大程度上依赖于时间片的大小。(5) 多级队列调度:将就绪队列分成多个独立队列,根据进程的某些属性, 如需要占用 的内存大小、进程优先权和进程类型, 进程会被永久地分配到一个队列。每个队列有 自己的调度算法。(6) 多级反馈队列调度:建立多个优先权不同的就绪队列,为每个队列赋予大小不同的 时间片。多级反馈队列算法的设计要考虑以下几个方面的问题: 就绪队列的数量、根 据进程优先权确定进程应该进入哪个就绪队列的算法、用以确定进程何时转移到较高 优先权队列的算法、用以确定进程何时转移到较低优先权队列的算法、用以确定进程 在需要服务时应该进入哪个队列的算法。. 模块三 实时系统中的调度知识点一 实现实时调度的基本条件 P94(1) 提供必要的调度信息:就绪时间、开始截止时间和完成截止时间、 处理时间、资源 2122要求、优先级。(2) 系统处理能力强: 在实时系统中, 通常有多个实时进程,若处理机的处理能力不 够强,处理速度不够快, 从而使某些实时进程不能得到及时处理,可能发生难以预料的后果。单处理机情况下必须满足的限制条件:单处理机情况下必须满足的限制条件:(3) 采用抢占式调度机制:当一个优先权更高的进程到达时,允许将当前进程暂时挂起, 而令高优先权进程立即投入运行。抢占式调度算法根据抢占 CPU 的时机不同,可以分 为基于时钟中断的抢占和立即抢占。(4) 具有快速切换机制: 对外部中断的快速响应能力和快速的进程切换能力。知识点二 常用的几种实时调度算法 P95(1) 最早截止时间优先算法: 根据进程的开始截止时间确定进程的优先级。(2) 最低松弛度优先算法:松弛度用来表示一个实时进程的紧迫程度。在使用最低松弛度优先算法时,调度程序在调度时机到来时,每次选择松弛度 L 最小的进程,把 CPU 分配给该进程。. 模块四 进程切换知识点一 进程切换步骤 P98(1) 保存包括程序计数器和其他寄存器在内的 CPU 上下文环境。(2) 跟新被替换进程的进程控制块。(3) 修改进程状态, 把执行态改为就绪态或者阻塞态。(4) 将被替换进程的进程控制块移到就绪队列或阻塞队列。(5) 执行通过进程调度程序选择的新进程,并更新该进程的进程控制块。 (6) 更新内存管理的数据结构。(7) 恢复被调度程序选中的进程的硬件上下文。模块五 多处理器调度知识点一 多处理器系统的类型 P982223(1) 紧密耦合的多处理器系统:通常通过高速总线或高速交叉开关实现多个处理器之间 的互连,它们共享主存储器系统和 I/O 设备,并要求将主存储器划分为若干个独立 访问的存储器模块, 以便多个处理器能同时对主存进行访问。(2) 松弛耦合的多处理器系统:通常通过通道或通信线路来实现多台计算机之间的互连。(3) 对称多处理器系统:属于同构的多处理器系统,其中所