计算机操作系统 慕课版 第1章 操作系统引论
第1章 操作系统引论
操作系统(OS,Operating System)是配置在计算 机硬件上的第一层软件,是对硬件系统的首次扩充。其 主要作用是管理好这些设备,提高它们的利用率和系统 的吞吐量,并为用户和应用程序提供一个简单的接口, 便于用户使用。OS是现代计算机系统中最基本和最重要 的系统软件,而其他的软件,如编译程序、数据库管理 系统等系统软件,以及大量的应用软件,都直接依赖于 操作系统的支持,取得它所提供的服务。事实上0S已成 为现代计算机系统、多处理机系统、计算机网络中都必须配置的系统软件。
1.1、操作系统的目标和作用
操作系统的目标与应用环境有关。例如在查询系统中所用的OS,希望能提供良好的人—机交互性;对于应用于工业控制、武器控制以及多媒体环境下的OS,要求其具有实时性;而对于微机上配置的OS,则更看重的是其使用的方便性。
1.1.1、操作系统的目标
通常在计算机硬件上配置的OS,其目标有以下几点:
1)方便性:用户通过操作系统来使用计算机,让计算机变的易学易用。
2)有效性:
- 提高系统资源的利用率。
- 提高系统的吞吐量。
3)可扩充性:为适应计算机硬件、体系结构,以及应用发展的 要求,OS必须具有很好的可扩充性。
- 向下兼容:在计算机中指在一个程序或者类库更新到较新的版 本后,用旧的版本程序创建的文档或系统仍能被正常操作或使用。
- 向上兼容就是还要给未来的发展留出空间和余地来。
4)开放性:所谓开放性,是指系统能遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。
1.1.2、操作系统的作用
- 用户与计算机硬件系统之间的接口
-
命令方式(UNIX、DOS命令)
-
系统调用方式(API)
-
GUI方式(Windows、LINUX)
-
- 计算机系统资源的管理者
- 处理机管理、存储器管理、I/O设备管 理、文件管理。
- 实现对计算机资源的抽象
- 裸机:无软件的计算机系统。
- 虚拟机:覆盖了软件的机器,向用户提 供一个对硬件操作的抽象模型。
1.1.3、推动操作系统发展的主要动力
- 不断提高计算机资源利用率。
- 方便用户。
- 器件的不断更新换代。
- 计算机体系结构的不断发展。
- 不断提出新的应用需求。
1.2、操作系统的发展过程
1.2.1、 无操作系统的计算机系统
1、人工操作方式
从第一台计算机诞生(1946年),20世纪40年代到50年代中期的计算机, 属于第一代,这时没有操作系统。对计算机的全部操作采用人工方式进行。
操作方式:
计算机操作是由程序员将事先已穿孔(对应于程序和数据) 的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们 将程序和数据输入计算机,然后启动计算机运行。当程序运行 完毕并取走计算结果之后,才让下一个用户上机。
程序员直接使用计算机硬件系统,效率低下。 有以下两方面的缺点:
- 用户独占全机。
- CPU等待人工操作。
人机矛盾突出。后来发展了通道、缓冲技术,也没能 很好解决上述矛盾。直到脱机I/O出现后,才算获得比 较令人满意的结果。
2、脱机输入/输出(Off-Line I/O)方式
20世纪50年代末出现了脱机输入/输出(Off-Line I/O)技术。该技术是事先 将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或一卡片机),在一台 外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这 些程序和数据时,再从磁带上将其高速地调入内存。输出时,CPU将数据从 内存送到磁带上。在另一台外围机的控制下,将磁带上的结果通过相应的输出 设备输出。
脱机I/O方式的主要优点:
- 减少了CPU的空闲时间。
- 提高I/O速度。
联机:受系统控制,交互性好。
脱机:不受系统控制, 独立的封闭性的环境, 交互性差。
1.2.2、单道批处理系统
第二代晶体管计算机,20世纪50年代中期——单道批处理系统。
1、单道批处理系统(Simple Batch Processing System)的处理过程
- 有一个监控程序(Monitor)软件常驻内存。
- 为实现对作业的连续处理,需要操作员先把一批作业 以脱机方式按序成批地方在一个输入设备上(磁带)。
- 监督程序自动控制输入设备一次装入内存一道作业, 并启动运行,运行完毕,再装入下一道作业。
- 使这批作业单个地进入内存,能一个接一个地连续处理。
单道批处理系统的处理过程:
作业的概念:
Job是指,计算机用户在一次上机过程中要求计算机系统为其所做工作的集合;作业中的每项相对独立的工作称为作业步。
通常,人们用一组命令来描述作业;其中,每个命令定义一个作业步。
2、单道批处理系统的特征
- 自动性。在顺利的情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预。
- 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,先调入内存的作业先完成。
- 单道性。内存中进有一道程序运行,即监控程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
3.单道批处理系统的缺点
- 由于IO速度低,CPU的空闲太长,系统资源得不到充分的利用。现在已经很少使用。
1.2.3、多道批处理系统
第三代计算机60年代中期集成电路集成电路芯片,多道程序批处理、分时系统。
1、多道程序设计的基本概念
在60年代中期引入了多道程序设计技术,形成了多道批处理系统。
多道程序设计:是指在主存同时存放若干道程序,使 它们在系统中交叉运行,共享系统中的各种资源(程序和 数据等)。当一道程序暂停执行时,CPU立即转去执行另 一道程序。 多道技术是共享的基础。
(1)同时在内存中装有若干道程序,并使它们交替地运行。
(2)保持了CPU处于忙碌状态。
(3)进一步提高了资源的利用率和系统吞吐量!
在单处理机系统中。宏观上,多道程序并行运行;微观上,在任何特定时刻,只有一道程序在处理机上运 行,即各程序交叉地在CPU上运行。多道程序运行情况 由于同时在内存中装有若干道程序,并使它们交替地运行, 这样,当正在运行的程序因I/O而暂停执行时,系统可调 度另一道程序运行,从而保持了CPU处于忙碌状态。
2、多道程序设计技术的优缺点
(1)资源利用率高。提高CPU、内存和I/O设备的利用率。
(2)增加系统吞吐量。
(3)平均周转时间变长。
(4)无交互能力。
3、多道批处理系统需要解决的问题
- 处理机争用问题
- 内存分配和保护问题
- I/O设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
OS主要解决的问题(五大功能)
- 处理机管理 解决争用问题,提高利用率
- 存储器管理分配空间,各得其所
- 设备管理 方便用户,提高利用率
- 文件在外存上的组织和管理(如何存取),方便用 户,保证数据安全
- 作业管理,对作业(应用程序)管理,满足用户的要求
1.2.4、分时系统
1、分时系统(Time-Sharing System)的产生
1)、推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量。
2)、推动分时系统形成和发展的主要动力,则是用户的需求。
用户的需求:
(1) 人—机交互。(批处理系统做不到)
(2) 共享主机。 (感觉独占)
(3) 便于用户上机。
工作方式:在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可通过自己的终端以交互方式使用计算机。
用户交互式地向系统提出命令请求,系统接受命令,采用时间片轮转方式处理请求,并在终端上显示结果。如在大型数据库上的查询。
分时:多用户分时使用CPU。将CPU的单位时间划分成若干个时间片(30ms) 。
2、分时系统实现中的关键问题
最关键的问题是如何使用户能与自己的作业进行交互。
(1)及时接收
(2)及时处理
用户在自己的终端上键入命令时,系统应能及时接受并处理该命令,并将结果返回给用户。此后,用户可继续键入下一条命令。
即使有多个用户同时通过自己的键盘键入命令,系统应能全部的及时接收并及时处理。(多路卡、命令缓冲区)
运行方式:用户作业不能先进入磁盘,然后再调入内存,作业应直接进入内存。不允许一个作业长期占用处理机,时间片结束然后便暂停该作业的运行,并立即调度下一个作业运行。
3 、分时系统的特征
- 多路性:允许将多台终端同时连接到一台主机,并分时使用。
- 独立性:感觉用户独占 主机。
- 及时性:用户的请求能在很短时间内 获得响应(1~3秒)。
- 交互性:用户可通过终端与系统进行广泛的人机对话。
4、分时系统和多道批处理系统的比较
批处理系统:
◆目标是提高系统资源的利用率。 适用于比较成熟的大型作业。
◆可在后台执行。不需要用户频 繁干预。
分时系统:
◆目标是对用户请求的快速响应。
◆适用于短小作业。
◆终端键入命令。
1.2.5、实时系统
1、实时系统的类型
是计算机能对随机发生的外部事件做出及时的响应和处理。是一个专用系统。不以作业为处理对象,只有几个由外部事件触发的任务。最主要的特征:实时性
- 工业(武器)控制系统
- 多媒体系统
- 信息查询系统
- 嵌入式系统
➢实时过程控制:工业生产中的自动控制,飞机导航、导弹发射等。
➢实时信息处理:民航机票的预订、查询,银行系统的借贷,情报信息检索 等系统。
2、实时任务的类型
根据任务执行时是否呈现周期性来划分
(1)周期性实时任务。外部设备所发出的激励信号有周期性。
(2)非周期性实时任务。
开始截止时间:任务在某时间前必须开始执行;
完成截止时间:任务在某时间前必须完成。
根据对截止时间的要求来划分
硬实时任务(hard real-time task):系统必须满足对截止时间的要求,否则 可能出现难以预测的结果。
软实时任务(Soft real-time task):错过任务的截止时间,对系统产生的影响不会太大。
3、实时系统
- 多路性。周期性地对多路现场信息进行采集,以及 对多个对象或多个执行机构进行控制
- 独立性。对信息的采集和对对象的控制互不干扰。
- 及时性。控制对象要求的截止时间多为秒级到毫秒级的。
- 交互性。 仅限于访问系统的某些特定的专 用服务程序。如多媒体系统的开始、停止、 快进等。它不像分时系统那样能向终端用 户提供数据处理和资源共享等服务。
- 可靠性。系统按固定的,预先确定的时间 执行指定的操作。采用多级容错来保障系统和数据的安全性。
4、实时系统与分时系统特征的比较
1)分时系统侧重于:多个用户终端的互不干扰,人机交互;
2)实时系统侧重于:多路控制现场的设备、数据互不干扰,特定程序间的数据信息交互。
1.2.6、微机操作系统
- 单用户单任务操作系统
只允许一个用户上机、只允许用户程序作为一个任务运行。
- CP/M,MS-DOS
- 单用户多任务操作系统
只允许一个用户上机,但允许用户有多个任务,并发执行。
- Windows 95/98
- 多用户多任务操作系统
允许多个用户通过各自的终端,使用同一台主机,共享系统资源,每个用户又可有多个任务,并发执行。
- Solaris OS
- Linux OS
- Windows NT/Server
1.2.8、网络操作系统
网络OS的概念:在计算机网络环境下对网络资源进行管理和控制, 实现数据通信及对网络资源的共享,为用户提供与 网络资源接口的一组软件和规程的集合
网络OS的种类:UNIX、Linux、Window NT/2000/Server
网络OS的特征:
- 硬件独立性
- 接口一致性
- 资源透明性
- 系统可靠性
- 执行并行性
网络OS的功能:数据通信、应用互操作、网络管理。
1.2.9、分布式操作系统
1.分布式系统
定义:基于软件实现的一种多处理机系统,是多个处理机通过通信线路互连而构成的松耦合系统。
特征:分布性、透明性、同一性、全局性。
2.分布式OS
定义:配置在分布式系统上的公用OS。
例子:万维网、鸿蒙OS。
3.分布式OS的功能
- 单处理机OS的主要功能;
- 网络OS所拥有的全部功能;
- 还包括:通信管理功能、资源管理功能、进程管理功能。
分布式系统:
- 每个节点是一台独立的计算机,具有高度的自治性
- 节点的耦合程度更低,地理分布区域更广阔。
- 每个节点均可以运行不同的OS,除本节点管理外, 其他多个机构会对其实施管理。
高度的自治性,又互相协同,能在系统范围内实现资 源管理,动态分配任务,并行地运行分布式程序。
1.2.10、OS概念总结
操作系统:是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序的集合。
操作系统:是配置在计算机硬件上的第一层软件,是对硬件的第一次扩充,填补了人与计算机之间的鸿沟。
操作系统:是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序的集合。合理地组织计算机的工作流程,以提高资源的用率。
1.3、操作系统的基本特性
- 并发(Concurrence)
- 共享(Sharing)
- 虚拟(Virtual)
- 异步 (Asynchronism)
1.3.1、并发性
在单道程序环境下,并发性是指一段时间内宏观 上有多个程序在同时运行,但在单处理机系统中, 每一时刻却仅能有一道程序运行,微观上这些程序只能是分时的交替执行。
如果有多个处理机,则可以并发的进程便可被分配到多个处理机上,实现并行执行。
并行性是指两个或多个事件在同一时刻发生;
并发性是指两个或多个事件在同一时间间隔内发生。
在单处理机系统中:
宏观上有多个程序在同时运行, 微观上只能是分时地交替执行.
引入进程
进程的概念
所谓进程,是指在系统中能够独立运行并能作为资 源分配对象的基本单位,它是由一组机器指令、数据和 堆栈等组成,是一个能独立运行的活动实体。多个进程 可以并发执行和交换信息。
1.3.2、共享性
所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
1、互斥共享方式
在一段时间内只允许一个进程访问的资源称为 临界资源或独占资源。(如打印机)
临界资源:被互斥地共享。
2、同时访问方式
允许在一段时间内由多个进程“同时”进行访问。 “同时”往往是宏观上的,而在微观上,这些进程可能 是交替地对该资源进行访问。如:硬盘上用可重入码编写的 文件。
并发和共享是操作系统的两个最基本的特征,它们互为存在的条件。
若系统不允许程序(进程)并发执行,就不存在资源共享的问题。
若系统不能协调好诸进程对共享资源的访 问,也必然影响到程序并发执行的程度。
1.3.3、虚拟性
(1)操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
(2)用于实现虚拟的技术,称为虚拟技术。如虚拟处理机,虚拟存储器,虚拟外部设备等。
(3)虚拟技术可使需要互斥访问的设备(即:临界资源)变为允许多个用户同时访问的共享设备。
虚拟技术:时分复用,空分复用
1)时分复用
(1)虚拟处理机技术
在虚拟处理机技术中,利用多道程序设计技术,为每道程序创建一个进程,让多道程序并发地执行,以此来分时使用一台处理机。此时,虽然系统中只有一台处理机,但它能同时为多个用户服务,使每个终端用户都认为是有一个处理机在专门的为自己服务。亦即,利用多道程序设计技术,把一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序。我们把用户感觉到的处理机称为虚拟处理器。
(2)虚拟设备技术
我们可以通过虚拟设备技术,将一台物理O设备虚拟为多台逻辑上的IO设备,并允许每个用户占用同一台逻辑上的IO设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备〔即临界资源),变为在一段时间内允许多个用户同时访问的共享设备。
2)空分复用
在计算机中用空分复用技术来提高存储空间的利用率。
虚拟存储器技术
在计算机中用空分复用技术来提高存储空间的利用率.虚拟存储器技术
在单道程序环境下,处理机会有很多空闲时间,内存也会有好多空闲空间,显然,这样会使处理机和内存的效率低下。如果说时分复用技术是利用处理机的空闲时间来运行其他的程序,使处理机的利用率得以提高,那么空分复用则是利用存储器的空闲空间来存放其他的程序,以提高内存的利用率。
注意:单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,必须引入虚拟存储器技术才能达到此目的。而虚拟存储器技术在本质上就是使用内存分时使用。它可以使一道程序通过时分复用方式,在远小于它的内存内存空间中运行。
1.3.4、异步性
由于资源等因素的限制,使进程的执行通常都不是 “一气呵成” ,而是以“停停走走”的方式运行。
并发执行的进程是以人们不可预知的速度向前推进, 此即进程的异步性。比如正在执行的进程需要打印机时, 若打印机忙碌时,需等待,且放弃处理机。
异步运行方式是操作系统的一个重要特征。 进程的 推进速度不可预知,可能先进入内存的作业后完成,后 进入内存的作业先完成。
1.4、操作系统的运行环境
1.4.1、硬件支持
1.4.2、操作系统内核
(1)支撑功能
- 中断处理(系统调用、键盘命令的输入、进程调度、 设备驱动等)
- 时钟管理:时间片轮转调度,时间片用完,便由时钟管理产生一个中断信号,促使调度程序重新调度。
- 原语操作
- 由若干条指令组成,用于完成一定功能。
- 要么不做,要么全做,不可分割。
(2)资源管理功能
- 进程管理
- 存储器管理
- 设备管理
1.4.3、处理机的双重工作模式
状态位(Mode bit) 指示正确的状态:
- 内核态(0)
- 用户态(1)
当中断或错误出现,硬件切换至内核态
特权指令:如果误用, 有可能引 起系统崩 溃的指令。
内核态(管态、系 统态):执行包括 特权指令 在内的一 切指令。
用户态(目态):不能执行特权指令。
由硬件提供模式位:
- 提供了区分系统 正在运行用户代 码或内核代码的能力。
- 系统调用切换运 行模式到内核态, 并将调用结果返回给用户。
特权指令:在内核态下运行的指令
- 不仅能访问用户空间,还能访问系 统空间。
- 如启动外部设备、设置系统时钟、 访管中断、切换执行状态、I/O指令。
非特权指令:
- 在用户态下运行的指令
- 应用程序所使用的都是非特权指令。
- 防止应用程序的运行异常对系统造 成破坏。
- 仅能访问用户空间。
1.4.4、中断与异常
操作系统是中断驱动的,OS总在等待 某个事件的发生, 事件总是由中断或 异常引起的。
中断( interrupt ) :由硬件引起。
异常/陷阱(trap) :由软件引起。
- 出错(如除数为零或无效存储访问)
- 用户程序的特定
1.5、操作系统的主要功能
1.5.1、处理机管理功能
1、进程控制
创建进程、分配资源、撤消进程,控制进程状态转换。
2、进程同步
协调多个进程(含线程)的运行。
- 进程互斥方式(对临界资源)
- 进程同步方式(相互合作,完成共同任务, 对进程的执行次序加以协调)
- 进程通信 进程之间需要交换信息。输入——计算——打 印.
- 调度
- 作业调度
- 进程调度
1.5.2、存储器管理功能
1、内存分配
静态分配方式
作业在装入时确定空间大小,运行期间不允许作业 申请新的空间。
动态分配方式
作业在装入时申请基本的内存空间,运行期间可以 申请新的附加空间,允许作业“移动”。
① 相关数据结构
② 分配功能
③ 回收功能
2、内存保护
2、内存保护
确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
系统须对每条指令所访问的地址进行检查,如果发生越界,便发出越界中断请求,停止程序的执行。越界检查由硬件实现。
3、地址映射
源程序经编译后,形成若干目标程序,目标程序经过链接形成可装入程序,程序的地址从0开始。
地址空间(寻址空间):逻辑地址、相对地址
内存空间:物理地址
地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
该功能应在硬件的支持下完成。
4、内存扩充
借助虚拟存储技术:
(1)从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;
(2)满足更多用户程序的并发执行。
主要功能:
(1)请求调入功能
(2)置换功能
1.5.3、设备管理功能
主要任务:
⑴完成IO请求
⑵提高CPU和/O设备的利用率
1、缓冲管理
CPU运行的高速性和I/O低速性间的矛盾。
引入缓冲:
(1)有效地缓和CPU和I/O设备速度不匹配的矛盾
(2)提高CPU的利用率
(3)进而提高系统吞吐量
2、设备分配
(1)系统中设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态。
(2)对于独占设备(临界资源)的分配,还应考虑到该设备被分配出去后,系统是否安全。
(3)设备使用完后,还应立即由系统回收。
3、设备处理(请求使用过程管理)
设备处理程序又称为设备驱动程序。
1.5.4、文件管理功能
1、文件存储空间的管理
(1)为每个文件分配必要的外存空间,
(2)提高外存的利用率,
(3)提高文件系统的运行速度。
系统要求:
(1)相应的数据结构,
(2)存储空间分配和回收的功能
(3)通常是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。
2、目录管理
(1)目录项:包括文件名、文件属性、文件在磁 盘上的物理位置等。
(2)目录文件:由若干个目录项又可构成一个。
目录管理的主要任务:
(1)建立并管理目录项;
(2)实现方便的按名存取;
(3)实现文件共享;
(4)提供快速的目录查询手段。
3、文件的读/写管理和保护
(1)文件的读/写管理。
(2)文件保护。
1.5.5、接口管理功能
- 用户接口
联机用户接口
- 命令行方式CLI。
- 由一组键盘操作命 令及命令解释程序 所组成。
- 脱机用户接口
批处理系统:作业说明书(作业控制 语言JCL)。
-
图形用户接口GUI
-
程序接口
系统调用:能 完成特定功能的 子程序。
1.5.6、现代操作系统的新功能
- 系统安全
认证技术、密码技术、访问控制技术、反病毒技术。
- 网络功能和服务
网络通信、资源管理、应用互操作。
- 支持多媒体
接纳控制技术、实时调度、多媒体文件的存储。
OS主要解决的问题(五大功能)
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 操作系统与用户之间的接口
1.6、操作系统的结构
所谓软件,是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,该程序能够正确地处理信息的数据结构。
软件工程是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;其目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题。
1.6.1、简单结构
OS是无结构的,是为数众多的一组过程的集合,内部复杂、混乱也称整体系统结构难以阅读和理解,维护困难。
例子:MS-DOS,早期的UNIX
1.6.2、模块化结构
模块化结构的概念
基于“分解”和“模块化”原则,按功能将系统划分为若干个具有一定独立性和大小的模块,并规定好各模块间的接口,称为“模块-接口法”
优点:
- 提高OS设计的正确性、可理解性和易维护性
- 增强OS的可适应性
- 加速OS的开发过程
缺点:
- 对模块的划分及对接口的规定并不精确;
- 未能将共享资源和独占资源加以区别;
- 模块间的依赖关系使OS结构变得不清晰。
- 大部分现代OS采用可加载的内核模块来设计
- 内核有一组核心组件,提供核心服务
- 其他服务可在内核运行时动态实现(动态链接)
- 每个组件在需要时被加载到内核
例子:Linux、Mac OSx、Solaris以及Windows
1.6.3、分层式结构
操作系统划分为若干层,在低层上构建高层。
高层仅依赖于紧邻它的底层,仅使用其底层所提供的功能和服务。
底层(О层)为硬件;最高层(N层)为用户)层。
分层式结构优缺点
优点︰
易保证系统的准确性。
可保证系统的易维护性和可扩充性。
缺点∶
系统效率低。
例子:Multics :由贝尔实验室和麻省理工学院等开发的一个多用户多任务的OS。
1.6.4、微内核OS结构
基本概念
- 足够小的内核
内核是指经过精心设计、能实现现代OS最基本核心功能的部分。微内核并不是一个完整的OS,而只是操作系统中最基本的部分,它通常用于实现与硬件紧密相关的处理、实现一些比较基本的功能、负责客户和服务器之间的通信。它与一般的OS(程序)不同,它更小更精炼,它不仅运行在核心态,而且开机后常驻内存,它不会因内存紧张而被换出内存。
- 基于客户/服务器模式
应用“机制与策略分离”原理
所谓机制,是指实现某一功能的具体执行结构,而策略,则是在机制的基础上,借助于某些参数或算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于一个系统的基层,而策略则处于系统的高层。在微内核系统中,机制通常放在OS的微内核中。这样才可以将微内核做的足够小。
采用面向对象技术
利用面向对象技术的抽象和隐蔽原则来控制系统的复杂性,利用对象、封装、继承等概念来确保操作系统的正确性、可靠性、易修改性等。
微内核的基本功能
进程管理、低级存储器管理、中断和陷入处理
进程管理
为实现进程(线程)调度功能,必须在进程管理中设置一个或多个进程(线程)优先级队列,能将指定优先级进程(线程)从所在队列中取出,并将其投入执行。由于这部分属于调度功能的机制部分,应将它放入微内核中。而如何确定每类用户进程的优先级,以及如何修改它们的优先级,都是属于策略问题,可将它们放在微内核外的进程管理服务器中。
低级存储器管理
在微内核中,配置了最基本的低级存储器管理机制。如用于将用户控件的逻辑地址变换为内存空间的物理地址的页表机制和地址变换机制,这部分是依赖于机器的,因此放入微内核中,而采取何种页面算法、采用何种内存分配和回收策略都是具体的策略,放在微内核外的存储器管理服务器中去实现。
中断和陷入处理
微内核可以捕获所发生的中断和陷入事件,并进行相应的前期处理。如进行中断现场保护,识别中断和陷入的类型,然后将有关事件的信息转化成消息后,把它发送给相关的服务器。有服务器根据中断和陷入的类型,调用相应的处理程序来进行后期处理。
微内核系统的优点和存在问题
微内核系统优点∶
- 责局了系统的可扩展性
- 增强了系统的可靠性口移植性强
- 提供了对分布式系统的支持
- 融入了面向对象技术
微内核系统存在的问题∶
运行效率有所降低
主要原因:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模型与上下文的多次切换。
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低
1.6.5、外核结构
基本思想︰内核不提供传统OS中的进程、虚拟存储器等抽象,而是专注于物理资源的隔离(保护)与复用。
内核非常小,负责保护系统资源;
应用程序管理硬件资源。
实例:Aegis系统
1.7、系统调用
1.7.1、系统调用的基本概念
系统调用目的
使应用程序可以通过它间接调用OS内核中的相关过程取得相应的服务。
( 1)为了使诸进程能有条不紊地使用I/O设备,且能保护设备的安全性,不允许运行在用户态的应用进程去直接调用运行在核心态(系统态)的OS过程。
(2)应用进程在运行时,又必须取得OS所提供的服务,否则,应用程序几乎无法运行。
为了解决此矛盾,OS在用户层中引入了一个中介过程——系统调用。由OS向用户提供的所有功能,用户进程都必须通过系统调用来获取。每一个系统调用都是一个能够完成特定功能的子程序。
与一般过程调用的区别
- 运行在不同的系统状态
一般的过程调用,其调用程序和被调用程序运行在相同的态。而系统调用的调用程序运行在用户态,而被调用程序运行在系统态。
- 状态的转换
一般的过程调用不涉及状态的转换(调用和被调用程序运行在相同的态))。而系统调用时,调用过程和被调用过程处于不同的态,因此,不允许调用过程直接转向被调用过程,需要先通过软中断机制将用户态专为系统态。
- 返回问题
在采用了抢占式调度方式的系统中,被调用过程执行完成后,需要对系统中要求运行的进程做优先级分析,当调用进程仍然具有最高优先级,才会返回到调用进行继续执行,否则,将重新调度。
嵌套调用
系统调用也可以嵌套进行,即在一个被调用过程执行期间,还可以利用系统调用命令调用另外一个系统调用。
1.7.2、系统调用的类型
- 进程控制类
创建和终止进程、获得和设置进程属性、等待某事件出现的系统调用.
- 文件操纵类
打开和关闭文件、创建和删除文件、读写文件的系统调用。
- 进程通信类
用于进程之间通信的系统调用。
- 设备管理类
申请设备、释放设备、设备I/O重定向、获得和设置设备属性等系统调用.
- 信息维护类
获得包括有关系统和文件的时间信息、OS版本、当前用户、空闲内存、磁盘等。
本文来自博客园,作者:NotYourferry,转载请注明原文链接:https://www.cnblogs.com/pinghuimolu/p/15395832.html