操作系统(Operating System, OS)是配置在硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理硬件设备,提高它们的利用率和系统吞吐量,并为用户和程序提供一个简单的接口,便于用户和应用程序使用硬件设备。OS是现代计算机系统中最基本和最重要的系统软件,已成为各系统都必须配置的系统软件。
目录
1.1 操作系统目标和作用
OS的目标和应用环境有关,在不同的环境下OS的目标会改变。
1.1.1 操作系统目标
1.方便性
配置OS后用户可使用各种命令来操控计算机系统,没必要通过机器语言来编写程序,极大的方便了用户。
2.有效性
①提高系统资源的利用率
②提高系统的吞吐量
3.可扩充性
可扩充性的好坏与OS的结构有着十分紧密的联系,OS近年来采用微内核结构,方便增添新的功能和板块及对原有功能和模块进行修改,具有良好的可扩充性。
4.开放性
即遵循国际标准,特别是遵循开放系统互连参考模型。
1.1.2 操作系统的作用
1、OS作为用户和计算机硬件系统之间的接口。
用户通过OS来使用计算机硬件系统,即通过OS操控计算机硬件和运行自己的程序。
用户实现自身与OS的通信的方式:
①命令方式(UNIX、DOS命令)
②系统调用方式(API)
③图形/窗口方式(GUI方式)
操作系统向用户提供了两类接口:用户接口和程序接口。
用户接口是为了方便用户使用计算机资源所建立的用户和计算机之间的联系。也就是说用户并没有直接使用计算机资源的权限,而操作系统有这个权限,操作系统可以向用户提供命令、系统调用、图形等形式的接口,完成用户提交的各类任务。
程序接口由一组系统调用命令组成,这是操作系统提供给编程人员的接口。用户通过在程序中使用系统调用命令来请求操作系统提供服务。每一个系统调用都是一个能完成特定功能的子程序。
2. OS作为计算机系统资源的管理者(硬+软=计算机系统资源)
处理机管理:负责处理机的分配和控制
存储器管理:负责内存的分配与回收
I/O设备管理:负责I/O设备的分配(回收)与操纵
文件管理:即信息(数据和程序)负责文件的存取、共享与保护等。
3. OS实现了对计算机资源的抽象(虚拟机)
在裸机上覆盖一层I/O设备管理软件的I/O设备为扩充机器或虚机器,向用户提供了一个对硬件操作的抽象模型。
1.1.3 推动操作系统发展的主要动力
1、不断提高计算机系统资源利用率
2、方便用户
eg:20世纪90年代初,图形用户界面的出现受到用户欢迎,推动计算机的发展。
3、器件的不断更新换代
4、计算机体系结构的不断发展
eg:计算机由单处理机系统发展为多处理机系统时,OS由单处理机OS发展为多处理机OS。
5、不断提出新的应用需求
1.2 操作系统的发展过程
1.2.1 未配置操作系统的计算级系统
1.人工操作方式(此阶段无操作系统)
早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。
缺点:1、用户独占全机 2、CPU 等待人工操作
2.脱机I/O方式
程序员将穿孔的纸带通过外围机将纸带上的数据输入到磁盘里,再从磁盘上把数据高速调入内存,输出的结果再通过外围机到相应的输出设备输出。这样可以解决人机矛盾以及CPU与I/O设备速度不匹配的矛盾。
优点:1、减少CPU的空闲时间 2、提高了I/O速度
1.2.2 单道批处理系统
即监控程序,此时操作系统开始出现,批处理可提高效率。
1、单道批处理系统的处理过程
为实现对作业的连续处理,需要先把一批作业以脱机I/O方式输入到磁带上,并在系统中配上监督程序,在它的控制下,使这批作业能一个接一个地连续处理。
单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。
目的:提高系统资源的利用率和系统吞吐量
特点:1.单道性 2.顺序性 3.自动性
2、缺点:系统中的资源得不到充分利用
1.2.3 单道批道处理系统
1、多道程序设计的基本概念
在多道程序设计系统中,用户提交的作业先放在外存上,并排成一个队列,称为后备队列。然后由作业调度程序按照一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
计算机内存中加载多个程序,变成进程。
2、特点:1.多道性 2.无序性 3.调度性
优点:1、资源利用率高 2、资源吞吐量大
缺点:1、平均周转时间长 2、无交互能力
3、多道批处理系统需要解决的问题
争用处理机问题
内存分配和保护问题
I/O设备分配问题
文件的组织和管理问题
作业管理问题
用户与系统的接口问题
OS定义:OS是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
1.2.4 分时系统
分时系统的引入:1、人机交互 2、共享主机
分时系统实现过程中的关键问题:1、及时接收 2、及时处理
分时系统的特征:
1、多路性。 允许一台主机上联接多台终端,系统按分时原则为每个用户服务;
2、独立性。 每个用户各占一个终端,独立操作,互不干扰;
3、及时性。 用户的请求能在很短的时间内获得响应;
4、交互性。 用户可通过终端与系统进行广泛的人机对话。
缺点:不能有效处理紧急任务操作系统对各个用户 / 作业都是完全公平的,循环地为每个用户的作业服务一个时间片,不区分任务的紧急性。
1.2.5 实时系统
实时系统的特征:1、多路性 2、独立性 3、及时性 4、交互性 5、可靠性(实时性系统比分时性系统高)
优点: 能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
1.2.6 微机操作系统
按字长分有8位 16位 32位 64位
字长:在同一时间中处理二进制数的位数
按照运行方式分:
1. 单用户单任务操作系统: CP/M(8位)、MS-DOS(16位)
2.单用户多任务操作系统
单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分成若干个任务,使它们并行执行,从而有效改善系统的性能 如windows系列
3.多用户多任务操作系统
允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。
在大、中和小型机中所配置的大多是多用户多任务操作系统,而在32位微机上,也有不少配置的是多用户多任务操作系统,其中最有代表性的是UNIX系统。
1.3 操作系统的基本特性
并发,共享,虚拟,异步
1.3.1 并发
并发性是指宏观上在一段时间间隔内能同时运行多个程序,而并行性则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线或者多处理器。操作系统通过引入进程和线程,使得程序能够并发运行。
1.3.2 共享
共享是指系统中的资源可以供多个并发的进程共同使用。有两种共享方式:互斥共享和同时共享。
互斥共享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,否则会出现错误,需要用同步机制来实现对临界资源的访问。
1.3.3 虚拟
虚拟技术把一个物理实体转换为多个逻辑实体。主要有两种虚拟技术:时分复用技术和空分复用技术,例如多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换,这样就好像有多个处理器进行处理。
时分复用:虚拟处理机(多道程序)技术、虚拟设备技术
空分复用:多道程序共享内存,多文件共享磁盘, 用以提高存储空间的利用率
1.3.4 异步
异步是指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。可见,由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以"停停走走”的方式运行。
1.4 操作系统的主要功能
1.4.1 处理机管理功能
1)进程控制:为作业创建进程、撤销(终止)已结束的进程,控制进程在运行过程中的状态转换。
2)进程同步:为了使多进程同时运行时协调,有两种方式
进程互斥方式:进程在对临界资源进行访问时,应采用互斥方式。(临界资源加锁实现,关锁时禁止访问;锁开时允许访问。)
进程同步方式:相互合作去完成共同任务的进程间,由同步机构对他们的执行次序加以协调。(信号量机制)
3)进程通信:实现相互合作进程之间的信息交换。
4)调度
作业调度:从后备队列中按照一定算法选择出若干个作业,为他们分配运行所需资源,讲作业调入内存后,分别建立与之对应的进程,使它们成为可能获得处理机的就绪进程,并将他们插入就绪队列中。
进程调度:从进程就绪队列中按照一定算法选出一个进程,将处理机分配给他,并为他设置运行现场,使其投入执行。
1.4.2 存储器管理功能
1、内存分配
(1)作用:为每道程序分配内存空间;提高存储器利用率,尽量减少内存空间碎片。
(2)两种内存分配方式:
动态内存分配:每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
静态内存分配:每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。
(3)内存分配机制应具有的结构和功能:内存分配数据结构、内存分配功能、内存回收功能。
2、内存保护
(1)主要作用:确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。
(2)内存保护机制:设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统对每条指令所要访问的地址进行检查,如果发生越界,产生越界中断请求,停止该程序的执行。
3、地址映射
程序的逻辑地址通常从0开始,而物理地址不从0开始,因此需要一个映射转换过程。
4、内存扩充
(1)借助于虚拟存储技术,从逻辑上去扩充内存容量。
(2)为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
请求调入功能:允许在装入一部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向 OS 发出请求,由 OS 从磁盘中将所需部分调入内存,以便继续运行。
置换功能:若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间,然后再将所需调入的部分装入内存。
1.4.3 设备管理功能
主要任务:
①完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;
②提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。
为此,设备管理应具有缓冲管理、设备分配和设备处理等功能。
1、缓冲管理
CPU运行的高速性和I/O低速性间的矛盾自计算机诞生时起便已存在。
如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。
因此,在现代计算机系统中, 都毫无例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法,来改善系统的性能。
常见缓冲区机制:单缓冲区机制、能实现双向同时传送数据的双缓冲区机制、能供多个设备同时使用的公用缓冲池机制
2、设备分配
设备分配的基本任务,是根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间,还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。
3、设备处理
设备处理程序又称为设备驱动程序。基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
处理过程是:设备处理程序首先检查I/O请求的合法性,了解设备状态是否是空闲的,了解有关的传递参数及设置设备的工作方式。然后向设备控制器发出I/O命令,启动I/O设备去完成指定的I/O操作。
1.4.4 文件管理功能
文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。
1、文件存储空间的管理
由文件系统对诸多文件及文件的存储空间,实施统一的管理。其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。为此,系统中应设置用于记录文件存储空间使用情况的数据结构,以供分配存储空间时参考,还应具备对存储空间进行分配和回收的功能。
2、目录管理
目录管理的主要任务,是为每个文件建立一个目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取。
通常由系统为每个文件建立一个目录项。目录项包括文件名、文件属性、文件在磁盘上的物理位置等。由若干个目录项又可构成一个目录文件。即用户只须提供文件名, 即可对该文件进行存取。
3、文件的读/写管理和保护
(1)文件的读/写管理:该功能是根据用户的请求,从外存中读取数据;或将数据写入外存。由于读和写操作不会同时进行,故可合用一个读/写指针。
(2)文件保护:防止未经核准的用户存取文件;防止冒名顶替存取文件;防止以不正确的方式使用文件。
1.4.5 操作系统与用户之间的接口
接口是指掩盖软件内部功能的实现细节,并向外提供一些使用的约定,用户不必知道软件内部是如何设计和实现的,只要能够利用这种软件提供给用户的一些命令和窗口会操作这种软件以帮助用户解决问题即可。
1、用户接口
为了方便用户控制自己的作业,操作系统提供了命令接口,该接口又分为联机用户接口、脱机用户接口和图形用户接口3种。
(1)联机用户接口:这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。用户可通过先后键入不同命令的方式,来实现对作业的控制,直至作业完成。
(2)脱机用户接口:该接口是为批处理作业的用户提供的,故也称为批处理用户接口。
(3)图形用户接口:采用图形化操作界面。
2、程序接口
该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。
1.4.6 现代操作系统的新功能
保障系统安全:认证技术、密码技术、访问控制技术、反病毒技术
支持用户通过联网获取服务:网络通信、资源管理、应用操作
可处理多媒体信息:接纳控制功能、实时调度、多媒体文件的存储
1.5 操作系统的中断处理
中断机制的作用:为了在多道批处理系统中让用户进行交互。
1、中断产生
发生中断时,CPU立马切换到管态,开展管理工作。(管态又叫特权态,系统态或核心态,是操作系统管理的程序执行时,机器所处的状态。)
发生中断后,当前运行的进程回暂停运行,由操作系统内核对中断进行处理;
对于不同的中断信号,会进行不同的处理。
2、中断的分类
内中断(也叫“异常”、“例外”、“陷入”)------- 信号来源:CPU内部,与当前执行指令有关;
外中断(中断)----------信号来源:CPU外部,与当前执行指令无关。
3、外中断的处理过程
每执行完一个指令后,CPU都需要检查当前是否有外部中断信号。
如果检查到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW,程序计数器PC、各种通用寄存器)把他们存储在PCB(进程控制块中)。
根据中断信号类型转入相应的中断处理程序。
恢复原进程的CPU环境并退出中断,返回原进程继续执行。
1.6 OS结构设计
简单结构OS
模块化结构OS
分层次结构OS
微内核结构OS
外核结构OS