第一章 操作系统引论

目录

1.1操作系统的目标和作用

1.1.1操作系统的目标

1.1.2操作系统的作用

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

1.2操作系统的发展过程

1.2.1 未配置操作系统的计算机系统

1.2.2 单道批处理系统

1.2.3 多道批处理系统

1.2.4 分时系统

1.2.5 实时系统

1.2.6 微机操作系统

1.2.7 嵌入式操作系统

1.2.8 网络操作系统

1.2.9 分布式操作系统

1.3 操作系统的基本特性

1.3.1 并发

1.3.2 共享

1.3.3 虚拟

1.3.4 异步

1.4 操作系统的运行环境

1.4.1 硬件支持

1.4.2 操作系统内核

1.4.3 处理机的双重工作模式

1.4.4 中断与异常

1.5操作系统的主要功能

1.5.1 处理机管理功能

1.5.2 存储器管理功能

1.5.3 设备管理功能

1.5.4 文件管理功能

1.5.5 接口管理功能

1.5.6 现代操作系统的新功能

1.6 操作系统的结构

1.6.1简单结构

1.6.2 模块化结构

1.6.3 分层式结构

1.6.4 微内核结构

1.6.5 外核结构

1.7 系统调用

1.7.1 系统调用的基本概念

1.7.2 系统调用的类型


1.1操作系统的目标和作用

1.1.1操作系统的目标

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

1.1.2操作系统的作用

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

2、OS作为计算机系统资源的管理者

在一个计算机系统中,通常含有多种硬件和软件资源。OS的主要功能正是对处理机、存储器、I/O设备以及信息(数据和程序)进行有效的管理。

3、OS实现了对计算机资源的抽象

对于一个完全无软件的计算机系统(裸机),由于它向用户提供的仅是硬件接口(物理接口),用户必须对其实现细节有充分了解才能充分使用,所以为了方便用户使用I/O设备,人们在裸机上覆盖了一层I/O设备管理软件。

如图所示,其隐藏了I/O设备操作细节,并可将I/O设备抽象为一组数据结构以及一组I/O操作命令,如read和wirte命令。此时在裸机上铺设的I/O软件,隐藏了I/O设备的实现细节,向上提供了一组抽象的I/O设备。

图 I/O软件隐藏了I/O设备操作的细节

通常把覆盖了上述软件的I/O设备称为扩充机器或虚机器。

同理,为了方便用户使用文件系统,又可在第一层软件(I/O软件)之上再覆盖一层于管理文件的软件,由它来实现对文件操作的细节,并向上层提供一组实现对文件进行存取操作的数据结构及命令。

由此,OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。

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

1、不断提高计算机系统资源的利用率

  • 单道批处理系统->多道批处理系统。通过减少计算机的空闲时间提高了cpu和I/O设备的利用率。
  • 分时系统。多个用户使用一台计算机,使系统资源利用率得到了极大的提高,并推动了计算机的第一次大普及。
  • 虚拟存储器技术。能有效提高存储器系统利用率并能从逻辑上扩大内存。

2、方便用户

当资源利用率不高的问题得到解决后,用户在上机和调试程序时的不方便性称为了主要矛盾。

分时系统的出现,不仅提高了系统资源的啦利用率,还能实现人机交互,使用户能够感觉自己独占资源。再加上图形用户界面的出现收到了广泛欢迎。

3、器件不断更新换代

  • 微机芯片的不断更新换代,性能得到了迅速提高,从而推动OS的功能和性能也迅速提高。
  • 外部设备在迅速发展,OS能支持的外部设备也越来越多

4、计算机体系结构不断发展

计算机体系结构发展不断推动着OS的发展,并产生了新的OS类型。

  • 当计算机由单处理机系统发展为多处理机系统时,相应地,OS也从单处理机OS发展为多处理机OS。
  • 当出现了计算机网络后,配置在计算机网络上的网络OS也就应运而生了。

5、不断提出新的应用需求

如:

  • 为了提高产品的质量和数量,需要将计算机应用于工业控制中。
  • 为了满足用户在计算机上播放视频,从网上下载电影等需求,在OS中又增添了多媒体功能。
  • 随着超大规模集成电路(very large scale integration circuit,VLSI)的发展,CPU体积越来越小,价格越来越便宜,大量智能设备应运而生,嵌入式OS的产生和发展也成了一种必然。

1.2操作系统的发展过程

  • 20世纪50年代中期,出现了第一个简单的批处理过程。
  • 20世纪60年代中期,开发除了多道批处理系统,不久又推出了分时系统。
  • 20世纪70-90年代,微机、多处理机和计算机网络的诞生发展,开发出了微机OS,多处理机OS、网络OS和分布式OS。

1.2.1 未配置操作系统的计算机系统

1、人工操作方式

纸带:程序员将程序编写成机器代码,即010101的形式,让后将打孔作为1(或0),不打孔作为0(或1)的方式输入机器。

图 纸带上的程序

程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。

图 装入纸带输入机

缺点

  • 用户独占全机。即一台计算机的全部资源由上机用户独占。
  • cpu等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。

总结

人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。

虽然CPU的速度在迅速提高,但I/O设备的速度却提高缓慢,这使得cpu与I/O设备之间速度不匹配的矛盾更加突出。直至后来引入脱机I/O技术,获得了较为令人满意的结果。

2、脱机I/O方式

20世纪50年代末,为解决cpu与I/O设备之间速度不匹配的人机矛盾,出现了脱机I/O技术。

该技术是先将纸带上的孔转化成数据存入磁盘上(当然这里存储的数据是大量的,多个人的),当CPU需要这些程序时,再从磁盘上高速将数据调入内存。当然输出也是先输到磁盘进行存储,再到纸带或其它输出设备。

它们都是在脱离主机的情况下进行的。故称其为脱机I/O方式。而把在主机的直接控制下进行I/O的方式,称为联机I/O方式

优点

  • 减少了cpu的空闲时间。
  • 提高了I/O速度。

总结
相比于(1)计算机资源利用率有了很大的提升。

1.2.2 单道批处理系统

为什么需要批处理系统?

为了能充分提高计算机利用率,应该尽量保持系统连续运行(即处理完一个作业后紧接着处理下一个作业,以减少系统空闲时间)。

1、单道批处理系统的处理过程

为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。

处理过程:

首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。计算机系统就这样自动地一个作业紧接一个作业地进行处理,直至磁带上的所有作业全部完成,这样便形成了早期的批处理系统。

虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为单道批处理系统 。

2、单道批处理系统的缺点
系统中的资源得不到充分的利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/0请求后,CPU便处于等待状态,必须在其I/O完成后才继续运行。又因I/O设备的低速性,更使CPU的利用率显著降低。

从下图可以看出,t2~t3,t6~t7时间间隔内cpu处于空闲状态。

图 单道批处理系统的运行情况

总结
单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的,换言之,批处理系统旨在提高系统资源的利用率和系统吞吐量。但这种单道批处理系统仍然不能充分地利用系统资源,故现在已经很少使用。

1.2.3 多道批处理系统

1、 多道程序设计的基本概念

系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。其技术运行的特征:多道、宏观上并行、微观上串行

在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。

图 多道批处理系统运行情况

2、多道批处理系统的优缺点

  1. 资源利用率高。
  2. 系统吞吐量大。
  3. 平均周转时间长。
  4. 无交互能力。

3、多道批处理系统需要解决的问题

  1. 争用处理机问题
  2. 内存分配与保护问题
  3. I/O设备分配问题
  4. 文件的组织与管理问题
  5. 作业管理问题

为此,应在计算机系统中增加一组软件,用于有效妥善地处理上述问题。

这组软件应包括:能够有效组织和管理四大资源的软件,合理地对各类作业进行调度并控制它们所运行的软件,以及方便用户使用计算机的软件。

这组软件构成了OS。

1.2.4 分时系统

为了满足用户对人机交互的需求。

1、分时系统的引入

用户的需求具体表现在以下几个方面。

  1. 人机交互(批处理系统做不到)
  2. 共享主机(感觉独占)

分时系统是指在一台主机上连接多个配有显示器和键盘的终端所形成的系统。该系统允许多个用户同时通过自己的终端以交互方式使用计算机,并共享主机中的资源。

2、分时系统实现中的关键问题

在多道批处理系统中,作业都先驻留在外存中,即使以后被调入内存,也要经过较长时间的等待方能运行。在此过程中,用户无法与自己的作业进行交互。

所以,最关键的问题是如何使用户能与自己的作业进行交互。为此,系统必须能提供多个终端同时给多个用户使用;其次,当用户在自己的终端上键入命令时,系统应能及时接收并处理该命令,然后将处理结果返回给用户。此后,用户可根据系统的响应情况,再继续键入下一条命令。

解决方案:

  1. 及时接收。
  • 在系统中配置一个多路卡,用于及时接收多个用户键入的命令或数据。
  • 为了使从从终端上输入的数据被依次逐条地进行处理,还需要为每个终端配置一个缓冲区,用于暂存用户键入的命令或数据。
  1. 改变批处理系统运行方式,以达到及时处理。
  • 采用作业直接进入内存的方式。
  • 采用轮转运行的方式。

3、分时系统的特征

  • 多路性。是指系统允许将多台终端同时联接到一台主机上,并按分时原则为每个用户服务。
  • 独立性。是指系统提供了一种用机环境,即每个用户在各自的终端上进行操作,给用户的感觉是独占主机。
  • 及时性。是指用户的请求很短时间内获得响应(1~3秒)。
  • 交互性。是指用户可以通过终端与系统进行广泛的人机对话。

1.2.5 实时系统

实时系统最主要特征是将时间作为关键参数,它必须对接受的某些信号做出及时反应。由此可知,

实时系统是指系统能及时响应外部时间的请求,在规定的时间内完成对该时间的处理,并控制所有实时任务协调一致地运行。

1、常用的实时系统的类型

  • 工业控制系统。能实时采集现场数据,对其及时处理,进而自动控制,以保证产品质量和产量。类似还可以有武器控制、火炮控制、飞机自动驾驶控制。
  • 信息查询系统。
  • 多媒体系统。
  • 嵌入式系统。

2、实时任务的类型

  1. 周期性实时任务。外部设备周期性地发出信号给计算机,计算机根据信号周期性地执行。
  2. 非周期性实时任务。没有周期性,但必须联系着一个截止时间。
    1. 开始截止时间:指某任务在某时刻以前必须开始执行;
    2. 完成截止时间:指某任务在某时刻以前必须执行完成;
  1. 硬实时任务。指系统必须满足任务对截止时间的要求,否则出现难以预测的结果,例如工业控制、武器控制的实时系统。
  2. 软实时任务。也联系一个截止时间,但并不严格,即使错过了时间,也不会出现大的影响,例如信息查询系统和多媒体系统中的实时任务。

3、实时系统与分时系统特征的比较

  1. 多路性。
    1. 分时系统多路性表现为系统按分时原则为多个终端用户服务
    2. 实时控制系统多路性表现为信息系统周期性地多路现场信息进行采集,并对多个对象或多个执行机构进行控制。
  1. 独立性。都表现为互相独立、互不干扰。
  2. 及时性。
    1. 信息查询系统对实时性的要求是依据人接受的的等待时间确定的。
    2. 多媒体系统实时性的要求是播放出来的音频和视频能令人满意
    3. 实时控制系统的实时性则是以控制对象所要求的截止时间来确定的,一般为秒级或毫秒。
  1. 交互性。
  2. 可靠性。分时系统要求系统可靠,实时系统要求系统高度可靠,因为出现差错会产生灾难后果,因此在实时系统中往往都采取了多级容错措施,以此保证系统和数据安全。

1.2.6 微机操作系统

流行的微机OS按运行方式分类:

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

CP/M,MS-DOS

  1. 单用户多任务OS。只允许一个用户上机,允许用户把程序分为若干个任务并发执行。

Windows 95/98

  1. 多用户多任务OS。允许多个用户通过各自终端使用同一台机器,每个用户可以进一步分为几个任务并发执行。
  • Solaris OS
  • Linux OS
  • Windows
  • NT/Server

1.2.7 嵌入式操作系统

1、嵌入式系统

  • 为了完成某个特定功能而设计的系统,或是有附加机制的系统,或是其他部分的计算机硬件与软件的结合体
  • 由于与环境交互的需要,产生了实时限制,如响应速度、测量精度、持续时间等

2、嵌入式OS

  • 指应用于嵌入式系统的OS
  • 目前广泛使用的嵌入式OS:µC/OS-II、嵌入式Linux、Windows Embedded、VxWorks、Android、iOS等

3、特点

  • 系统内核小
  • 系统精简
  • 实时性高
  • 具有可配置性

1.2.8 网络操作系统

网络OS的概念:

  • 在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供与网络资源接口的一组软件和规程的集合
  • UNIX、Linux、Window NT/2000/Server

1、网络OS的特征

  • 硬件独立性。系统可以运行在各种硬件平台之上。
  • 接口一致性。系统为网络的共享资源提供一致性的接口。
  • 资源透明性。系统能对网络中的资源进行统一管理,可以根据用户需求自己选择。
  • 系统可靠性。
  • 执行并行性。

2、网络OS的功能

  • 数据通信、应用互操作、网络管理

1.2.9 分布式操作系统

1、分布式系统

定义:基于软件实现的一种多处理机系统,是多个处理机通过通信线路互连而构成的松耦合系统。

特征:分布性、透明性、同一性、全局性。

2、分布式OS

定义:配置在分布式系统上的公用OS。

例子:万维网、鸿蒙OS。

3、分布式OS的功能

单处理机OS的主要功能;

网络OS所拥有的全部功能;

还包括:通信管理功能、资源管理功能、进程管理功能。

1.3 操作系统的基本特性

1.3.1 并发

1、并行性和并发性

并行性:两个或多个事件在同一时刻发生。(同时走,同时停)

并发性:两个或多个事件在同一时间间隔内发生。(同一时间段内,交替运行,如果有多个处理机, 也可以并行运行)

2、引入进程(任务)

未引入进程的系统中,同属于一个应用程序的计算程序和I/O程序只能顺序执行,即只有在计算程序的执行告一段落后才允许I/O程序执行。但在为计算程序和I/O程序分别建立一个进程后,这两个进程便可并发执行。若对内存中的多个程序都分别建立一个进程,则它们就可以并发执行。

进程,指在系统中能独立运行并能作为资源分配对象的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体

1.3.2 共享

OS环境下的资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用。

1、互斥共享方式

当进程A要访问某资源时,先提出请求,若此时该资源空闲,系统分便可分配给进程A使用。此后若有其他进程也要访问该资源,则必须等待进程A访问完并释放后,才允许另一进程对该资源进行访问。这种资源共享方式为互斥资源共享,我们把这种在一段时间内只允许一个进程访问的资源,称为临界资源(独占资源)。

系统中大多数物理设备以及栈、变量和表格等,都属于临界资源,都只能被互斥地共享。

2、同时共享方式

并发和共享互为对方存在的条件,资源共享是以进程的并发执行为条件的,若系统不允许并发执行,也就不存在资源共享问题。另一方面,若系统不能对资源共享实时有效的管理,以协调好各进程对共享资源的访问,则必然会影响各进程间并发执行的程度,甚至会使它们根本无法并发执行。

1.3.3 虚拟

时分复用技术能提高资源利用率的根本原因在于,它会令某设备你在为一个用户服务的空闲时间转去为其他用户服务,进而使设备得到最充分利用。

时分复用技术

  • 虚拟处理机(让多个终端用户认为有个一个处理机在专门为他服务)
  • 虚拟设备(将一个物理上的I/O设备虚拟为多台逻辑上的I/O设备,如打印机属于临界设备,通过虚拟设备技术可以把它变为多台逻辑上的打印机)

如果说时分复用技术是利用处理机的空闲时间来运行其他程序以提高处理机的利用率,那么空分服务技术就是利用存储器的空闲空间来存放其他程序以提高内存利用率。

单纯的空分复用存储器只能提高内存利用率,不能实现在逻辑上扩大存储器容量,因此引入,虚拟存储技术。

空分复用技术

  • 虚拟存储技术。本质上是实现内存的分时复用。

1.3.4 异步

进程的异步性:进程是以人们不可预知的速度向前推进的。

扩展:

同步:简单的说同步就是任务必须一个个的来进行,a完成了,才可以进行b。

图 对同步的理解

异步:不同的线程之间,不一定都是竞争同个资源的,并且如果它们相互之间状态或行为不影响,那么便可以分别进行,同时开展。

举个例栗子,我们使用浏览器的时候,通常都是多开网页的。你打开一个360浏览器(此时便创建了一个进程),然后打开一个网页看小说(线程1),同时打开一个网页看电视剧(线程2)。这两者便是异步。

1.4 操作系统的运行环境

1.4.1 硬件支持

引导程序:位于固件

  • 定位OS内核并将其加载到内存中。

指令:CPU执行

事件:硬件中断或软件中断引起

执行程序:位于内存

程序:位于外存

1.4.2 操作系统内核

通常将一些与硬件紧密相关的模块、各种常用设备的驱动程序、运行频率较高的模块以及许多模块所共用的一些基本操作,都安排在紧靠硬件的软件层次中,并将它们常驻内存,它们被称为OS内核。

1、支撑功能

  • 中断处理。
  • 时钟管理
  • 原语操作
    • 由若干条指令组成,用于完成一定功能。
    • 原子操作:要么不做,要么全做,不可分割。

2、资源管理功能

  • 进程管理
  • 存储器管理
  • 设备管理

1.4.3 处理机的双重工作模式

为了确保OS正确运行,必须区分OS代码和用户代码的执行,大多数计算机系统采用硬件支持,以便区分。

一般处理机至少需要两种单独运行模式:用户态和内核态,用用户模式位来标识,内核态(0)和用户态(1)。

当计算机系统执行用户程序时,系统处于用户态,然而,当用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态,以满足请求。

内核态:执行包括特权指令在内的一切指令。

用户态(目态):不能执行特权指令。

1、特权指令:

  • 内核态执行的指令。如果误用,有可能引起系统崩溃的指令。
  • 不仅能访问用户空间,还能访问系统空间。如启动外部设备、设置系统时钟、管中断、切换执行状态、I/O指令。

2、非特权指令:用户态执行的指令。

  • 应用程序所使用的都是非特权指令。
  • 防止应用程序的运行异常对系统造成破坏。
  • 仅能访问用户空间。

3、用户态和内核态的切换

状态位(Mode bit) 指示正确的状态:内核态(0) ,用户态(1)

当中断或错误出现,硬件切换至内核态。

图 两态的切换

1.4.4 中断与异常

操作系统是中断驱动的,OS总在等待某个事件的发生,事件总是由中断或异常引起的。

中断(interrupt):由硬件引起。可以说整个计算机系统就是由中断来驱动的。那么什么是中断?简单来说就是CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务,这一过程便是中断。

异常/陷阱(trap):由软件引起。

  • 出错(如除数为零或无效存储访问)。
  • 用户程序的特定请求(如执行OS的某个服务)。

1.5操作系统的主要功能

引入OS,为了更高效的运行,除了传统OS中应具有的基本功能,为了方便用户使用,还须向用户提供方便的用户接口。

1.5.1 处理机管理功能

处理机管理的主要功能有:创建和撤销进程,对各进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。

1、进程控制

2、进程同步

3、进程通信

4、调度

1.5.2 存储器管理功能

存储器管理的主要任务是,为多道程序的运行提供良好的环境、提高存储器的利用率、方便用户使用,并能从逻辑上扩大内存。

1、内存分配和回收

2、内存保护

3、地址映射

4、内存扩充

1.5.3 设备管理功能

设备管理的主要任务是:

  • 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作;
  • 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。

1、缓冲管理

2、设备分配

3、设备处理

1.5.4 文件管理功能

文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。

1、文件存储空间管理

2、目录管理

3、文件的读/写管理和保护

1.5.5 接口管理功能

OS向用户提供了“用户与OS之间的接口”。

1、用户接口

  • 联机用户接口
  • 脱机用户接口
  • 图形用户接口

2、程序接口

该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得OS服务的唯一途径。

1.5.6 现代操作系统的新功能

1、保障系统安全

  • 认证技术、密码技术、访问控制技术、反病毒技术。

2、支持用户通过联网获取服务

  • 网络通信、资源管理、应用互操作。

3、可处理多媒体信息

  • 接纳控制技术、实时调度、多媒体文件的存储。

1.6 操作系统的结构

随着OS的规模越来越大,需要更多人进行参与,意味着应采用工程化的开发方法来对大型软件进行开发,由此产生了“软件工程学”。

软件工程研究的目标是所开发的软件产品具有良好的软件质量与合理开发费用。

为此先后产生了多种OS开发方法,如模块化方法、结构化方法和面向对象的方法等。利用不同的开发方法,所开发出的OS将具有不同的结构。

1.6.1简单结构

OS是无结构的,是为数众多的一组过程的集合,内部复杂、混乱。

也称整体系统结构。

例子:MS-DOS,早期的UNIX。

1.6.2 模块化结构

将OS按功能划分成若干个模块,并规定好各模块间的接口,称为“模块-接口法”。

优点:

  • 提高OS设计的正确性、可理解性和易维护性
  • 增强OS的可适应性
  • 加速OS的开发过程

目前, 大部分现代OS采用可加载的内核模块来设计。

  • 内核有一组核心组件,提供核心服务,其他服务可在内核运行时动态实现(动态链接),每个组件在需要时被加载到内核。
  • 例子:Linux、Mac OS X、Solaris以及Windows

1.6.3 分层式结构

操作系统划分为若干层,在低层上构建高层。

  • 高层仅依赖于紧邻它的底层。
  • 底层(0层)为硬件;最高层( N层)为用户层。

优点:

易保证系统的准确性。可保证系统的易维护性和可扩充性。

缺点:

系统效率低。

例子:THE、Multics

1.6.4 微内核结构

1、微内核的基本概念

从4个方面对微内核结构的OS进行描述:

  1. 足够小的内核(实现最基本核心功能的小型内核)
    • 用于处理与硬件紧密相关的部分
    • 一些最基本的功能
    • 客户和服务器之间的通信
  1. 基于客户/服务器模式

单处理机微内核结构的OS都采用了客户/服务器模式,将OS中最基本的部分放入内核中,而把OS的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。

用于提供进程管理、存储器、文件管理的服务器都是被作为进程来实现的,它们运行在用户态。

图 微内核结构

图 单处理机环境下的客户/服务器模式

  1. 采用策略与机制分离原则
    • 机制,指实现某一功能的具体执行机构。
    • 策略,指在机制的基础上,借助于某些参数和算法来实现该功能的优化或达到不同的功能目标。
    • 通常机制处于系统的基层,而策略处于系统的高层。
  1. 采用面向对象技术

2、微内核的基本功能

  1. 进程管理
    • 大多数的微内核OS,对于进程管理功能的视线,都采用策略与机制分离原则。
  1. 低级存储器管理
  2. 中断和陷入处理

3、微内核OS的优点

  • 提高了系统可扩展性、可靠性、可移植性
  • 提供了对分布式系统的支持
  • 融入了面向对象技术

4、微内核OS的缺点

  • 相比于早期的OS,降低了一定的效率。因为切换次数相比于传统OS过多。

1.6.5 外核结构

基本思想:内核不提供传统OS中的进程、虚拟存储器等抽象,而是专注于物理资源的隔离(保护)与复用。

  • 内核非常小,负责保护系统资源;
  • 应用程序管理硬件资源。

图 具有外核结构的Aegis系统

实例:Aegis系统。

这个系统由一个轻量级内核和库OS组成。

1.7 系统调用

1.7.1 系统调用的基本概念

系统调用目的:

使应用程序可以通过它间接调用OS内核中的相关过程,取得相应的服务。

系统调用概念:

  • 应用程序请求OS内核完成某功能时的一种过程调用;用户与内核的接口。
  • 用户与内核的接口。

系统调用与一般过程调用的区别:

  • 运行在不同的系统状态。
    • 系统调用的调用程序运行在用户态
    • 被调用程序运行在内核态。
  • 状态的转换
  • 返回问题
  • 嵌套调用

1.7.2 系统调用的类型

1、进程控制类

  • 创建和终止进程、获得和设置进程属性、等待某事件出现的系统调用。

2、进程通信类

  • 用于进程之间通信的系统调用。

3、文件操纵类

  • 打开和关闭文件、创建和删除文件、读写文件的系统调用。

4、设备管理类

  • 申请设备、释放设备、设备I/O重定向、获得和设置设备属性等系统调用。

5、信息维护类

  • 获得包括有关系统和文件的时间信息、OS版本、当前用户、空闲内存、磁盘等。

---------------------------------------------------------------------------------------------------------------------------------

参考计算机操作系统(第四版) (汤小丹)书。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值