操作系统王道考研复习——第一章(计算机系统概述)

  • 计算机系统概述
    • 1.1操作系统的基本概念
      • 1.1.1 操作系统的概念
      • 1.1.2 操作系统的特征
        • 1. 并发
        • 2. 共享
        • 3. 虚拟
        • 4. 异步
      • 1.1.3 操作系统的目标和功能
        • 1. 操作系统的目标
        • 2. 操作系统的功能
      • 1.1.4 补充
    • 1.2 操作系统的发展与分类
      • 1.2.1 手工操作阶段(此阶段无操作系统)
        • 1. 人工操作方式
        • 2. 脱机输入/输出(Off-Line I/O)方式
      • 1.2.2 批处理阶段(操作系统开始出现,主要缺点是缺乏交互性)
        • 1. 单道批处理系统(一个接一个地处理,减少机器空闲等待时间)
        • 2. 多道批处理系统(操作系统正式诞生)
      • 1.2.3 分时操作系统(解决了人机交互问题)
      • 1.2.4 实时操作系统(有优先级)
      • 1.2.5 网络操作系统和分布式计算机系统
      • 1.2.6 个人计算机操作系统
      • 1.2.7 补充
    • 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 操作系统引导(Boot)
        • 1. 安装操作系统后
        • 2. 操作系统引导(开机过程)
        • 3. 虚拟机

计算机系统概述

背景知识:一个程序需要放入内存并给它分配CPU才能执行

1.1操作系统的基本概念

1.1.1 操作系统的概念

计算机系统自上而下大致可以分为4部分:用户、应用程序、操作系统和硬件。如下图:

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件,也是配置在计算机硬件上的第一层软件。

操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。它应包括:
1)能有效地组织和管理四大资源的软件
2)合理地对各类作业进行调度和控制它们运行的软件
3)方便用户使用计算机的软件

1.1.2 操作系统的特征

操作系统是一种系统软件,但与其它系统软件和应用软件又有很大的不同,它有自己的特殊性即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。

1. 并发

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
与并发容易混淆的就是并行。并行是指两个或多个事件在同一时刻同时发生。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。

操作系统的并发性是通过分时得以实现的。因为在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机环境下实际只能有一道程序执行,因此微观上这些程序仍是分时交替执行的。

操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。

在内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样便能极大地提高系统资源的利用率,增加系统的吞吐量。

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

注意
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

2. 共享

共享:资源共享或称资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。(调入内存的进程是当前执行的进程,它们共享系统资源)

所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。这里的宏观既限定了时间(进程在内存期间),也限定了地点(内存)。

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

  2. 同时访问:系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。可供多个进程,“同时”访问的典型资源是磁盘设备(访问文件等),一些用重入码编写的文件也可被“同时”共享,即允许若干个用户同时访问该文件。

并发和共享的关系
并发性指计算机系统中同时存在着多个运行着的程序。
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。

并发和共享是多用户(多任务)OS的两个最基本的特征。它们是互为存在的条件

3. 虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

时分复用技术,有虚拟处理机技术和虚拟设备技术。虚拟处理机技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU。

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

空分复用技术,有虚拟存储器技术。采用空分复用技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。

空分复用技术是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。

如果说,时分复用技术是通过利用处理机的空闲时间运行其他程序,提高了处理机的效率,那么,空分复用技术则是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。

4. 异步

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

如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。

没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征。

1.1.3 操作系统的目标和功能

1. 操作系统的目标

  1. 方便性
    在硬件上运行程序,用机器语言书写极其困难,OS能将高级语言翻译成机器语言。
  2. 有效性
    提高操作效率、系统吞吐量。
  3. 可扩充性
    为了适应硬件体系结构及应用的发展。
  4. 开放性
    为了更好的推广,方便使用制定行业标准。

2. 操作系统的功能

  1. 操作系统作为计算机系统资源的管理者

    在一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类:
    1)处理机管理
    2)存储器管理
    3)文件管理
    4)设备管理

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

    用户可通过三种方式使用计算机,即通过命令方式、系统调用方式和图标——窗口方式来实现与操作系统的通信,并取得它的服务。

    1)命令接口分为联机命令接口和脱机命令接口。
    联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。可以理解为“用户说一句(命令),系统做一句(命令)”。
    脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。可以理解为“用户说一堆(命令),系统做一堆(命令)”。

    2)程序接口(广义指令)
    可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。

    3)图标——窗口
    一般是图形用户界面(GUI),如Windows、安卓等的图形化操作界面

  3. 操作系统作为最接近硬件的层次
    没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。

    操作系统需要实现对硬件机器的拓展。操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可。

1.1.4 补充

  1. 操作系统为编程人员提供的接口是程序接口,即系统调用。
  2. 操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。
  3. 命令解释器属于命令接口,shell是命令解析器,也属于命令接口。
  4. 系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。
  5. 系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM。
  6. 库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更为方便、抽象。库函数属于用户程序而非系统调用,是语言或应用程序的一部分,可以运行在用户态。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态,而许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(用户态->核心态)

1.2 操作系统的发展与分类

1.2.1 手工操作阶段(此阶段无操作系统)

1. 人工操作方式

用户在计算机上的所有工作都要人工干预,如程序的装入和结果的输出等。随着计算机硬件的发展,人机矛盾(降低了计算机资源的利用率)越来越大。

手工操作有两大缺点:

  1. 用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。
  2. CPU等待手工操作,CPU的利用不充分。

2. 脱机输入/输出(Off-Line I/O)方式


为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,产生了脱机I/O技术。该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上高速地调入内存。类似地,当CPU需要输出时,可先由CPU把数据直接从内存高速地输送到磁带上,然后在另一台外围机的控制下,再将磁带上的结果通过相应的输出设备输出。

由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式。反之,把在主机的直接控制下进行输入/输出的方式称为联机输入/输出方式。

主要优点:
相对于人工操作方式,减少了CPU的空闲时间,而且提高了I/O速度。

1.2.2 批处理阶段(操作系统开始出现,主要缺点是缺乏交互性)

为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。换言之,批处理系统旨在提高系统资源的利用率和系统吞吐量。

1. 单道批处理系统(一个接一个地处理,减少机器空闲等待时间)

系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾中形成的。引入了脱机输入/输出技术(用外围机+磁带完成),并由监督程序(操作系统的雏形)负责控制作业的输入、输出。

主要特征:

  1. 自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
  2. 顺序性。磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序在正常情况下应完全相同,亦即先调入内存的作业先完成。
  3. 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

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

2. 多道批处理系统(操作系统正式诞生)

为了进一步提高资源的利用率和系统吞吐量,引入了多道程序设计技术,由此形成了多道批处理系统。在该系统中,用户所提交的作业先存放在外存上,并排成一个队列,称为“后备队列”。然后再从后备队列中成批地把作业送入计算机内存,再由作业调度程序自动地选择作业运行。

多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。让系统的各个组成部分都尽量去“”,因此切换任务所花费的时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。

中断技术使得多道批处理系统和I/O设备可与CPU并行工作,同时也提高了多道程序运行环境中CPU的利用率。

特点:

  • ①多道。计算机内存中同时存放多道互相独立的程序。
  • ②宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
  • ③微观上串行。内存中的多道程序轮流占有CPU,交替执行。

优点:

  • ①资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高I/O设备的利用率。
  • ②系统吞吐量。CPU和其他资源保持“忙碌”状态;仅当作业完成时或运行不下去时才进行切换,系统开销小。

缺点:

  • ①平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
  • ②无交互能力。用户一旦把作业提交给系统后,直到作业完成,用户都不能与自己的专业进行交互,修改和调试程序极不方便。

与单道程序系统相比,多道程序系统的优点是CPU利用率高、系统吞吐量大以及I/O设备利用率高。

1.2.3 分时操作系统(解决了人机交互问题)

推动分时系统形成和发展的主要动力,一是为了满足用户对人机交互的需求,二是共享主机时,不仅可以随时与计算机进行交互,而且还不会感受到其他用户的存在(独占性)。

所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。一个时间片就是一段很短的时间。

分时操作系统是指多个用户通过自己的终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰,当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。
而想要做到及时接收多个用户键入的命令或数据,只需在系统中配置一个多路卡(实现分时多路复用)即可。多路卡的作用是实现分时多路复用。

实现及时处理则需要采用两种方式:

  1. 作业直接进入内存。因为作业在磁盘上是不能运行的,所以作业应直接进入内存。
  2. 采用轮转运行方式。为避免一个作业长期独占处理机,引入了时间片的概念。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。如果在不长的时间内能使所有的作业都执行一个时间片的时间,便可以使每个用户都能及时地与自己的作业进行交互,从而可使用用户的请求得到及时响应。

分时系统的特征:

  • ①多路性(同时性)。指允许多个终端用户同时使用一台计算机。
  • ②独立性。指每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是他一人独占主机进行操作。
  • ③及时性。指用户的请求在很短时间内获得响应。
  • ④交互性。用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。

主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

1.2.4 实时操作系统(有优先级)

为了能在某个时间限制内完成某些任务而不需要时间片排队,诞生了实时操作系统。实时操作系统最主要的特征是将时间作为关键参数。实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

实时任务的类型:

  1. 周期性实时任务和非周期性实时任务
    周期性实时任务是指这样一类任务,外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。

    非周期性实时任务并无明显的周期性,但都必须联系着一个截止时间(最后期限)。它又分为:①开始截止时间,指某任务在某时间以前必须开始执行。②完成截止时间,指某任务在某时间以前必须完成。

  2. 硬实时任务和软实时任务
    硬实时任务(HRT)是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。如导弹控制系统等。

    软实时任务(SRT)能接受偶尔违法时间规定的事情发生。如信息查询系统。

资源利用率不是实时操作系统主要追求的目标。
实时系统的进程调度,通常采用抢占式的优先级高者优先算法。

1.2.5 网络操作系统和分布式计算机系统

网络操作系统是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。

1.2.6 个人计算机操作系统

如 Windows XP、MacOS,方便个人使用。

1.2.7 补充

  1. 批处理操作系统、分时操作系统和实时操作系统各有什么特点?
    ①批处理操作系统的用户脱机使用计算机,作业是成批处理的,系统内多道程序并发执行。
    ②分时操作系统可让多个用户同时使用计算机,人机交互性较强,具有每个用户独立使用计算机的独占性,系统响应及时。
    ③实时操作系统能对控制对象做出及时反应,可靠性高,响应及时,但资源利用率低。

1.3 操作系统的运行环境

1.3.1 操作系统的运行机制


计算机系统中,通常CPU执行两种不同性质程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。我们程序员写的程序就是“应用程序”,而实现操作系统的代码就是“内核程序”,由很多内核程序组成了“操作系统内核”(或简称“内核”),内核是操作系统最重要最核心的部分,也是最接近硬件的部分甚至可以说,一个操作系统只要有内核就够了(eg:Docker—>仅需Linux内核),操作系统的功能未必都在内核中,如图形化用户界面 GUI。

CPU有两种状态,核心态(又称核心态、内核态)和用户态(目态)

处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令和非特权指令。

处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。

所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令、内存清零指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。

拓展:CPU 中有一个寄存器叫 程序状态字寄存器(PSW),其中有个二进制位,1表示“核心态”,0表示“用户态”。

内核态->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。

用户态->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。

核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

注意
操作系统内核需要运行在内核态。
操作系统的非内核功能运行在用户态。
所以采用微内核的话,需要频繁地在核心态和用户态之间切换。

1.3.2 中断和异常的概念

中断也称外中断,指来自CPU执行指令以外事件的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。时钟中断表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前指令执行无关的事件,即它们与当前处理机运行的程序无关。

异常内中断、例外、陷入(trap)),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

“中断”特指狭义的中断,即外中断。而内中断一般称为“异常”。

在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序,即从核心态变为用户态。但当操作系统需要CPU的使用权时,则需要采用中断机制。“中断”是让操作系统内核夺回CPU使用权的唯一途径。

有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令,该指令会引发一个内部中断信号。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的。

中断机制的基本原理:
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

1.3.3 系统调用(广义指令即系统调用指令)

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。


系统调用相关功能涉及系统资源管理、进程管理之类的操作,运行在核心态。所以应用程序要通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

系统调用的过程

传递系统调用参数 -> 执行陷入指令(用户态)->执行相应的请求内核程序处理系统调用(核心态)->返回应用程序

整个过程是用户程序调用陷入指令(trap指令或访管指令)CPU先从用户态进入核心态,当系统调用的程序执行完会返回用户程序,CPU再从核心态转换为用户态。

注意

  1. 陷入指令(访管指令)是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态。
  2. 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。
  3. 先传参再执行陷入指令

1.3.4 补充

  1. 操作系统中,通道技术是一种硬件技术。因为I/O通道实际上是一种特殊的处理器,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。
  2. 中断处理是操作系统必须提供的功能。
  3. 进程调度可不需要硬件的支持。但它是操作系统内核进程,在核心态执行。
  4. 计算机通过硬件中断机制完成有用户态到核心态的转换。
  5. “访管”指令仅在用户态下使用。
  6. 要区分“在用户态执行”和“在用户态发生”两个概念,缺页处理程序和时钟中断处理程序都属于中断,进程调度程序也是操作系统内核程序,所以它们都只能在核心态下执行,而命令解释程序属于命令接口,在用户态下执行;系统调用、外部中断和缺页都发生在用户态,只是对于它们的处理是发生在核心态,但进程切换是不可能发生在用户态的,属于系统调用执行过程的事件,只能发生在核心态。
  7. 输入/输出必须在核心态下执行,因为涉及中断操作。
  8. sin()函数调用是在用户态下进行的。
  9. 中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是程序状态字寄存器(PSW)。子程序调用只需要保存程序断点,即该指令下一条指令的地址。
  10. 内部异常是指来自CPU内部产生的中断,内部异常的检测是由CPU自身完成的,它一旦出现就应立即处理。对于非法指令、除数为零等异常,无法通过异常处理程序恢复故障,因此不能回到原断点执行,必须终止进程的执行。
  11. 处理外部中断过程中,PC值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。
  12. 当操作系统不同时,底层逻辑、实现方式均不同,为应用程序提供的系统调用接口也不同。
  13. 当CPU检测到中断信号后,由硬件自动保存被中断程序的断点(即程序计数器PC),之后,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各中断向量统一存放在中断向量表中,该表由操作系统初始化),接下来开始执行中断服务程序,保存PSW、保存中断屏蔽字、保存各通用寄存器的值,并提供与中断信号对应的中断服务。整个过程中,由操作系统完成的是提供中断服务和初始化中断向量表。
  14. 区分执行态(核心态和用户态)的主要目的是保护系统程序。

1.4 操作系统的体系结构

OS是软件,其发展过程也类似软件发展过程。

1.4.1 传统操作系统结构

我们把早期的无结果的OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代),都统称为传统结构的OS,而把微内核结构的OS称为现代结构的OS。

  1. 无结构操作系统
    适合编写小型OS,可调试,可维护,可扩展性差。
  2. 模块化结构OS
    自顶向下设计。
  3. 分层式结构OS
    自底向上设计。

1.4.2 大内核(单内核/宏内核)和微内核


现代操作系统一般将OS划分为若干层次,再将OS的不同功能分别设置在不同的层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行效率较高的模块(如时钟管理、进程调度和许多模块所共用的一些基本操作),都安排在紧密硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。
这种安排方式的目的在于两方面:一是便于对这些软件进行保护,防止遭受其他应用程序的破坏;二是可以提高OS的运行效率。

内核是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序。

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

内核是计算机上配置的底层软件,是计算机功能的延伸。主要包括四个方面。

  1. 时钟管理:在计算机的各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。系统管理的方方面面无不依赖于时钟。
  2. 中断机制:中断机制是操作系统各项操作的基础。如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。
  3. 原语:原语具有的特点,处于操作系统的最底层,是最接近硬件的部分;这些程序的运行具有原子性,其操作只能一气呵成(主要从系统安全性和便于管理考虑);这些程序的运行时间都较短,而且调用频繁。定义原语的直接方法就是关闭中断(关中断),让其所有动作不可分割地完成后再打开中断(开中断)。在核心态下执行,常驻内存。
  4. 系统控制的数据结构及处理:系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有一下三种:进程管理、存储器管理和设备管理。


典型的大内核/宏内核/单内核 操作系统: Linux、UNIX
典型的 微内核 操作系统: Windows NT

微内核OS结构相对宏内核而言,宏内核指OS初期所采用,所有服务都在同个地址空间运行。

  1. 微内核操作系统的基本概念
    在单计算机环境下,大多也采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。
    基本概念:
    1)足够小的内核
    2)基于客户/服务器模式
    3)应用“机制与策略分离”原理
    机制是指实现某一功能的具体执行机构。策略是在机制的基础上借助于某些参数和算法来实现该功能的优化或达到不同的功能目标。通常将机制放在OS的微内核中。
    现在一般都采用“机制与策略分离”原理,将机制部分以及与硬件紧密相关的部分放入微内核中。
    4)采用面向对象技术
    面向对象技术可以用来编写操作系统
  2. 微内核的基本功能
    1)进程(线程)管理
    确定进程优先级,切换调度进程之间的通信。
    2)低级存储器管理
    逻辑地址转换为物理地址。
    3)中断和陷入处理
    捕获发送消息给服务器。
  3. 微内核操作系统的优点
    1)提高了系统的可扩展性,各服务器彼此独立
    2)增强了系统的可靠性
    当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。
    3)可移植性
    所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分——各种服务器,均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。(内核小,修改内核工作量小)
    4)提供了对分布式系统的支持
    由于在微内核OS中,客户和服务器之间、服务器和服务器之间的通信采用消息传递通信机制,致使微内核OS能很好地支持分布式系统和网络系统。
    5)融入了面向对象技术。
  4. 微内核操作系统存在的问题
    运行效率低。主要原因是,在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换(进程切换)。

微内核的服务比较少,所以它较大内核比较稳定,但最大的问题就是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。为了改善运行效率,可以重新把一些常用的操作系统基本功能由服务器移入微内核中。

1.4.3 各种体系结构的特点

1.4.4 操作系统引导(Boot)

当一个刚买来的的磁盘(硬盘):

1. 安装操作系统后

2. 操作系统引导(开机过程)


3. 虚拟机

传统计算机:

虚拟机:
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统。

同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machine Monitor/Hypervisor


其他章节:
操作系统王道考研复习——第二章(进程管理) 上
操作系统王道考研复习——第二章(进程管理) 下
操作系统王道考研复习——第三章(内存管理/存储器管理)
操作系统王道考研复习——第四章(文件管理)
操作系统王道考研复习——第五章(设备管理)

操作系统王道考研复习——第一章(计算机系统概述)相关推荐

  1. 【408计算机考研】操作系统——第一章 计算机系统概述

    文章目录 第一章 计算机系统概述 1.1操作系统的基本概念 1.1.1操作系统的概念 1.1.2操作系统的特征 1.1.3操作系统的目的和功能 1.2操作系统发展历程 1.2.1手工操作阶段(此阶段无 ...

  2. 操作系统:第一章 计算机系统概述

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  3. 第一章 计算机系统概述 1.2.3 计算机的多级层次结构 [计算机组成原理笔记]

    第一章 计算机系统概述 1.2.3 计算机的多级层次结构 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 计算机系统的五层结构: ...

  4. 第一章 计算机系统概述 1.2.2 各硬件部分的介绍 [计算机组成原理笔记]

    第一章 计算机系统概述 1.2.2 各硬件部分的介绍 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 主存储器.运算器和控制器的 ...

  5. 第一章 计算机系统概述 1.3 计算机的性能指标 [计算机组成原理笔记]

    第一章 计算机系统概述 1.3 计算机的性能指标 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 容量计算 K/M/G/T单位转 ...

  6. 第一章 计算机系统概述 1.2.1 计算机硬件的基本组成 [计算机组成原理笔记]

    第一章 计算机系统概述 1.2.1 计算机硬件的基本组成 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 冯诺依曼机结构 现代计 ...

  7. 第一章 计算机系统概述 1.1 计算机发展史 [计算机组成原理笔记]

    第一章 计算机系统概述 1.1 计算机发展史 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 计算机硬件的发展史 转载请注明文章 ...

  8. 计算机组成原理-第一章 计算机系统概述(详细知识点总结)

    第一章 计算机系统概述 大纲 大纲: (一).计算机发展历程 (二).计算机系统层次结构 计算机硬件的基本组成.计算机软件的分类.计算机的工作过程 (三).计算机性能指标 吞吐量.响应时间.CPU时钟 ...

  9. 数据结构笔记(王道考研) 第一章:绪论

    大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,该课属于付费课程(不过盗版网盘资源也不难找...).后续又根据23年考研的大纲对内容做了一些调整,将二叉排序树和平衡二叉树的内容挪到 ...

最新文章

  1. find_in_set
  2. Belkatalog CMS SQL 注入漏洞(图)
  3. 死锁产生的原因及四个必要条件
  4. placeholder调整颜色
  5. Linux Cp 忽略报错信息,linux使用cp报错 Text file busy
  6. vue 在已有的购买列表中(数据库返回的数据)修改商品数量
  7. 组件是全局怎么修改样式_用一个落地项目,帮你掌握Sketch组件的制作思路
  8. 深度学习2.0-38.RNNCell使用-RNN Layer
  9. php 5的手册,本手册中所涉及的 PHP 版本 - PHP 5 中文文档
  10. json html api文档,jsonEditor api介绍
  11. ubuntu10.10 教育网 使用ipv6,亲测可用【经过再次验证与修正】
  12. a king读后感 love of the_电影读后感英文
  13. 反相器有时候为了强调低电平有效,将反相器的图形符号中的小圆圈画在输入端,如数电中的画法。有时候小圆圈在前面只表示低电平有效,没有反相的意思,例如与非门组成的RS触发器
  14. 京东面试题咖啡杯问题(贪心算法、递归综合运用)
  15. vip html代码,vip.html
  16. 02 固定效应模型与Stata实现
  17. 蓝牙中的四种音频编码:Apt-X、SBC、AAC、LDAC
  18. Pixel 4刷机常见问题指南(Android 11 211001版本可用!)
  19. android xml绘图p113-p117
  20. 成都房地产市场火爆,房价走势之数据分析

热门文章

  1. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(9月7日~9月13日)...
  2. Java程序员掉发系列——程序员的成长之路
  3. 芯片如何储存信息_手机上的你以为信息删了就彻底删除了?事情没那么简单
  4. java全能速查宝典_Java全能速查宝典_IT教程网
  5. 迅雷专用链接和旋风专用链接编码及转换方法
  6. 线性代数:第五章 相似矩阵及二次型(2)二次型及其标准型 配平方法 合同变换法 正定二次型
  7. vivo X70系列搭载自研V1芯片9月9日发布
  8. AT指令整理 模块:BC28
  9. 睡眠时间 数据_享受真正的安心睡眠 华米助眠耳塞Amazfit ZenBuds体验
  10. elementUI之表格排序失效,表格宽度可拖拽变宽变窄