计算机操作系统引论

第一章 操作系统引论

1.1操作系统目标和作用

  1. 什么是操作系统

    操作系统(operating system,简称OS)是一个大型的程序系统,它只要负责计算机的全部软、硬资源的分配、调度工作,控制和协调并发活动,实时信息的存取和保护。它提供用户接口,使用户获取良好的工作环境。操作系统使整个计算机系统实现了高效率、高度自动化、高利用率和高可靠性。

    主要组成
    硬件部分:

    指其物理装置本身,包括各种处理器(如中央处理器、输入输出控制器和该系统的其他处理器)、存储器、输入输出设备和通信设备;

    软件部分

    指由计算机硬件执行以完成一定任务的所有程序及其数据

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTxJY7Uh-1631790896027)(C:\Users\陈\AppData\Roaming\Typora\typora-user-images\image-20210916160959814.png)]

    OS的目标
    1. **方便性,**一个未配置OS的计算机系统是及其难用的。用户要想直接在计算机硬件上运行自己所编写的程序就必须是用机器语言编写,如果配置了OS可以极大的方便用户,使计算机变得易学易用。
    2. 方便性,可以提高系统资源的利用率和系统的吞吐量。
    3. 可扩充性,为了适应计算机硬件、体系结构以及计算机发展的要求,OS必须具有很好的可扩充性,今年来OS已经广泛采用微内核结构,微内核结构方便添加新功能和模块,以及对原有模块的修改
    4. 开放性,是指系统遵循世界标准规范,随着计算机日益普及,计算机硬件和软件的兼容性问题便提到了议事日程
    os的作用

    ​ 1.作为用户与硬件间的接口

    ​ 2.最为系统资源管理者

    ​ 3.实现对计算机资源的抽象

1.2操作系统的发展

操作系统如其他事物一样,也有它的诞成长和发展的过程。
手工操作

​ 二次大战对武器装备设计的需要,美、英、德使用真空管建造数字电子计算机。在此阶段,通过一些插板上的硬连线来控制计算机的基本功能,程序设计全部采用机器语言,没有程序设计语言(包括汇编),更谈不上操作系统,只进行数值计算。到了20世纪50年代,出现了穿孔卡片,可将程序写在卡片上。在一个程序运行期间,整台计算机连同其附属设备全部被占用。程序员兼职操作员,效率低下。

特点:手工操作,独占方式。
监控程序(早起批处理)

​ 五十年代晶体管的发明极大地改变了整个状况。计算机变得比较可靠,厂商可批量成产卖给用户。出现了FORTRAN、ALGOL、COBOL等高级语言。此时要运行一个作业(JOB,一个或一组程序),程序员将程序写在纸上(高级语言或汇编语言),交给操作员。计算机运行完当前任务后,将结果输出在卡片上,由操作员送到输出室。由于处理器速度的提高,导致手工操作设备输入、输出信息与计算机计算速度不匹配。因此人们设计了监督程序,来实现JOB的自动转换处理,这种自动定序的处理方式称为批处理。而且因为是串行执行,所以称为单道批处理。

多道批处理

​ 随之计算机硬件的不断发展,通道使得输入输出与处理器操作并行处理称为可能,与此同时然间系统也随之发生变化,实现了在硬件提供并行处理之上的多道批处理。
所谓多道就是运行多个程序同时存在与内存中,处理器以切换方式为之服务,使得多个程序可同时执行。从而极大提高了系统在单位时间内处理作业的能力。这时管理程序已迅速发展成为一个重要的软件分之—操作系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f5L3oOB3-1631790896029)(C:\Users\陈\AppData\Roaming\Typora\typora-user-images\image-20210916183848149.png)]

分时与实时系统

​ 批处理系统不适合交互式的作业,对交互式工作方式的需求导致了分时系统(多个用户通过终端设备与计算机交互作用来运行自己的作业,并共享一个计算机系统而互不干扰,就像每人都有一台独立的计算机)的诞生。
​ 实时系统一般用于对时间有特殊要求的工作,如天气预报,工业控制等。实时系统对时间点要求苛刻,需要对事件及时响应。

UNIX 通用操作系统

它是现代操作系统的代表,显示出了强大的生命力。
使用C语言编写的,因此是可移植的。是一个良好的、通用的、多用户、多任务、分时操作系统。具有树形文件系统和一定安全机制;有简洁的字符流文件和文件保护机制;UNIX有强大的Shell,它即是命令解释器,又是编程用高级语言,还可用于扩充系统功能。

个人计算机操作系统

Windows操作系统出现,并成为主流的个人计算机操作系统。
Linux操作系统出现,Linux继承了UNIX的全部优点,而且开放全部源码。它是机器健壮的,曾连续不停机运行一年而不崩溃。

Androd 操作系统

一款主要面向移动设备,基于Linux内核的开源移动操作系统,包括了Linux内核、中间件和关键移动应用的一整套软件。
操作系统分类
根据操作系统在用户界面的使用环境和功能的不同,对操作系统进行分类。一般可分为批处理操作系统,分时操作系统,实时操作系统。随着计算机操作系统的发展,又出现了许多类型的操作系统(个人操作系统、网络操作系统、分布式操作系统、嵌入式操作系统)。

批处理操作系统
基本工作方式

​ 用户将作业交给操作员,操作员收到一定数量的作业后,组成一批作业,后输入计算机,这批作业在系统中形成一个连续的、自动转换的作业流。最后由操作员将作业结果交给用户。

特点与分类

​ 特点:成批处理,批处理过程中,用户不可干预程序的运行。即如果中途发现错误,只能等待完成后进行下一次提交。这种处理方式延长了软件开发时间,所以批处理适合成熟的程序。
优点:作业自动转换,资源利用率高,作业吞吐量大(单位时间内处理作业的个数),从而提高了整个系统的效率。

缺点:

​ 用户不能直接与计算机交换,不利于调试。

分类

​ 简单批处理系统:作业串行执行。
​ 多道批处理系统:作业并行执行。

分时系统
基本工作方式

​ 一台主机连接若干个终端,每个终端可以由一个用户使用。用户通过终端交互式地向系统发送请求命令,CPU采用时间片轮转的方式处理请求,并通过交互方式在终端上显示结果。
设计思想
​ 将处理器运行时间划分成若干个小片段,称为时间片。操作系统以时间片为单位,对每个终端的请求进行处理。由于时间片及短,远远小于人类反应时间,所以每个用户感觉不到别的用户的存在,以为系统是他独占的。

特点

多路线:多个用户同时使用一台计算机,宏观上多个用户同时使用一个处理器,微观上每人在不同时刻(时间片)轮流使用一个处理器。
交互性:用户根据相应结果进行下一步操作,直接干预每一步的进行。
独占性:用户感觉不到其他人在使用计算机,好像是在单独使用。
及时性:系统对用户请求给予及时相应。

目标

​ 及时相应用户输入的交互命令,相应时间越短越好。
一般通用操作系统结合了分时系统与批处理系统的特点,处理原则是:分时优先,批处理在后。一般把分时系统运行状态称为前台,批处理系统运行状态称为后台。分时作业称为前台作业(处理终端用户、交互式的、比较小的、需要及时处理的作业)。批处理作业称为后台作业(运行时间较长、需要其他外部设备、比较大型、无需终端用户干预)。

实时操作系统

实时操作系统:计算机能在规定时间内,及时相应外部事件请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致地工作的操作系统。

主要目标:在严格时间范围内,对外部请求做出反应,系统具有高度可靠性。

硬实时系统:如火箭导弹控制等,时间精确度通常在微妙以下。
软实时系统:如银行。
实现要求

具有多道程序系统的基本能力
**实时时钟管理:**能对实时任务(定时任务、延时任务(主动式和从动式))进行实时处理。
**过载保护:**有能力在突发的大量实时任务中,找出并执行(通过抛弃或延后次要任务)最重要的任务。
高可靠性:实时操作系统的任何故障都可能带来巨大的危害,所以软件和硬件都需要很强的健壮性和坚固性。

嵌入式操作系统

嵌入式操作系统就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。

优点:高可靠性、实时性、占有资源小、智能化能源管理、易于连接、低成本等优点。

个人计算机操作系统

是一种单用户多任务的操作系统。

**特点:**某一时间段内为单个用户服务、采用界面友好的图形界面进行人机交互、使用方便,用户无需专业知识。

网络操作系统

基于计算机网络、在各种计算机操作系统之上按网络体系结构协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享和各种网络应用。

网络操作系统把计算机网络中的各个计算机有机地连接起来,其目标是相互通信及资源共享。

分布式操作系统

​ 将大量的计算机通过网络连接到一起,可以获得 更高的运算能力及广泛的数据共享。分布式操作系统是网络操作系统的更高形式,处理具有网络操作系统的各种功能之外,还具备如下特征:是一个统一的操作系统,在系统内的所有主机使用的是统一操作系统。
实现资源的深度共享。通过统一的操作系统调度,在某主机的计算任务可以迁移到另一主机上,真正实现了处理器资源的共享
透明性:在用户眼里分布式操作系统就是一台具有强大运行能力的计算机。
自治性:系统内的各个主机关系平等,没有主从关系,一台失效不会产生影响。
**优点:**分布式、可靠性。

操作系统的设计过程

操作系统的三方面设计是互相渗透的,不能截然分开的。目标是设计出具有好结构、高功效、又具有所需功能的操作系统。

功能设计:确定操作系统类型及所具有的功能
算法设计:根据计算机性能和所需功能,选择满足条件的算法 策略,并分析和估算其功效。
结构设计:按照系统功能和特性要求,选择合适的结构,是操作系统结构清晰、简明、可靠、易读、易修改,使用方便、适用性强。
操作系统的设计目标
​ **可靠性:**正确性和健壮性
高效性:可提高系统中各种资源的利用率,即提高系统运行效率。
易维护性
可移植性
安全性
简明性

操作系统的结构设计

操作系统结构设计的重要性
目的是将一个大型软件划分成若干较小的模块,以及这些模块间如何交互。

操作系统结构研究的目标

​ 系统模块化
​ 模块标准化
​ 通信规范化
​ 操作系统的结构
​ 整体式结构

1.3操作系统的基本特征

(一)并发性

1、并发性与并行性

并行性:两个或多个事件在同一时刻发生;

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

2、进程

概念:进程是系统中能够独立运行并作为资源分配的基本单位,由一组机器指令、数据以及堆栈组成;

​ 作用:程序是静态实体,不能独立运行也不能与其他程序并发运行。通过为属于同一应用程序的几个程序分别建立进 程可以实现这几个进程的并发执行;也可以为在内存中的多个用户程序分别建立进程,使得这些进程可以并发执行 , 即实现多道程序运行。因此,进程的引入可以极大提高资源的利用率以及系统的吞吐量。

3、线程

​ 在引入线程的OS中,进程作为资源分配的基本单位,因此调度进程时付出的开销较大;线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。线程的引入是现代操作系统的重要标志。

(二)共享性

概念:是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。也称资源共享或资源复用。

实现资源共享的两种主要方式:

互斥共享方式:在一段时间内只允许一个进程(线程)访问该资源。把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源。

​ **同时访问方式:**系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。

(三)虚拟技术
1、概念:

​ 通过某种技术把一个物理实体变为若干个逻辑上的对应物。

2、虚拟技术的两种实现方式:
(1)时分复用技术

概念:时分复用技术即分时使用技术

虚拟处理机技术:在虚拟处理机技术中,利用多道程序设计技术,为每道程序建立一个进程,让多道程序并发地执行,以此来分时使用一台处理机。我们把用户所感觉到的处理机称为虚拟处理器。时分复用技术是利用 处理机的空闲时间来运行其它的程序,使处理机的利用率得以提高

虚拟设备技术:我们还可以通过虚拟设备技术,将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,并允许每个用户占用一台逻辑上的 I/O 设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界 资源),变为在一段时间内允许多个用户同时访问的共享设备。

(2)空分复用技术
空分复用技术的两种实现:
虚拟磁盘技术:

​ 空分复用技术的两种实现::空分复用则是利用存储器的空闲空间来存放其它的程序,以提高内存的利用率。但是单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储。而虚拟存储技术在本质上就是使内存分时复用。它可以使一道程序通过时分复用方式,在远小于它的内存空间中运行。 例如,一个 100 MB 的应用程序可以运行在 20 MB 的内存空间。器容量的能,必须引入虚拟存储技术才能达到此目地。

(四)异步性

​ 进程是以人们不可预知的速度向前推进,此即进程的异步性(Asynchronism)。

1.4操作系统的主要功能

操作系统的主要任务**,是为多道程序的运行提供良好的运行环境。操作系统应具有这样几方面的功能:处理机管理,存储器管理,设备管理和文件管理。此外还需提供面向用户的接口以及面向网络的服务。

(一)处理机管理功能
1、处理机管理功能的本质

在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理 可归结为对进程的管理;处理机管理的主要功能是创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进 程(线 程) 之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。

2、进程控制

​ 为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。

3、进程同步

(1)进程同步的作用:进程同步的主要任务是为多个进程(含线程)的运行进行协调。

(2)进程同步的两种协调方式

①进程互斥方式:诸进程(线程)在对临界资源进行访问时,应采用互斥方式。最简单的用于实现进程互斥的机
制是为每一个临界资源配置一把锁 W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。

​ ②进程同步方式:在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。实现进 程同步的最常用的机制则是信号量机制。

4、进程通信

进程通信的任务就是用来实现在相互合作的进程之间的信息交换。当相互合作的进程(线程)处于同一计算机系统 时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列上,以后由目。标进程利用接收命令从其消息队列中取出消息。

5、调度
调度分类:作业调度、进程调度

作业调度:作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先 是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的 算法将它们插入就绪队列。

进程调度:进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运 行现场,使进程投入执行。

(二)存储器管理功能
1、内存分配
(1)作用:为每道程序分配内存空间;
(2)两种内存分配方式:

动态内存分配:每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内 存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。

静态内存分配:每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请 新的内存空间,也不允许作业在内存中“移动

(3)内存分配机制应具有的结构和功能:

​ 内存分配数据结构、内存分配功能、内存回收功能。

2、内存保护

**(1)主要作用:**确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程 序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。

(2)内存保护机制:设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。

3、地址映射

程序的逻辑地址通常从0开始,而物理地址不从0开始,因此需要一个映射转换过程。

4、内存扩充

(1)借助于虚拟存储技术,从逻辑上去扩充内存容量。

(2)为了能在逻辑上扩充内存,系统必须具有内存扩充机制,

1.5 OS的结构设计

传统操作系统结构

无结构操作系统

​ ***特点:***注重在功能的实现和获得高的效率,缺乏首尾一致的设计思想。
此时的OS是为数众多的一组过程的集合,每个过程可以任意 地相互调用其它过程,致使操作系统内部既复杂又混乱,因此,这种OS是无结构的,也 有人把它称为整体系统结构。
*此时程序设计的技巧:*只是如何编制紧凑的程序,以便于有效地利用内存。

模块化结构OS

特点:OS具有较清晰的结构,模块独立性
定义: 为使OS具有较清晰的结构,OS 不再是由众多的过程直接构成的,而是按其功能精心地划分为若干个具有一定独立性和大 小的模块。每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备 管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过接口实现交互。然后 再进一步将各模块细分为若干个具有一定功能的子模块,如把进程管理模块又分为进程控 制、进程同步等子模块,同样也规定好各子模块之间的接口。若子模块较大,可再进一步 将它细分。我们把这种设计方法称为模块-接口法,由此构成的操作系统就是具有模块化 结构的操作系统。
衡量模块的独立性有以下两个标准:
(1) 内聚性,指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越强。
​ **(2) 耦合度,**指模块间相互联系和相互影响的程度。显然,耦合度越低,模块独立性越好。

保留问题:

⑴在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
(2)在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上 一个决定的基础上,但模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的 决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定” 都是建立在可靠的基础上,因此模块-接口法又被称为’‘无序模块法”。

分层式结构OS

** 改进:**为了将模块-接口法中"决定顺序”的无序性变为有序性,引入了有序分层法,分层法的设计任务是,在目标系统An和裸机系统(又称宿主系统)A0之间,铺设若干个层次的软 件A1、A2、A3、…、An-1使An通过An-1、An-2、…、A2、A1层,最终能在A0上运行。 在操作系统中,常釆用自底向上法来铺设这些中间层。

自底向上的分层设计基本原则:

​ 每一步设计都建立在可靠的基础上。

优点:

**(1) 易保证系统的正确性。**自下而上的设计方式使所有设计中的决定都是有序的,或 者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。
**(2) 易扩充和易维护性。**在系统中增加、修改或替换一个层次中的模块或整个层次时,只 要不改变相应层次间的接口,就不会影响其他层次,这必将使系统维护和扩充变得更加容易。

缺点:

分层结构的主要缺点是系统效率降低。由于层次结构是分层单向依赖的,必须在每层 之间都建立层次间的通信机制,OS每执行一个功能,通常要自上而下地穿越多个层次,这 无疑会增加系统的通信开销,从而导致系统效率的降低。

微内核OS结构
特点:

​ 为了提高操作系统的“正确性”、“灵活性”、“易维护性”和“可扩充性”,在进行现代操作系统结构设计时,即使在单计算机环境下,大多也釆用基于客户/服务器模式的微内核 结构,将操作系统划分为两大部分:微内核和多个服务器。

定义:
1)足够小的内核

​ 在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本核心功能的小型内核,微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常
​ 包含有:①与硬件处理紧密相关的部分:②一些较基本的功能;③ 客户和服务器之间的通信。

2)基于客户/服务器模式

将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功 能都放在微内核外面的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线 程)服务器、提供虚拟存储器管理功能的虚拟存储器服务器、提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。

3) 应用“机制与策略分离”原理

​ 在现在操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。 所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上借助于某些 参数和算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于一个系统的基 层,而策略则处于系统的高层。在传统的OS中,将机制放在OS的内核的较低层,把策略 放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。正因为如此,才有可能将内核做得很小。

4) 釆用面向对象技术

​ ****基本功能:
​ 1)进程(线程)管理
由于进程(线程)之间的通信功能是微内核OS最基本的功能,被频繁使用,因此几乎所 有的微内核OS都是将进程(线程)之间的通信功能放入微内核中。此外,还将进程的切换、 线程的调度,以及多处理机之间的同步等功能也放入微内核中。
​ 2) 低级存储器管理
通常在微内核中,只配置最基本的低级存储器管理机制,如用于实现将用户空间的逻 辑地址变换为内存空间的物理地址的页表机制和地址变换机制,这一部分是依赖于硬件的, 因此放入微内核。而实现虚拟存储器管理的策略,则包含应釆取何种页面置换算法、釆用何种内存分配与回收的策略等,应将这部分放在微内核外的存储器管理服务器中去实现。
​ 3) 中断和陷入处理
大多数微内核操作系统都是将与硬件紧密相关的一小部分放入微内核中处理,此时微 内核的主要功能是捕获所发生的中断和陷入事件,并进行相应的前期处理,如进行中断现 场保护,识别中断和陷入的类型,然后将有关事件的信息转换成消息后,把它发送给相关 的服务器。由服务器根据中断或陷入的类型调用相应的处理程序来进行后期处理。
优点:
(1) 提高了系统的可扩展性。
(2) 增强了系统的可靠性。
(3) 可移植性强。
(4) 提供了对分布式系统的支持。
(5) 融入了面向对象技术
不足:
其中最主要的是,较之早期的操作系统,微内核操作系统的运行效率有所降低。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值