计算机操作系统

第一章 操作系统引论

操作系统(operating system)是对硬件系统的首次扩充,是配置在计算机硬件上的第一层软件,主要是管理硬件设备,提高硬件的运行效率。

1.1 操作系统的目标和作用

OS的目标与应用环境有关(如,有效性,方便性【最重要的两个目标】)。

1.1.1 操作系统的目标

主要目标是实现:方便性、有效性、可扩充性、开放性。

1. 方便性

未配置OS的计算机系统使用起来很困难,有了OS的计算机极大的方便了用户,使得计算机变得易学易用。

2. 有效性

第一层含义:提高系统资源的利用率;

第二层含义:提高系统的吞吐量。

3. 可扩充性

为了适应硬件、体系结构和应用发展的要求,其必须具有良好的可扩充性。

4. 开放性

可方便的实现互连。

1.1.2 操作系统的作用

可从人机交互资源管理资源抽象方面来分析。

1. OS作为用户与计算机硬件系统之间的接口

OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机硬件系统(用户在OS的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。)

截屏2022-09-05 09.35.04
2. OS作为计算机系统资源的管理者
截屏2022-09-05 09.37.06
3. OS实现了对计算机资源的抽象「指物理到逻辑」
截屏2022-09-05 09.39.36

1.1.3 推动操作系统发展的主要动力

1. 不断提高计算机系统的利用率

为了提高各种资源的利用率,促成了单道批处理系统多道批处理系统的演变

单道批处理系统截屏2022-09-05 09.45.17

多道批处理系统截屏2022-09-05 09.47.38

2. 方便用户

1.2.4 分时系统——解决多道批处理系统中人机交互性差的问题

1.分时系统的引入

(1)人机交互

(2)共享主机

在合理的时间内给出响应,实现有效的交互性

方法:每个作业不允许长时间占用处理机,规定每个作业只能运行很短一段时间(时间片)然后去运行下一个作业。

2. 关键问题

(1)及时接收

(2)及时处理

3.分时系统的特征

(1)多路性

(2)独立性

(3)及时性

(4)交互性

1.2.5 实时系统

1. 实时系统的类型

(1)工业控制系统

(2)信息查询系统

(3)多媒体系统

(4)嵌入式系统

2. 实时任务类型

(1)周期性实时任务和非周期性实时任务

(2)硬实时任务和软实时任务

3. 实时系统雨分时系统特征的比较

(1)多路性

(2)独立性

(3)及时性

(4)交互性

(5)可靠性

1.2.6 微机操作系统

1. 单用户单任务OS

只允许一个用户上机,且只允许用户程序作为一个任务运行。

2. 单用户多任务OS

只允许一个用户上机,但允许用户把程序分为若干个任务并发执行,从而有效的改善了系统的性能。

3. 多用户多任务OS(界面友好、管理方便、适于普及等优点、支持多用户使用、可以移植性良好、功能强大、通信能力强)

允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量

1.2.7 嵌入式操作系统

1. 嵌入式系统
2. 嵌入式OS

特点: (1)系统内核小 (2)系统精简 (3)实时性高 (4)具有可配置性

1.2.8 网络操作系统

用于在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供网络资源接口的一组软件和规程整合。

建立在网络中的计算机各自不同的单处理机OS之上,为用户提供使用网络资源的桥梁

常见的有:UNIX、Linux、Windows NT/2000/Server等。

1. 特征
(1)硬件独立性
(2)接口一致性
(3)资源透明性
(4)系统可靠性
(5)执行并行性
2. 功能

在覆盖了单处理机OS的全部功能的同时,还具有支持数据通信、应用户操作、网络管理功能等。

具有如下基本功能:

  1. 连接的建立与拆除

  2. 报文的分解与组装

  3. 传输控制

  4. 流量控制

  5. 差错的检测与纠正

1.2.9 分布式操作系统

1. 分布式系统主要特征
(1)分布性
(2)透明性
(3)同一性
(4)全局性
2. 分布式OS主要功能
1. 通信管理功能
2. 资源管理功能
3. 进程管理功能

1.3 操作系统的基本特征

1.3.1 并发

并行与并发

并行:指两个或多个时间在同一时刻发生

并发:指两个或多个事件在同一时间间隔内发生

1.3.2 共享

资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可以分为以下两种资源共享方式。

1. 互斥共享方式

系统中的某些资源,,如打印机、磁带机,虽然他们可以提供给多个进程使用,但为使所打印的内容不致造成混淆,应规定在同一段时间内只允许一个进程方位该资源。

为此,当进程a访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可将之分配给进程a使用,伺候若再有其他进程也要访问该资源(只要a未用完)则必须等待。仅当进程a访问完并释放该资源后,才允许另一进城对该资源进行访问。计算机系统中的大所属物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,他们都要求被互斥的共享。

2. 同时访问方式

系统中还有一种资源,允许在一段时间内由多个进程“同时”对它进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替的对该资源进行访问即“分时共享”。典型的可供多个进程同时访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。

并发和共享是操作系统两个最基本的特征,这两者之间又是互为存在条件的:1资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享的问题;2若系统不能对资源共享实施有效地管理,也必将影响到程序的并发执行,甚至根本无法并发执行。

1.3.3 虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。相应的,用于实现虚拟的技术,成为虚拟技术。在操作系统中利用了多种虚拟技术,分别用来实现虚拟处理器、虚拟内存和虚拟外部设备。

在虚拟处理器技术中,是通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理器的。此时,虽然只有一台处理器,但他能同时为多个用户服务,是每个终端用户都认为是有一个中央处理器在为他服务。利用多道程序设计技术,把一台物理上的CPU虚拟为多台逻辑上的CPU,称为虚拟处理器。

类似的,可以通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,一边从逻辑上来扩充存储器的容量。当然, 这是用户所感觉到的内存容量是虚的,我们把用户所发哦绝倒的存储器程序虚拟存储器。

还可以通过虚拟设备技术,将一台物理IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备,这样便可使原来仅允许在一段时间内有一个用户访问的设备,变为在一段时间内允许多个用户同时访问的共享设备。

因此操作系统的虚拟技术可归纳为:时分复用技术空分复用技术

时空复用技术:虚拟处理机技术、虚拟设备技术

空分复用技术:在电信业中就已使用频分复用技术来提高信道的利用率

1.3.4 异步

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

异步性使得操作系统运行在一种随机的环境下,可能导致进程产生于时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。

1.4 操作系统的运行环境

1.4.1 硬件支持

操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序,一种是操作系统内核程序;另一种是用户自编程序或系统外城的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者和控制者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全性考虑,不能执行这些指令。所谓特权指令,是指计算集中不允许用户直接使用的指令,如IO指令、置中断指令。

操作系统在具体实现上划分了用户态内核态,以严格区分两种类程序。(特权指令和非特权指令)

一些与硬件关联交紧密的模块,诸如时钟管理程序、中断处理程序、设备驱动程序等处于最底层。其次是运行频率较高的程序,诸如金城关里、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。

内核是计算机上配置的最底层软件,是计算机功能的眼神。不同系统对内核的定义稍有区别,大多数操作系统内核包括四个方面的内容。

1. 时钟管理

在计算机外部设备中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现京城的切换。诸如:在分时操作系统中,采用时间片轮转调度的实现;在实时系统中,按截止时间控制运行的实现;在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于它。

2. 中断机制

引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来的到发展,形成了多种类等,成为操作系统各项操作的基础。例如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代计算机系统是靠中断驱动的软件。

3. 原语操作

按层次结构涉及的操作系统,底层必然是一些可被调用的公用小程序,他们各自完成一个规定的操作。其特点是:1.他们处于操作系统的最底层,是最接近硬件的部分。2.这些程序的运行具有原子性——其操作只能一起合成。3.这些程序的运行时间都较短,而且调用频繁。

通常把具有这些特点的程序成为原语。定义源于的直接方法是关闭中断,让她的所有动作不可分割的进行完再打开中断。

系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语,是他们呢成为内核的组成部分。

资源管理功能

系统中用来登记状态信息的数据结构很多。比如作业控制块、进程控制块、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效地管理,系统需要一些基本的操作,常见的操作有以下三种:

1) 进程管理:进程状态管理、进程调度和分配、创建与撤掉进程控制块的队列维护操作等。

2) 存储器管理:存储器的空间分配和回收管理、内存信息保护程序、代码对换程序等。

3) 设备管理:缓冲区管理、设备分配和回收等。

从上述内容可以了解,核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

1.4.4 中断与异常

在操作系统中引入核心态和用户态这两汇总工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在核心态,而用户程序工作在用户态。但系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。

中断(interruption)也成为外中断,指来自CPU执行指令以外的事件发生,如设备发出的IO结束中断,表示设备输入输出处理已经完成,希望处理器能够像设备发出下一个输入输出请求,同事让王成输入输出后的程序继续进行。时钟中断,表示一个固定的事件篇已到,让处理器处理计时、启动定时运行的任务。这一类中断通常是与当前运行的程序无关。中断可细分为硬中断和软中断。硬中断是硬件产生的;软中断是软件产生的。

异常(Exception)也成为内中断、例外或陷入。指源自CPU执行指令内部的时间,如程序的非法操作码、地址越界、算数一出、虚存系统的缺页以及专门的陷入指令等引起的时间。对异常的处理一般要依赖与当前程序的运行现场,而且异常不能被屏蔽,一旦出现异常立即处理,而关于内中断和外中断的联系与区别如下:

这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序,而这个上层程序的运行以来与操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;另外也可能是程序运行出现异常情况,被动的需要管理程序的服务,这是就通过异常处理来进入核心态。当管理程序运行结束时,用户程序要继续进行,则通过相应保存程序现场推出中断处理程序或异常处理程序,返回断点处继续执行。在操作系统这一层面上,我们关心的是系统核心态和用户态的软件实现和切换,对于硬件层面的具体理解,可以结合“计算机组成原理”课程中有关中断的内容进行学习。

下面列举一些由用户态转向核心态的例子:

1) 用户程序要求操作系统的服务,即系统服务。

2) 发生一次中断

3) 用户程序中产生了一个错误状态

4) 用户程序中企图执行一条特权指令

5) 从核心态转向用户态由一条指令实现,这条指令也是特权指令。一般情况是中断返回指令。

注意,由用户态进入核心态,不仅仅是状态需要切换,而且,所使用的对战也可能需要由用户堆栈切换为系统对战,但这个系统对战也是属于该进程的。

截屏2022-09-08 10.03.40

1.5 操作系统主要功能

1.5.1 处理机管理功能

1) 进程控制:在多道程序环境下,为使作业能并发执行,必须为每到作业创建一个或几个进程,并为之分配必要的资源。

2) 进程同步:为使多个进程能有条不紊地运行,系统中必须设置相应的进程同步机制

3) 进程通信:进程与进程之间进行信息交换

4) 调度:

​ 作业调度:基本任务是按照一定的算法,从后备队列中选出若干个作业,并为他们分配运行所需的资源

​ 进程调度:按照一定的算法,从进程的就绪队列中窜出一个进程,将处理机分配给它,并为他设置运行现场,使其投入执行