版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021考研计算机基础课程操作系统知识点总结第1章操作系统概述11操作系统的概念、特征、功能和提供的服务11.2操作系统的发展与分类31.3操作系统的运行环境61.4操作系统体系结构8第2章进程管理92进程与线程92.2处理机调度1823同步与互斥232.4死锁36第3章内存管理443内存管理基础443.2虚拟内存管理53第4章文件管理574文件系统基础574.2文件系统实现604.3磁盘组织与管理64第5章输入输出管理665I/O管理概述665.2 I/O核心子系统68第6章总结71第章 操作系统概述1.1操作系统的概念、特征、功能和提供的服务1.1.1操作系统的概念操作系统的目标1) 方便
2、性(用户的观点)提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别,使计算机更容易使用。2) 有效性(系统管理人员的观点)使CPU、I/O设备和存储空间得到有效利用:管理和分配硬件、软件资源,介理地组织汁算机的工作流程。3) 可扩充性OS应采用层次化结构,以便于增加新的功能层次和模块,并能修改老的功能层次和模块。4) 开放性遵循标准规范,方便地实现互连,实现应用的可移植性和互操作性。开放性是指系统能遵循世界标准规 范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,均能彼此兼容,可方 便地实现互连。1.1.2操作系统的特征操作系统具有并发、共享、虚拟和不确泄性
3、四大特征。英中,最重要的是并发特征,英他三个特征都是 以并发为前提的。(1) 并发(Concurrence)正是系统中的程序能并发执行这一特征,才使得OS能有效地提高系统中的资源利用率,增加系统的 吞吐虽:。并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生。并发性是 指两个或多个事件在同一时间间隔内发生。(2) 共享(Sharing)一般情况下的共享与操作系统环境下的共享其含义并不完全相同。在操作系统环境下,所谓共享 (Sharing),是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用,相应地,把这种资源共同使 用称为资源共享,或称为资源复用。1.
4、互斥共享方式2. 同时访问方式(3) 虚拟(Virtual)操作系统中的所谓"虚拟” (Virtual),是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。 物理实体(前者)是实的,即实际存在的,而后者是虚的,仅是用户感觉上的东西。相应地,用于实现虚拟的 技术称为虚拟技术。在操作系统中利用了两种方式实现,即时分复用技术和空分复用技术。(4)异步(Asynchronism)多道程序环境下,系统允许多个进程并发执行。单处理机环境下,由于系统中只有一台处理机,因而每 次只允许一个进程执行,其余进程只能等待。由于资源等因素的限制,使进程的执行通常都不可能"一气呵 成”,而是以
5、“停停走走”的方式运行。1.1.3操作系统的功能传统的OS中应具有处理机管理、存储器管理、设备管理和文件管理等基本功能。为了方便用户使用 OS,还需向用户提供方便的用户接口。(1)处理机管理功能1. 进程控制2. 进程同步3. 进程通信4. 调度1)作业调度。2)进程调度。(2)存储器管理功能1. 内存分配内存分配的主要任务是:1)为每道程序分配内存空间,使它们“各得其所”。2)提高存储器的利用率,尽量减少不可用的内存空间(碎片)。3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。OS在实现内存分配时,可采取两种方式:1)静态分配方式。每个作业的内存空间是在作业装入时确
6、定的,在作业装入后的整个运行期间不允许 该作业再申请新的内存空间,也不允许作业在内存中“移动”。2)动态分配方式。每个作业所要求的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程 中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中'移动”。2. 内存保护内存保护的主要任务是: 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中 去执行。3. 地址映射4. 内存扩充为了能在逻辑上扩充内存,系统必须设置内存扩充机制(包含少量的硬件),用于实现下述各功能:1)请求调
7、入功能。2)置换功能。(3)设备管理功能设备管理的主要任务如下:1)完成用户进程提岀的"0请求,为用户进程分配所需的I/O设备,并完成指泄的I/O操作。2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。 设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。1. 缓冲管理2. 设备分配3. 设备处理(4)文件管理功能1. 文件存储空间的管理2. 目录管理3. 文件的读/写管理和保护1)文件的读/写管理。2)文件保护。1.1.4操作系统所能提供的服务1.OS作为用户与计算机硬件系统之间的接口OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统
8、。用户在OS帮助下能够方便、 快捷、可靠地操纵计算机硬件和运行自己的程序。1)命令方式。这是指由OS提供了一组联机应用程序。2)系统调用方式。OS提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来实现 与操作系统的通信,并取得它的服务。3)图形、窗口方式。这是当前使用最为方便、最为广泛的接口,它允许用户通过屏幕上的窗口和图标来 实现与操作系统的通信,并取得它的服务。2.OS作为计算机系统资源的管理者硬件和软件资源分为四类:处理机、存储器、I/O设备和文件(数据和程序)。OS的主要功能是对这类 资源进行有效的管理:1)处理机管理是用于分配和控制处理机:2)存储器管理主要负责内存的
9、分配与回收:3)I/O设备管理是负责I/O设备的分配(回收)与操纵:4)文件管理是用于实现对文件的存取、共享和保护。OS的确是计算机系统资源的管理者。3.OS实现了对计算机资源的抽象1.2操作系统的发展与分类1.2.1操作系统的发展(1)未配置操作系统的计算机系统1. 人工操作方式早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它 们将纸带(或卡片)上的程序和数据输入计算机,然后启动il算机运行。仅当程序运行完毕并取走讣算结果后, 才允许下一个用户上机。缺点:1) 用户独占全机,即一台计算机的全部资源由上机用户所独占。2) CPU等待人工操作。当用户
10、进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。2.脱机输入/输岀(Off-Line I/O)方式为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外用机的控制下,把纸带(卡片)上 的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上髙速地调入内存。减少了 CPU 的空闲时间,提髙I/O速度。(2) 单道批处理系统1. 单道批处理系统(Simple Batch Processing System)的处理过程为实现对作业的连续处理,需要先把一批作业以脱机
11、方式输入到磁带上,并在系统中配上监督程序 (Monitor),在它的控制下,使这批作业能一个接一个地连续处理。英自动处理过程是:首先,由监督程序将 磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完成时,又把控制权交还给监督 程序,再由监督程序把磁带(盘)上的第二个作业调入内存。计算机系统就这样自动地一个作业一个作业地进 行处理,直至磁带(盘)上的所有作业全部完成,这样便形成了早期的批处理系统。由于系统对作业的处理都 是成批地进行的,且在内存中始终只保持一道作业,故称此系统为单道批处理系统(Simple Batch Processing System) o2. 单道批处理系统
12、的缺点系统中的资源得不到充分的利用。因为在内存中仅有一道程序,每逢该程序在运行中发岀I/O请求后, CPU便处于等待状态,必须在其I/O完成后才继续运行。I/O设备的低速性,更使CPU的利用率显著降低。 如图1-5所示,在t2t3、t6t7时间间隔内CPU空闲。中断请求V0中騎求朋掰一亠 启动K) K)完成启动1/0 I/O完成L-1r-15r-1躲中断価邸 緘中断图1-1单道程序的运行情况(3) 多道批处理系统(Multiprogrammed Batch Processing System)1. 多道程序设计的基本概念为了进一步提高资源的利用率和系统吞吐量,在20世纪60年代中期引入了多道程
13、序设计技术,由此形 成了多道批处理系统。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队 列”;然后,由作业调度程序按一左的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系 统中的各种资源。图1-2多道程序的运行情况2. 多逍批处理系统的优缺点多道批处理系统的优缺点如下:1)资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态:在内存中装 入多道程序可提高内存的利用率;此外还可以提髙I/O设备的利用率。2)系统吞吐疑大。 CPU和其它资源保持“忙碌”状态; 仅当作业完成时或运行不下去时才进行切换,系统开销小。3)平均周转时间长。由于作业
14、要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚 至几天。4)无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进彳亍交互, 修改和调试程序极不方便。3. 多逍批处理系统需要解决的问题多道批处理系统是一种复杂有效的系统,为使系统中的多道程序间能协调地运行,系统必须解决下述一 系列问题:1)处理机争用问题。既要能满足各道程序运行的需要,又要能提髙处理机的利用率。2)内存分配和保护问题。系统应能为每道程序分配必要的内存空间,使它们“各得其所”,且不会因某 道程序出现异常情况而破坏其它程序。3)I/O设备分配问题。系统应采取适当的策略来分配系统中的I/O设备,
15、以达到既能方便用户对设备 的使用,又能提高设备利用率的目的。4)文件的组织和管理问题。系统应能有效地组织存放在系统中的大量的程序和数据,使它们既便于用 户使用,又能保证数据的安全性。5)作业管理问题。系统中存在着各种作业(应用程序),系统应能对系统中所有的作业进行合理的组织, 以满足这些作业用户的不同要求。6)用户与系统的接口问题。为使用户能方便的使用操作系统,OS还应提供用户与OS之间的接口。(4)分时系统(Time Sharing System)1. 分时系统的引入推动分时系统形成和发展的主要动力,是为了满足用户对人一机交互的需求,形成一种新型OS。2. 分时系统实现中的关键问题在多道批处
16、理系统中,用户无法与自己的作业进行交互的主要原因是:作业都先驻留在外存上,即使以 后被调入内存,也要经过较长时间的等待后方能运行,用户无法与自己的作业进行交互。1) 及时接收2) 及时处理(5) 实时系统(Real Time System)1. 实时系统的类型随着汁算机应用的普及,实时系统的类型也相应增多,下而列出当前常见的几种:1) 工业(武器)控制系统。2) 信息査询系统。3) 多媒体系统。4) 嵌入式系统。2. 实时任务的类型1) 周期性实时任务和非周期性实时任务。2) 硬实时任务和软实时任务。1.2.2操作系统的分类1. 单用户单任务操作系统1) CP/M2) MS-DOS2. 单用户
17、多任务操作系统单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并 发执行,从而有效地改善了系统的性能。目前在32位微机上配宜的操作系统基本上都是单用户多任务操作 系统,其中最有代表性的是由微软公司推出的Windowso3. 多用户多任务操作系统多用户多任务操作系统的含义是,允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的 各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和 系统吞吐量。在大、中和小型机中所配巻的大多是多用户多任务操作系统,而在32位微机上,也有不少配巻的是 多用户多任务操作系统,其中
18、最有代表性的是UNIX OS。1.3操作系统的运行环境1.3.1内核态与用户态特权指令:有少数指令是为编制系统管理程序专门设宜的,只有操作系统才能使用。如果用户误用这些 特权指令,称为非法指令,将引发故障中断。(1) 有关I/O的指令。(2) 访问程序状态字寄存器的指令。(3) 存取特殊寄存器(如用于内存保护的寄存器)的指令。(4) 其他访问系统状态和直接访问系统资源的指令等。多数系统将处理器工作状态划分为内核态和用户态。前者一般指操作系统管理程序运行的状态,具有较 高的特权级别,又称为特权态、系统态或管态:后者一般指用户程序运行时的状态,具有较低的特权级别, 又称为普通态、目态。目态:程序执
19、行时不可使用特权指令,I/O指令、时钟设宜、中断机制、系统管理等,是用户程序运行 时的状态,较低的特权级别,普通态(普态)、用户态。管态:程序执行时可以使用特权指令。执行系统管理程序,特权态、系统态、内核态、核心态。注意:访管指令不是特权指令。用户从用户态进入内核态必立通过访管指令。从内核态返回用户态可以 修改状态字实现。1.3.2中断、异常中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序 执行的过程。从中断事件的性质和激活的手段来说,可以分成两类:强迫性中断事件和自愿性中断事件。强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息
20、所引起的,分为:机 器故障中断事件。程序性中断事件。外部中断事件。输入输出中断事件。自愿性中断事件是正在运行的程序 所期待的事件。正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行 程序的执行而转入访管中断处理程序处理。中断和异常的区别:中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户 模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进 程所需的,如时钟中断、硬盘读写服务请求中断:异常是由处理器正在执行现行指令而引起的,一条指令执行 期间允许响应异常,异常处理程序提供的服务是为当前进程所用
21、的。异常包括很多方而,有出错(fault),也有陷 入(trap)。处理中断事件的程序称为中断处理程序。它的主要任务是处理中断事件和恢复正常操作。不同中断源对应 不同中断处理程序,故快速找到中断处理程序的入口地址是一个关键问题。中断处理程序主要做四项工作:保 护未被硬件保护的一些必需的处理状态。识别各个中断源,分析产生中断的原因。处理发生的中断事件。恢 复正常操作。图1-3中断处理过程1.3.3系统调用系统调用的处理过程是这样的,当系统调用发生时,处理器通过一种特殊的机制,通常是中断或者异常处 理,把控制流程转移到监控程序内的一些特定的位宜。同时,处理器模式转变成特权模式。英次,由监控程序 执
22、行被请求的功能代码。这个功能代码代表着对一段标准程序段的执行,用以完成所请求的功能。第三,处理 结朿之后,监控程序恢复系统调用之前的现场:把运行模式从特权模式恢复成为用户方式:最后将控制权转移 回原来的用户程序。1.4操作系统体系结构1. 无结构操作系统2. 模块化结构OS3. 分层式结构OS4. 微内核OS结构(1)微内核操作系统的基本概念在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本核心功能的小型内核,微内核并非 是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常包含有与硬件处理紧密相关的部分:2)基于客户/服务器模式3)应用"机制与策略分离”原理4)
23、采用面向对象技术(2).微内核的基本功能1)进程(线程)管理2)低级存储器管理3)中断和陷入处理(3).微内核操作系统的优点由于微内核OS结构是建立在模块化、层次化结构的基础上的,并采用了客户/服务器模式和面向对象的 程序设计技术,具有如下优点:(1)提高了系统的可扩展性。(2)增强了系统的可靠性。(3)可移植性强。(4)提供了对分布式系统的支持。(5)融入了而向对象技术。(4).微内核操作系统存在的问题应当指出,在微内核操作系统中,由于采用了非常小的内核,客户/服务器模式和消息传递机制虽给微 内核操作系统带来了许多优点,但由此也使微内核OS存在着潜在缺点,英中最主要的是,较之早期的操作 系统
24、,微内核操作系统的运行效率有所降低。实际情况是往往还会引起更多的上下文切换。第2章进程管理2.1进程与线程2.1.1进程的概念1. 程序的顺序执行一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在执行时,都需要按照某种先 后次序顺序执行,仅当前一程序段执行完后,才运行后一程序段。在进行计算时,应先运行输入程序,用于 输入用户的程序和数据:然后运行计算程序,对所输入的数据进行计算:最后是运行打印程序,打印il算结 果。用结点(Node)代表各程序段的操作,其中I代表输入操作,C代表计算操作,P为打印操作,用箭头指 示操作的先后次序。上述的三个程序段间就存在着这样的前趋关系:Ii-
25、Ci-Pi,其执行的顺序可用前趋图(a)描述。即使是一个程序段,也可能存在着执行顺序问题,下而示出了一个包含了三条语句的程序段:SI: a =x+y:S2:b=a-5:S3: c =b+l:(a)程序的顺序执行(b)三条语句的顺序执行图2-1程序的执行其中,语句S2必须在语句S1后(即a被赋值)才能执行,语句S3也只能在b被赋值后才能执行,三 条语句存在着这样的前趋关系:S1-S2-S3,应按前趋(b)所示的顺序执行。2. 程序顺序执行时的特征由上所述可以得知,在程序顺序执行时,具有这样三个特征: 顺序性:指处理机严格地按照程序所规定的顺序执行,即每一操作必须在下一个操作开始之前结束; 封闭性
26、:指程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除初始状态外)只有 本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响: 可再现性:指只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停 顿地执行,还是“停停走走”地执行,都可获得相同的结果。程序顺序执行时的这种特性,为程序员检测和校正程序的错误带来了很大的方便。3. 程序的并发执行一个常见的例子来说明程序的顺序执行和并发执行。在图中的输入程序、计算程序和打印程序三者之间, 存在着Ii-Ci-Pi这样的前趋关系,对一个作业的输入、il算和打印三个程序段必须顺序执行。但若是对一批 作业进行处理时
27、,每道作业的输入、计算和打印程序段的执行情况如图所示。9(3) 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独 立单位。6.进程的特征进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB结构外,还具有下而一些特征:(1) 动态性。(2) 并发性。(3) 独立性。(4) 异步性。2.1.2进程的状态与转换1. 进程的三种基本状态由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在 其生命周期内可能具有多种状态。每一个进程至少应处于三种基本状态之一:运行状态(Running):进程占用处理机正在运行其程序。单处
28、理机系统中只能有一个进程处于运行状态, 多处理机系统中可能有多个进程处于运行状态。阻塞状态(Blocked):也叫等待或睡眠状态,是进程由于等待某种事件的发生而处于暂停运行的状态。 如进程因等待输入/输出的完成、等待数据到达、等待缓冲空间等。就绪状态(Ready):进程已分配到除处理机以外的所有必要资源,具备了运行的条件,可能会有多个进 程处于就绪状态,排成就绪队列。2. 三种基本状态的转换(1) 就绪状态到运行状态:调度程序为就绪状态的进程分配处理机后,进入运行状态。(2) 运行状态到阻塞状态:正在运行的进程因需要等待某事件而无法运行,让出处理机。(3) 阻塞状态到就绪状态:进程所等待的事件
29、发生了,进程就从阻塞状态进入就绪状态。(4) 运行状态到就绪状态:正在运行的进程因时间片用完而被暂停运行:或者在可抢先式调度方式中,一 个优先级髙的进程到来后,正在运行的优先级低的进程被强制撤下处理机,转换为就绪状态。图2-4进程的三种基本状态及其转换3. 创建状态和终止状态1) 创建状态2) 终止状态图2-5进程的五种基本状态及转换4. 挂起操作的引入引入挂起操作的原因,是基于系统和用户的如下需要:(1) 终端用户的需要。(2) 父进程请求。(3) 负荷调节的需要。(4) 操作系统的需要。5. 引入挂起原语操作后三个进程状态的转换在引入挂起原语Suspend和激活原语Active后,在它们的
30、作用下,进程将可能发生以下几种状态的转换:(1) 活动就绪一静止就绪。当进程处于未被挂起的就绪状态时,称此为活动就绪状态,表示为Readya. 当用挂尼原语Suspend将该进程挂起后,该进程便转变为静止就绪状态,表示为Readys,处于Readys状 态的进程不再被调度执行。(2) 活动阻塞一静止阻塞。当进程处于未被挂起的阻塞状态时,称它是处于活动阻塞状态,表示为 Blockcda。当用Suspend原语将它挂起后,进程便转变为静止阻塞状态,表示为Blockcds。处于该状态的 进程在其所期待的事件出现后,将从静止阻塞变为静止就绪。(3) 静止就绪一活动就绪。处于Readys状态的进程,若用
31、激活原语Active激活后,该进程将转变为 Rcadya 状态。(4) 静止阻塞一活动阻塞。处于Blockeds状态的进程,若用激活原语Active激活后,该进程将转变为 Blockeda 状态。6. 引入挂起操作后五个进程状态的转换引进创建和终止状态后,在进程状态转换时,与进程五状态转换相比较,要增加考虑下而的几种情况:(1) NULL 创建:(2) 创建一活动就绪:(3) 创建一静止就绪:(4) 执行一终止:图2-6具有挂起状态的进程状态图图2-7具有创建、终止和挂起状态的进程状态图2.1.3进程控制所谓原语即原子操作,要么全做,要么不做,一般是通过屏蔽中断来完成的。1)进程创建。crea
32、t2)进程撤销。halt3)进程阻塞。block4)进程唤醒o wakeup5)进程挂起。suspend6)进程激活。Active(1)进程的创建1. 引起创建进程的事件为使程序之间能并发运行,应先为它们分别创建进程。导致一个进程去创建另一个进程的典型事件有四类:1)用户登录。2)作业调度。3)提供服务。4)应用请求。2.进程的创建(Creation of Process)在系统中每当出现了创建新进程的请求后,OS便调用进程创建原语Creat按下述步骤创建一个新进程:1)申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。2)为新进程分配貝运行所需的资源,包括
33、各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等。3)初始化进程控制块(PCB)。4)如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。(2)进程的终止1. 引起进程终 lh(Tennination of Process)的事件1)正常结朿2)异常结朿3)外界干预2. 进程的终止过程如果系统中发生了要求终止进程的某事件,OS便调用进程终I上原语,按下述过程去终止指左的进程:1)根据被终止进程的标识符,从PCB集合中检索岀该进程的PCB,从中读岀该进程的状态:2)若被终止进程正处于执行状态,应立即终止该进程的执行,并宜调度标志为真,用于指示该进程被 终止后应重新进行调度:3)若该
34、进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程4)将被终止进程所拥有的全部资源或者归还给英父进程,或者归还给系统:5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。(3)进程的阻塞与唤醒1. 引起进程阻塞和唤醒的事件有下述几类事件会引起进程阻塞或被唤醒:1) 向系统请求共享资源失败。2) 等待某种操作的完成。3) 新数据尚未到达。4) 等待新任务的到达。2. 进程阻塞过程正在执行的进程,如果发生了上述某事件,进程便通过调用阻塞原语block将自己阻塞。阻塞是进程自 身的一种主动行为。进入block过程后,由于该进程还处于执行状态,所以应
35、先立即停止执行,把进程控 制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。如果系统中设宜了因不同事件而阻塞的 多个阻塞队列,应将本进程插入到具有相同事件的阻塞队列。转调度程序进行重新调度,将处理机分配给另 一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态,按新进程的PCB中的处理机状态设宜CPU 的环境。3. 进程唤醒过程当被阻塞进程所期待的事件发生时,比如它所启动的I/O操作已完成,或英所期待的数据已经到达,则 由有关进程(比如提供数据的进程)调用唤醒原语wakeup,将等待该事件的进程唤醒。wake叩执行的过程是: 首先把被阻塞的进程从等待该事件的阻塞队列中移出,将英P
36、CB中的现行状态由阻塞改为就绪,然后再将 该PCB插入到就绪队列中。(4) 进程的挂起与激活1. 进程的挂起 当出现引起进程挂起的事件时,系统将利用挂起原语suspend()将指泄进程或处于阻塞 状态的进程挂起。2. 进程的激活过程当发生激活进程的事件时,系统将利用激活原IS active()将指立进程激活。2.1.4进程组织1. 进程实体程序:描述进程所要完成的功能,特指二进制的指令代码。数据集合:程序运行所需要的数据结构。包括常数,变量,堆,数据栈等。 进程控制块:进程控制块包含了进程的描述信息、控制信息和资源信息。2. 进程控制块PCB的作用(1) 作为独立运行基本单位的标志。(2) 能
37、实现间断性运行方式。(3) 提供进程管理所需要的信息。(4) 提供进程调度所需要的信息。(5) 实现与英它进程的同步与通信。3. 进程控制块中的信息在进程控制块中,主要包括四个方而信息。1)进程标识符进程标识符用于唯一地标识一个进程。一个进程通常有两种标识符:(1) 内部标识符。在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个 进程的序号。设置内部标识符主要是为了方便系统使用。(2) 外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使 用。为了描述进程的家族关系,还应设宜父进程标识及子进程标识。此外,还可设宜用户标识,以指示拥有
38、该进程的用户。2) 处理机状态处理机状态信息主要是由处理机的各种寄存器中的内容组成的。处理机在运行时,许多信息都放在寄存 器中。当处理机被中断时,所有这些信息都必须保存在PCB中,以便在该进程重新执行时,能从断点继续 执行。3) 进程调度信息在OS进行调度时,必须了解进程的状态及有关进程调度的信息.4) 进程控制信息2.1.5进程通信进程通信是指进程之间的信息交换。后续P、V操作称为低级通信。高级通信是指进程之间以较髙的效 率传送大量数据的通信方式。高级通信方式可分为三大类:共享内存、消息传递以及管道机制。2.1.6线程概念与多线程模型(1) 线程的引入在OS中引入进程的目的是为了使多个程序能
39、并发执行,以提高资源利用率和系统吞吐量,引入线程, 则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。1. 进程的两个基本属性首先让我们来回顾进程的两个基本属性: 进程是一个可拥有资源的独立单位,一个进程要能独立运行,它必须拥有一左的资源,包括用于存 放程序正文、数据的磁盘和内存地址空间,以及它在运行时所需要的I/O设备、已打开的文件、信号量等; 进程同时又是一个可独立调度和分派的基本单位,一个进程要能独立运行,它还必须是一个可独立 调度和分派的基本单位。2. 线程一一作为调度和分派的基本单位如何能使多个程序更好地并发执行,同时又尽量减少系统的开销,已成为近年来设讣操作系统
40、时所追求 的重要目标。有不少研究操作系统的学者们想到,要设法将进程的上述两个属性分开,由OS分开处理,亦 即并不把作为调度和分派的基本单位也同时作为拥有资源的单位,以做到“轻装上阵”;而对于拥有资源的 基本单位,又不对之施以频繁的切换。正是在这种思想的指导下,形成了线程的概念。(2) 线程与进程的比较1调度的基本单位进程内,切换代价低在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到対一个进程中的线程时, 将会引起进程的切换。2.并发性在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性。3. 拥有资源线程自己不拥有系统资源(也有一点必不可少的资源),但它可
41、以访问其隶属进程的资源,即一个进程的 代码段、数拯段及所拥有的系统资源,线程控制块TCB.4. 独立性,相对进程来言,独立性低5. 系统开销切换代价而言,进程也是远高于线程的。由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方而线程也比进程容易6. 支持多处理机系统多线程多处理器(3)线程的状态和线程控制块1. 线程运行的三个状态与传统的进程一样,在各线程之间也存在着共享资源和相互合作的制约关系,致使线程在运行时也具有 间断性。2. 线程控制块TCB如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB,将所有用于控 制和管理线程的信息记录在线程控制块中。
42、线程标识符 寄存器状态,它包括程序计数器PC和堆栈指针中的内容:堆栈,在堆栈中通常保存有局部变量和 返回地址: 线程运行状态,用于描述线程正处于何种运行状态: 优先级,描述线程执行的优先程度: 线程专有存储器,用于保存线程自己的局部变虽:拷贝; 信号屏蔽,即对某些信号加以屏蔽。(4)线程的实现方式线程已在许多系统中实现,但齐系统的实现方式并不完全相同。在有的系统中,特别是一些数据库管理 系统,如infomix所实现的是用戸级线程;另一些系统(如Macintosh和OS/2操作系统)所实现的是内核支持 线程:还有一些系统如Solaris操作系统,则同时实现了这两种类型的线程。1. 内核支持线程
43、KST(Kcrnel Supported Threads)在OS中的所有进程,无论是系统进程还是用户进程,都是在操作系统内核的支持下运行的,是与内核 紧密相关的。内核支持线程KST同样也是在内核的支持下运行的,它们的创建、阻塞、撤消和切换等,也 都是在内核空间实现的。为了对内核线程进行控制和管理,在内核空间也为每一个内核线程设置了一个线程 控制块,内核根据该控制块而感知某线程的存在,并对英加以控制。当前大多数OS都支持内核支持线程。 这种线程实现方式主要有四个主要优点:1)在多处理器系统中,内核能够同时凋度同一进程中的多个线程并行执行:2)如果进程中的一个线程被阻塞了,内核可以训度该进程中的英
44、它线程占有处理器运行,也可以运行 其它进程中的线程:3)内核支持线程具有很小的数据结构和堆栈,线程的切换比较快,切换开销小:4)内核本身也可以采用多线程技术,可以提高系统的执行速度和效率。302. 用户级线程 ULT(User Level Threads)用户级线程是在用户空间中实现的。对线程的创建、撤消、同步与通信等功能,都无需内核的支持, 即用户级线程是与内核无关的。在一个系统中的用户级线程的数目可以达到数百个至数千个。由于这些线程 的任务控制块都是设置在用户空间,而线程所执行的操作也无需内核的帮助,因而内核完全不知道用户级线 程的存在。使用用户级线程方式有许多优点:1)线程切换不需要转换
45、到内核空间。2)调度算法可以是进程专用的。3)用户级线程的实现与OS平台无关,因为对于线程管理的代码是属于用户程序的一部分,所有的应 用程序都可以对之进行共宇。而用户级线程方式的主要缺点则在于:1)系统调用的阻塞问题。在基于进程机制的OS中,大多数系统调用将使进程阻塞,因此,当线程执行 一个系统调用时,不仅该线程被阻塞,而且,进程内的所有线程会被阻塞。而在内核支持线程方式中,则进 程中的其它线程仍然可以运行。2)在单纯的用户级线程实现方式中,多线程应用不能利用多处理机进行多重处理的优点,内核每次分 配给一个进程的仅有一个CPU.因此,进程中仅有一个线程能执行,在该线程放弃CPU之前,其它线程只
46、 能等待。3. 组合方式有些OS把用户级线程和内核支持线程两种方式进行组合,提供了组合方式ULT/KST线程。在组合方 式线程系统中,内核支持多个内核支持线程的建立、训度和管理,同时,也允许用户应用程序建立、调度和 管理用户级线程。用户空间内核空间巾)-对我型图2-8多线程模型(5)线程的实现1. 内核支持线程的实现在仅设置了内核支持线程的OS中,一种可能的线程控制方法是,系统在创建一个新进程时,便为它 分配一个任务数据区PTDA(PerTask Data Area),其中包括若干个线程控制块TCB空间。2. 用户级线程的实现1)运行时系统(Runtime System)所谓“运行时系统”,实
47、质上是用于管理和控制线程的函数(过程)的集合,其中包括用于创建和撤消线程 的函数、线程同步和通信的函数,以及实现线程调度的函数等。正因为有这些函数,才能使用户级线程与内 核无关。运行时系统中的所有函数都驻留在用户空间,并作为用户级线程与内核之间的接口。2) 内核控制线程这种线程又称为轻型进程LWP(Light Weight Process)。每一个进程都可拥有多个LWP,同用户级线程 一样,每个LWP都有自己的数据结构(如TCB),其中包括线程标识符、优先级、状态,另外还有栈和局 部存储区等。LWP也可以共享进程所拥有的资源。LWP可通过系统调用来获得内核提供的服务,这样,当 一个用户级线程运
48、行时,只须将它连接到一个LWP上,此时它便具有了内核支持线程的所有属性。这种 线程实现方式就是组合方式。2.2处理机调度2.2.1调度的基本概念(1) 作业与作业调度在多道批处理系统中,作业是用户提交给系统的一项相对独立的工作。操作员把用户提交的作业通过相 应的输入设备输入到磁盘存储器,并保存在一个后备作业队列中。再由作业调度程序将其从外存调入内存。1. 作业和作业步1) 作业(Job)o2) 作业步(Job Step)o2. 作业控制块(Job Control Block, JCB)3. 作业运行的三个阶段和三种状态作业从进入系统到运行结束,通常需要经历收容、运行和完成三个阶段。相应的作业也
49、就有“后备状态”、“运行状态”和“完成状态”。1) 收容阶段。2) 运行阶段。3) 完成阶段。(2) 作业调度的主要任务作业调度的主要任务是,根据JCB中的信息,检查系统中的资源能否满足作业对资源的需求,以及按 照一泄的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然 后再将新创建的进程排在就绪队列上等待调度。作业训度称为接纳调度(Admission Scheduling)<>在每次执行 作业调度时,都需做出以下两个决定。1. 接纳多少个作业多道程序度2. 接纳哪些作业调度算法(3) 三级调度1. 高级调度(High Level Schedul
50、ing)2. 低级调度(Low Level Scheduling)3. 中级调度(Intermediate Scheduling)同时具有三级调度的调度队列模型:当在OS中引入中级调度后,人们可把进程的就绪状态分为内存就绪(表示进程在内存中就绪)和外存就绪(进程在外存中就绪)。类似地,也可把阻塞状态进一步分成内存阻塞 和外存阻塞两种状态。在调出操作的作用下,可使进程状态由内存就绪转为外存就绪,由内存阻塞转为外存 阻塞:在中级调度的作用下,又可使外存就绪转为内存就绪。作业调度进程调度进程龙成30交互型作业爭件出现中级诅度I 就绪,九起队列-'iTTii iii率,小起队列HIIIIIIH
51、阻那队列图29三级凋度2.2.2调度的时机.切换和过程1 调度的时机正在运行的进程运行完毕或发生某事件而不能再继续运行:运行中的进程因提出输入/输出请求而暂停运行;在进程通信或同步过程中运行了某种原语操作,如P操作等:在可抢先式调度中,有一个比当前进程优先级更髙的进程进入就绪队列: 在时间片轮转法中,时间片用完。2. 进程训度的任务进程调度的任务主要有三:(1) 保存处理机的现场信息。(2) 按某种算法选取进程。(3) 把处理器分配给进程。3. 进程调度的切换和过程为了实现进程调度,在进程调度机制中,应具有如下三个基本部分。(1) 排队器。(2) 分派器。(3) 上下文切换器。2.2.3调度的
52、基本准则1.处理机调度算法的共同目标(1) 资源利用率。为提高系统的资源利用率,应使系统中的处理机和并它所有资源都尽可能地保持忙碌 状态,处理机利用率:,CPU有效工作时间CPU的利用率=CPU有效工作时间+ CPU空闲等待时间(2) 公平性。公平性是指应使诸进程都获得合理的CPU时间,不会发生进程饥饿现象。公平性是相对 的,对相同类型的进程应获得相同的服务;但对于不同类型的进程,由于其紧急程度或重要性的不同,则应 提供不同的服务。(3) 平衡性。由于在系统中可能具有多种类型的进程,有的属于计算型作业,有的属于I/O型。为使 系统中的CPU和各种外部设备都能经常处于忙碌状态,调度算法应尽可能保
53、持系统资源使用的平衡性。(4) 策略强制执行。对所制订的策略英中包括安全策略,只要需要,就必须予以准确地执行,即使会造 成某些工作的延迟也要执行。2. 批处理系统的目标(1) 平均周转时间短。平均周转时间:为了进一步反映调度的性能,更淸晰地描述各进程在苴周转时间中,等待和执行时间的 具体分配状况,往往使用带权周转时间,即作业的周转时间T与系统为它提供服务的时间Ts之比,即二 T/Tso平均带权周转时间:(2) 系统吞吐呈:高。(3) 处理机利用率高。2.2.4调度方式1) 非抢占方式(Nonpireemptive Mode)2) 抢占方式(Preemptive Mode)2.2.5典型调度算法
54、1、先来先服务(FCFS)调度算法该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的 先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长 短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然 后把它放入就绪队列。2、短作业优先(short job first, SJF)的调度算法由于在实际情况中,短作业(进程)占有很大比例,为了能使它们能比长作业优先执行,而产生了短作业 优先调度算法。1) 短作业优先算法SJF算法是以作业的长短来计算优先级,作业越短,英优先级越髙。作业
55、的长短是以作业所要求的运行 时间来衡量的。SJF算法可以分别用于作业调度和进程调度。在把短作业优先调度算法用于作业调度时,它 将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。2) 短作业优先算法的缺点(1) 必须预知作业的运行时间。在采用这种算法时,要先知道每个作业的运行时间。即使是程序员也很 难准确估讣作业的运行时间,如果估il过低,系统就可能按估计的时间终止作业的运行,但此时作业并未完 成,故一般都会偏长估计。(2) 对长作业非常不利,长作业的周转时间会明显地增长。更严重的是,该算法完全忽视作业的等待时 间,可能使作业等待时间过长,出现饥饿现象。(3) 在采用FCFS算法时,人一机无法实现交互(4) 该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理。进租名ABCDE平均情况 调度算丛到达时何0134眼务时问43524fctsQ)完应时间4?121418周牧时何461011149带权用转时何1225.53 52.8SJF(b)完成肘间49186134816398带杈丹转时间12.673 11522S2.1图 2-10 FCFS 和 SJF3、优先级调度算法(priority-scheduling algor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年股权转让合同中的估值调整与违约责任
- 2024年版住宅小区物业管理服务标准化协议版B版
- 液力传动装置的故障树分析考核试卷
- 石灰在玻璃纤维增强中的应用考核试卷
- 小班冬季食育课程设计
- 2024夜景工程配套设施设备供应与安装合同3篇
- 2024年渣石流通合同范本3篇
- 沃尔玛工作岗位课程设计
- 2024年房产抵押债务偿还与解除合同3篇
- 电商时代的服饰行业考核试卷
- 核算岗年终工作总结
- 造价年度工作总结
- 2024-2024学年秋季学期工科数学分析答案
- 四羊方尊分析报告
- 护理人员应急预案培训课件:居家病人护理与应急服务
- 中小企业技术创新
- 上市企业商业计划书
- 少一点麻痹思想多一份生产安全
- 2025年日历表带农历【阴历】完美打印版
- 重点实验室申报
- 《海上钢琴师》课件
评论
0/150
提交评论