计算机操作系统
关于操作系统课的笔记
第1章 操作系统引论
本章知识导图:

1.1 操作系统的目标和作用
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
1.1.1 操作系统的目标
在计算机系统上配置OS,其主要实现目标:方便性、有效性、可扩充性、开放性。
方便性:通过OS命令操纵计算机,方便用户
有效性:
提高系统资源利用率,
提高系统的吞吐量
可扩充性:
- OS必须具有很好的可扩充性
- 与OS的结构有紧密的联系
开放性:
- 遵循世界标准规范。特别是开放系统互连OS
1.1.2 操作系统的作用
可以从==人机交互、资源管理、资源抽象==等不同方面来分析OS在计算机系统中所起的作用。
OS作为用户与计算机硬件系统之间的接口
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机硬件系统。

OS作为计算机系统资源的管理者
OS的主要功能就是对:处理机、存储器、I/O设备以及信息(数据和程序)的有效管理。
处理机:负责处理机的分配与控制
存储器:管理负责内存的分配与回收
I/O设备:管理负责I/O设备的分配(回收)与操纵
文件:管理负责文件的存取、共享与保护
OS实现了对计算机资源的抽象
在裸机上铺设的I/O软件,隐藏了I/O设备的具体细节,向上提供了一组抽象的I/O设备。

1.1.3 推动操作系统发展的主要动力
不断提高计算机系统资源的利用率
计算机系统特别昂贵,提高计算机系统中各种资源的利用率成为了OS最初发展的推动力。由此促成了由单道批处理系统到多道批处理系统的演变,他通过减少计算机的空闲时间提高了系统中央处理机和I/O设备的利用率。
方便用户
当资源利用率不高的问题解决后,用户在使用计算机和调试程序时的不方便性便成了主要矛盾。
器件不断更新换代
信息技术不断发展,尤其是微机芯片的不断更新换代,计算机的性能得到了迅速提高,中二推动了OS的功能和性能也迅速增强和提高。
计算机体系结构不断发展
不断提出新的应用需求
1.2 操作系统的特征
1.2.1 四个特征:并发、共享、虚拟、异步

并发:指两个或多个时间在同一时间间隔内发生。这些事件宏观上是同时发生的,但在微观上是交替发生的。并行:指两个或多个时间在同一时刻同时发生。
操作系统的并发性:指的是计算机系统中同时存在着多个运行着的程序。
共享:指的是系统中的资源可供内存中多个并发执行的进程共同使用,资源共享。

虚拟:把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
虚拟技术:空分复用技术(虚拟存储技术)和时分复用技术(虚拟处理器技术)

异步:再多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
如果失去了并发性,则系统只能串行的处理各个进程,每个进程的执行会一贯到底。==只有系统拥有并发性,才可能导致异步==
1.2.2 并发和共享的关系
并发性:计算机系统中同时存在着多个运行着的程序
共享性:系统中的资源可供内存中多个并发执行的进程共同使用。

1.3 操作系统的发展过程
20世纪50年代中期,出现了第一个简单的批处理系统。20世纪60年代中期,开发出了多道批处理系统,不久又推出了分时系统。与此同时,用于工业控制和武器控制的实时系统也相继问世。20世纪70—90年代,是VLSI和计算机体系结构大发展的年代,这一时期,微机、多处理机和计算机网络得以诞生并发展,相应地,也相继开发出了微机OS、多处理机OS、网络OS和分布式OS。OS得到了极为迅速的发展。
1.3.1 为配置操作系统的计算机系统
人工操作方式
早起的操作方式是由用户将实现已穿孔的纸带或卡片,装入纸带输入机,在启动他们以将纸带或卡片上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。缺点有两方面:①用户独占全机;②CPU等待人工操作。
脱机I/O方式
事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的程序和数据输入磁带。当CPU需要这些程序或数据时,再从磁带上将它们高速的调入内存。类似的,当CPU需要输出时,可先由CPU把数据直接从内存高速的送到磁带上,然后在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。这种在外围机的控制下完成的是脱机I/O;而把在主机的直接控制下进行I/O的方式,为联机I/O方式。

这种脱机I/O的主要优点:
(1)减少了CPU的空闲时间
(2)提高了I/O的速度
1.3.2 单道批处理系统
在20世纪50年代中期,出现了第二代晶体管计算机,此时计算机虽已具有推广应用的价值,但计算机系统仍然非常昂贵。为了能充分提高计算机的利用率,应尽量保持系统连续运行,即使其在处理完一个作业后,紧接着处理下一个作业,以减少系统的空闲时间。
单道批处理系统的处理过程
为了实现对作业的连续处理,需要先把一批作业以脱机IO方式输入到磁带上,并在系统中配上监督程序。在它的控制下,这批作业能一个接一个地被连续处理。处理过程:首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;当该作业处理完成时,又把运行控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。计算机系统就这样自动地、一个作业紧接一个作业地进行处理,直至磁带上的所有作业全部完成,这样便形成了早期的批处理系统。虽然该系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称之为单道批处理系统。图1-5所示为单道批处理系统的处理流程。

单道批处理系统的优缺点
主要优点:
单道批处理系统旨在提高系统资源的利用率和系统吞吐量。但是并不能充分利用系统资源。
主要缺点:
内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
1.3.3 多道批处理系统
多道程序设计的基本概念
为了进一步提高资源的利用率和系统吞吐量,在20世纪60年代中期引入了多道程序设计技术,由此形成了多道批处理系统。在该系统中,用户所提交的作业会被先存放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按一定的算法从后备队列中选择若干个作业调人内存,使它们共享CPU和系统中的各种资源。由于在内存中同时装有若干道程序,这样便可在运行程序A时,利用其因T/O操作而暂停执行时的CPU空档时间,再调度另一道程序B运行。同样可以利用程序B在IO操作时的CPU空档时间,再调度程序C运行,进而实现多道程序交替运行,这样便可以保持CPU处于忙碌状态。图1-7所示为4道程序的运行情况。

多道批处理系统的优缺点
主要优点:
多道程序==并发==执行,==共享==计算机资源。==资源利用率大幅提升==,CPU和其他资源保持忙碌状态,系统吞吐量增大。
主要缺点:用户响应时间长,==没有人机交互能力==
多批道处理系统需要解决的问题
①争用处理机问题
②内存分配与保护问题
③I/O设备分配问题
④文件的组织与管理问题
⑤作业管理问题
⑥用户与系统的接口问题
据此,OS的定义:==OS是一组能有效的组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。==
1.3.4 分时系统
计算机以==时间片==为单位==轮流为各个用户/作业服务==,各个用户可通过终端与计算机进行交互。
分时系统的引入
如果推动多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量,那么推动分时系统形成和发展的主要动力就是为了满足用户对人机交互的需求。用户的需求具体表现在以下几个方面:
(1)人机交互
(2)共享主机
分时系统的特征
(1)多路性:系统允许将多台终端同时连接到一台主机上,并按分时原则为每个用户服务。
(2)独立性:系统提供了一种用机环境,即每个用户在各自的终端上进行操作,彼此互不干扰。
(3)及时性:用户的请求能在很短的时间内得到响应
(4)交互性:用户可以通过终端与系统进行广泛的人机对话。
分时系统优缺点
主要优点:用户请求可以被及时响应,==解决了人机交互问题==。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感觉不到人的存在。
主要缺点:==不能优先处理一些紧急任务==。操作系统对各个用户/作业都是完全公平的,循环的为每个用户/作业服务一个时间片,不能区分任务的紧急性。
1.3.5 实时系统
所谓“实时”,是指“及时”﹔而“实时计算”,则可以定义为这样一类计算:系统的正确性不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。事实上,实时系统( realtime system)最主要的特征是将时间作为关键参数,它必须对所接收的某些信号做出“及时”或“实时”的反应。由此得知,实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时系统的类型
(1)工业控制系统
(2)信息查询系统
(3)多媒体系统
(4)嵌入式系统
实时任务的类型
(1)周期性实时任务和非周期性实时任务
(2)硬实时任务和软实时任务
实时系统与分时系统特征的比较
(1)多路性。信息查询系统和分时系统中的多路性都表现为,系统按分时原则为多个终端用户服务;实时控制系统的多路性则是,系统周期性的对多路现场信息进行采集,并对多个对象或多个执行机构进行控制
(2)独立性。信息查询系统中的每个终端用户在与系统进行交互时,彼此相互独立、互不干扰;同样在实时控制系统中,对信息的采集和对对象的控制,也都是彼此互不干扰的。
(3)及时性。信息查询系统对实时性的要求是依据人所能接受的等待时间确定的。多媒体系统实时性的要求是播放出来的音频和视频能令人满意。实时控制系统的实时性则是以控制对象所要求的截止时间来确定的,一般为秒级到毫秒级。
(4)交互性。在信息查询系统中,人与系统的交互性仅限于访问系统中某些特定的专用服务程序。它并不能像分时系统那样向终端用户提供数据处理、资源共享等服务。多媒体系统的交互性也仅限于由用户发送某些特定的命令,如开始、停止、快进等,然后由系统立即响应。
(5)可靠性。分时系统要求系统可靠,实时系统要求系统高度可靠,因为任何差错都可能会带来无法预料的灾难性后果。因此,在实时系统中,往往都采取了多级容错措施,以保障系统及数据的安全性。
实施系统的优缺点
主要优点:能够优先响应一些紧急任务。
主要缺点:
1.3.6 微机操作系统
微机OS也可按运行方式来分。现在流行的微机OS按运行方式可分为以下几类。
单用户单任务OS
单用户单任务OS的含义是,只允许一个用户上机,且只允许用户程序作为一个任务运行。这是最简单的微机OS,主要配置在8位和16位微机上。最有代表性的单用户单任务OS是CP/M(8位)和MS-DoS( 16位)。
单用户多任务OS
单用户多任务OS的含义是,只允许一个用户上机,但允许用户把程序分为若干个任务并发执行,从而有效地改善了系统性能。早期在32位微机上配置的OS基本上都是单用户多任务OS。最有代表性的单用户多任务OS是由微软公司推出的Windows系列,如Windows 3.1、Windows95/98等。
多用户多任务OS
多用户多任务OS的含义是,允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。在大、中、小型计算机中所配置的系统大多是多用户多任务OS,而在当前的32位、64位微机上,也有不少配置了多用户多任务OS。最具代表性的多用户多任务OS是UNIX系统、各种类UNIX系统(如Solaris、Linux等)以及Windows NT/Server系列的系统。
多用户多任务OS除了具有界面友好、管理方便和适于普及等优点外,还具有支持多用户使用、可移植性良好、功能强大、通信能力强等优点。
1.3.7 嵌入式操作系统
嵌入式系统
与通用的计算机(如便携式计算机或桌面系统等)不同,嵌入式系统( embedded system )是为了完成某个特定功能而设计的系统,或是具有附加机制的系统,或是其他部分的计算机硬件与软件的结合体。在许多情况下,嵌入式系统都是一个大系统或产品中的一部分,如汽车中的防抱死系统。
嵌入式OS的特点
(1)系统内核小。由于嵌入式OS一般应用于小型电子装置,系统资源相对有限
(2)系统精简。嵌入式OS一般没有系统软件和应用软件的明显区分,不要求功能设计与实现过于复杂。
(3)实时性高。实时性高是嵌入式软件的基本要求,此外,软件还要求固态存储以提高速度,软件代码要求高质量和高可靠性。
(4)具有可配置性。由于嵌入式系统的多样性,一个嵌入式OS若想应用在不同的嵌入式系统中,他就必须可以灵活配置,以便特定的应用和硬件系统提高所需的功能。
1.4 OS的运行机制和体系结构
1.4.1 运行机制
1.4.2 内核
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是==内核程序==
1.4.2 体系结构

1.5 中断和异常
1.5.1 中断
中断机制的诞生
为了解决早期计算机串行处理程序的问题,引入中断机制,实现了多道程序并发执行。
本质:发生中断就意味着需要操作系统介入,开展管理工作。
中断机制的概念和作用
①当中断发生时,CPU立即进入核心态
②当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
③对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作需要使用特权指令,因此CPU要从用户态转为核心态。==中断==可以使==CPU从用户态切换为核心态,是操作系统或的计算机的控制权==。有了中断,才能实现多道程序并发执行。
中断分类
1.6 系统调用
应用程序用过==系统调==用请求操作系统的服务。系统中的各种共享资源都有操作系统同一掌管,因此在用户程序中,凡是与资源有关的操作,都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。==这样可以保证系统的稳定性和安全性==,防止用户进行非法操作。
系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令,因此系统调用的相关处理需要在核心态下进行
第2章 进程的描述与控制
知识导图:

2.1 进程的定义
PCB:系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)。
==PCB、程序段、数据段==组成了进程实体(进程映像)。所谓的创建进程,实质上使创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。
==PCB是进程存在的唯一标志!==
传统的定义有:
- 进程是程序的一次执行过程
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位
引入进程实体的概念后:==进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。==
2.1.1 进程的组成
2.1.2 进程的组织
在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。
2.1.3 进程的特征
动态性(最基本的特征):进程是程序的一次执行过程,是动态的产生、变化、消亡
并发性:内存中有多个进程实体,各个进程可并发执行
独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位
异步性:各个进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题
结构性:每个进程都会配置一个PCB。从结构上看,进程由数据段、程序段、PCB组成
2.2 进程的状态与转换
2.2.1 三种基本状态
- 运行态:占有CPU,并在CPU上运行
- 就绪态:已经具备运行条件,但由于没有空闲CPU,暂时不能运行
- 阻塞态:因等待某一事件而不能运行
创建进程:操作系统需要位进程分配资源,初始化PCB
撤销进程:操作系统会回收进程拥有的资源、撤销PCB
2.2.2 进程状态的转换

2.3 进程控制
- 进程控制的主要功能就是对系统中的所有进程实施有效的管理(实现进程状态的转化)

原语要做的三类事情:
- 更新PCB中的信息(如修改进程状态、将运行环境保存到PCB、从PCB恢复运行环境)
- 所有的进程控制原语一定会修改进程状态标志
- 剥夺当前进程的CPU使用权必然需要保存到其运行环境
- 某进程开始运行前必然要恢复其运行环境
- 将PCB插入合适的队列
- 分配/回收资源
- 更新PCB中的信息(如修改进程状态、将运行环境保存到PCB、从PCB恢复运行环境)
进程的创建

进程的终止

进程的阻塞/唤醒

进程的切换

2.4 进程通信
进程通信就是指进程之间的信息交换。进程是分配系统资源的单位,因此各进程拥有的==内存的地址空间==相互独立
2.1 前趋图和程序执行
2.1.1 前趋图
是指一个有向无环图,它用于描述进程之间执行的先后顺序。图中的每一个节点均可用于表示一个进程或一段程序,甚至是一条语句,节点间的有向边则表示两个节点之间所存在的偏序或前趋关系。