【王道】操作系统 知识点总结1——计算机系统概述

操作系统

1 计算机系统概述

1.1 操作系统的基本概念

  1. 定义

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

  2. 特征

    • 并发

      并发指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

      OS的并发性是通过分时实现的。

      • 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行

      • 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

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

      并行性:两个或多个事件在同一时刻发生,需要硬件支持,如多流水线或多处理机硬件环境。

      多道程序环境下,一段时间,宏观上,多道程序同时执行某一时刻,单处理机环境下实际仅有一道程序执行,微观上程序分时交替执行

    • 共享

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

      • 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。

        应用:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。

      • 同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。

        应用:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。

      所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)

      并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:

      • ①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;
      • ②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
    • 虚拟

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

      • 虚拟处理器:通过时分复用技术,让多道程序并发执行的方法,来分时使用一个处理器的。

        虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。

      • 虚拟存储器:通过空分复用技术,将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。

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

    • 异步

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

  3. 功能

    ​ 为了给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机管理、存储器管理、设备管理和文件管理。为了方便用户使用操作系统,还必须向用户提供接口。同时,操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。

    • 操作系统是系统资源的管理者

      • 处理机管理

        对进程的管理,包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。

      • 存储器管理

        方便程序运行、用户使用及提高内存的利用率,包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。

      • 文件管理

        计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统

        文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。

      • 设备管理

        设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

    • 向上层提供方便易用的服务

      • 命令接口

        用户利用这些操作命令来组织和控制作业的执行。

        • 联机命令接口:即交互式命令接口,适用于分时或实时系统。

          “雇主”说一句话,“工人”做一件事,并做出反馈,这就强调了交互性。

        • 脱机命令接口:即批处理命令接口,适用于批处理系统

          “雇主”把要“工人”做的事写在清单上,“工人”按照清单命令逐条完成这些事,这就是批处理。

      • 程序接口

        程序接口由一组系统调用(也称广义指令)组成。是为编程人员提供的接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。

        用户通过在程序中使用系统调用命令请求OS为其提供服务。系统调用命令又称广义指令

      • GUl:图形化用户接口(Graphical User Interface)

        用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。

    • 是最接近硬件的一层软件

      裸机:没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础。

      【王道】操作系统 知识点总结1——计算机系统概述_第1张图片

      在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。

      通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机

例:

image-20230906162625137

image-20230906162652164

image-20230906162907975

image-20230906162925001

image-20230906163023486

image-20230906163041909

image-20230906163257516

image-20230906163342210

1.2 操作系统发展历程

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

    用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。

    • 缺点:
      • 用户独占全机
      • CPU等待手工操作,CPU利用不充分
    • 人机矛盾:CPU和I/O速度不匹配的矛盾。
  2. 批处理阶段(操作系统开始出现)

    • 单道批处理系统:引入脱机输入输出技术

      • 特征

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

      • 缺点:资源利用率仍低,高速CPU等待低速I/O。

    • 多道批处理系统:多道程序设计技术操作系统开始出现

      多道程序设计:允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

      • 特点

        • 多道。计算机内存中同时存放多道相互独立的程序。
        • 宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
        • 微观上串行。内存中的多道程序轮流占有CPU,交替执行。
        • 间断性:由于多道程序之间需要共享和竞争系统资源,因此每个程序的执行过程不是连续的,而是有间断的。
        • 共享性:多道程序之间需要共享系统的各种资源,如CPU、内存、外设等。
        • 制约性:多道程序之间存在相互制约的关系,如同步、互斥、优先级等。
      • 技术实现:

        • 如何分配处理器。
        • 多道程序的内存分配问题。
        • I/O设备如何分配。
        • 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
      • 优点

        • 资源利用率高,多道程序并发执行,共享计算机资源
        • 系统吞叶量大,CPU和其他资源保持"忙碌"
      • 缺点:用户响应时间长、无人机交互能力

  3. 分时操作系统

    分时技术:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

    多个用户通过终端同时共享一台主机,用户可以同时与主机进行交互操作而互不干扰。

    • 特点

      • 同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
      • 交互性。用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
      • 独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
      • 及时性。用户请求能在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。
    • 优点

      • 用户请求可以被即时响应,解决了人机交互问题。

      • 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

    • 缺点:无法优先处理紧急任务

  4. 实时操作系统

    能在某个时间限制内完成某些紧急任务而不需要时间片排队

    • 分类:

      • 软实时系统:能够接受偶尔违反时间规定且不会引起永久性的损害。

        如飞机订票系统、银行管理系统。

      • 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生。

        如飞行器的飞行自动控制系统。

    • 特点

      • 及时性
      • 可靠性
    • 优点:能够优先处理紧急任务

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

    • 网络操作系统:把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。

      • 特点
        • 网络中各种资源的共享
        • 各台计算机之间的通信
    • 分布式计算机系统:由多台计算机组成并满足下列条件的系统,主要特点是分布性和并行性。

      • 系统中任意两台计算机通过通信方式交换信息
      • 系统中的每台计算机都具有同等的地位,即没有主机也没有从机
      • 每台计算机上的资源为所有用户共享
      • 系统中的任意台计算机都可以构成一个子系统,并且还能重构
      • 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成
    • 分布式操作系统与网络操作系统的本质不同:分布式操作系统中的若干计算机相互协同完成同一任务

  6. 个人计算机操作系统

    个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中。

    常见的有Windows、Linux和MacOS等。

​ 操作系统发展历程如下图所示。

【王道】操作系统 知识点总结1——计算机系统概述_第2张图片

​ 此外,还有嵌入式操作系统、服务器操作系统、智能手机操作系统等。

image-20230906172127304

image-20230906172205744

image-20230906172222270

image-20230906172239874

image-20230906172347580

image-20230906172651255

1.3 操作系统运行环境

1.3.1 处理器运行模型

  1. 在计算机系统中,通常CPU执行两种不同性质的程序:

    • 操作系统内核程序:是用户自编程序的管理者,“管理程序”(即内核程序)要执行一些特权指令。
    • 用户自编程序:即系统外层的应用程序,或简称“应用程序”,“被管理程序”(即用户自编程序)出于安全考虑不能执行这特权指令。
  2. 特权指令和非特权指令

    • 特权指令:是指不允许用户直接使用的指令,如/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
    • 非特权指令:是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
  3. CPU的运行模式

    • 用户态(目态):CPU处于用户态,此时CPU只能执行非特权指令。
    • 核心态(又称管态、内核态):CPU处于核心态,此时CPU可以执行特权指令,切换到用户态的指令也是特权指令。

    应用程序运行在用户态,操作系统内核程序运行在核心态。

    内核态一>用户态:一条修改PSW的特权指令

    用户态一>内核态:应用程序向操作系统请求服务时通过使用访管指令,从而产生一个中断事件将操作系统转换为核心态。

  4. 分层管理

    • 一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。

    • 其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。

    这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。

  5. 操作系统内核功能

    内核(Kernel)是计算机上配置的底层软件,它管理着系统的各种资源,可以看作是连接应用程序和硬件的一座桥梁。由很多内核程序组成操作系统内核。

    • 时钟管理

      • 计时:是时钟的第一功能,操作系统需要通过时钟管理,向用户提供标准的系统时间。

      • 进程切换:通过时钟中断的管理实现。

        例如,在分时操作系统中采用时间片轮转调度,在实时系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。

    • 中断机制

      中断作用

      • 让操作系统内核强行夺回CPU的控制权
      • 使CPU从用户态变为内核态

      引入原因:提高多道程序运行环境中CPU的利用率。

      现代操作系统是靠中断驱动的软件

    • 原语

      由若干条指令组成的,用于完成一定功能的一个过程。

      特点

      • 1)处于操作系统的最底层,是最接近硬件的部分。
      • 2)这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
      • 3)这些程序的运行时间都较短,而且调用频繁。

      定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。

      系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。

    • 系统控制的数据结构及处理

      系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。

      为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下3种:

      • 1)进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
      • 2)存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
      • 3)设备管理。缓冲区管理、设备分配和回收等。

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

1.3.2 中断和异常的概念

  1. 中断作用

    让操作系统内核强行夺回CPU的控制权;使CPU从用户态变为内核态。

  2. 中断和异常的分类

    【王道】操作系统 知识点总结1——计算机系统概述_第3张图片

    • 异常:又称内中断,指来自CPU执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。

      • 故障(Fault)通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。
      • 自陷(Trap)是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序,如条件陷阱指令。
      • 终止(Abort)是指出现了使得CPU无法继续执行的硬件故障,如控制器出错、存储器校验错等。
    • 中断:又称外中断,指来自CPU执行指令外部的事件,通常用于信息输入/输出,如I/O中断,时钟中断。

      • 可屏蔽中断:指通过INTR线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。

      • 不可屏蔽中断:指通过NMI线发出的中断请求,通常是紧急的硬件故障,如电源掉电等。此外,异常也是不能被屏蔽的。

    故障异常和自陷异常属于软件中断(程序性异常),终止异常和外部中断属于硬件中断

    异常不能被屏蔽,一旦出现,就应立即处理。

  3. 中断和异常的处理过程

    • 当CPU在执行用户程序的第i条指令时检测到一个异常事件,或在执行第i条指令后发现一个中断请求信号,

    • 则CPU打断当前的用户程序,然后转到相应的中断或异常处理程序去执行。

    • 若中断或异常处理程序能够解决相应的问题,则在中断或异常处理程序的最后,CPU通过执行中断或异常返回指令,回到被打断的用户程序的第i条指令或第i+1条指令继续执行

      返回第i+1条指令:由自陷(Trap)引起的内中断;如系统调用。由外部设备引起的外中断,如键盘

      返回第i条指令:由故障(Fault)引起的内中断;如缺页等。

    • 若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。

    通常情况下,对中断和异常的具体处理过程由操作系统(和驱动程序)完成。

1.3.3 系统调用

  1. 定义

    操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务,系统调用可视为特殊的公共子程序。又称广义指令程序接口由一组系统调用组成。目的为解决资源分配问题

  2. 分类

    • 设备管理:完成设备的请求或释放,以及设备启动等功能。
    • 文件管理:完成文件的读、写、创建及删除等功能。
    • 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。
    • 进程通信:完成进程之间的消息传递或信号传递等功能。
    • 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
  3. 系统调用过程

    系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态

    用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务。

    访管指令不是特权指令,访管指令是在用户态使用的,所以它不可能是特权指令。

    • 系统调用执行过程:

      传递系统调用参数→执行陷入(trap)指令→执行相应的服务程序→返回用户态

      【王道】操作系统 知识点总结1——计算机系统概述_第4张图片

      • 当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;
      • 也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。
      • 管理程序运行结束时,用户程序需要继续运行,此时通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回断点处继续执行
    • 用户态转向核心态的例子:

      • 用户程序要求操作系统的服务,即系统调用。
      • 发生一次中断。
      • 用户程序中产生了一个错误状态。
      • 用户程序中企图执行一条特权指令。
      • 从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令。
    • 只能在核心态下执行的指令(特权指令):

      • 开关中断指令,用于允许或禁止中断,控制中断屏蔽位
      • 设置时钟日期指令,用于修改系统时钟
      • 改变存储映像图指令,用于修改主存保护机制
      • 启动I/O指令,用于控制I/O设备的工作状态和动作
      • 加载PSW指令,用于修改程序状态字(PSW),包括中断标志位、运算结果标志位等
      • 置特殊寄存器指令,用于存取中断寄存器、时钟寄存器等特殊寄存器
      • 停机指令,用于停止一个中央处理器的工作

    注意:由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。

  4. 与库函数的区别

    • 有的库函数是对系统调用的进一步封装:如“创建一个新文件”的函数
    • 有的库函数没有使用系统调用:如的“取绝对值”的函数

例:

image-20230907110731631

image-20230907110712402

image-20230907111326699

image-20230907111012720

image-20230907112051407

image-20230907112105166

image-20230907112801641

【王道】操作系统 知识点总结1——计算机系统概述_第5张图片

image-20230907113824708

image-20230907113836680

image-20230907114514637

image-20230907114540607

image-20230907124502957

image-20230907124527899

【王道】操作系统 知识点总结1——计算机系统概述_第6张图片

image-20230907135000007

【王道】操作系统 知识点总结1——计算机系统概述_第7张图片

【王道】操作系统 知识点总结1——计算机系统概述_第8张图片

image-20230907141021682

【王道】操作系统 知识点总结1——计算机系统概述_第9张图片

1.4 操作系统结构

  1. 分层法

    ​ 分层法是将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)。

    【王道】操作系统 知识点总结1——计算机系统概述_第10张图片

    • 优点:
      • ①便于系统的调试和验证,简化了系统的设计和实现。只需调试每层功能,无需考虑其他层。
      • ②易扩充和易维护。在系统中修改添加某层,不改变接口就不影响其他层。
    • 缺点:
      • ①合理定义各层比较困难。因为依赖关系固定后,往往就显得不够灵活。
      • ②效率较差。执行一个功能要穿梭多层,每层通信增大开销。
  2. 模块化

    模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。各模块还可划分成子模块,子模块之间也规定好接口。

    【王道】操作系统 知识点总结1——计算机系统概述_第11张图片

    • 模块划分应考虑其划分大小,及独立性,衡量独立性有两个标准:

      • 内聚性,模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好。
      • 耦合度,模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好。
    • 优点:

      • ①提高了操作系统设计的正确性、可理解性和可维护性;

      • ②增强了操作系统的可适应性;

      • ③加速了操作系统的开发过程。

    • 缺点:

      • ①模块间的接口规定很难满足对接口的实际需求。
      • ②各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序。
  3. 宏内核

    又称大内核单内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。

    【王道】操作系统 知识点总结1——计算机系统概述_第12张图片

    • 优点:高性能
    • 缺点:内核代码庞大,结构混乱,难以维护
    • 应用:Windows、Linux、Android、IOS、macOS等架构;但其都广泛吸取微内核的优点进行改进。
  4. 微内核

    微内核构架,是指将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性。

    【王道】操作系统 知识点总结1——计算机系统概述_第13张图片

    那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。

    微内核架构=微内核+多个服务器

    • 微内核内容

      • ①与硬件处理紧密相关的部分
      • ②一些较基本的功能
      • ③客户和服务器之间的通信。
    • 服务器(进程)

      • 用于提供对进程(线程)进行管理的进程(线程)服务器、

      • 提供虚拟存储器管理功能的虚拟存储器服务器等,

      它们都是作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现交互的。下图为单机环境下的客户/服务器模式。

      【王道】操作系统 知识点总结1——计算机系统概述_第14张图片

    • 微内核基本功能

      • ①进程(线程)管理。

        如进程(线程)之间通信、切换、调度以及多处理机之间的同步。

      • ②低级存储器管理。

        如用于实现将逻辑地址变换为物理地址等的页表机制和地址变换机制,这一部分是依赖于硬件的,因此放入微内核。

      • ③中断和陷入处理。

        捕获所发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理

    • 微内核特点

      • ①扩展性和灵活性。增添新的功能无需改变内核代码,只需在相应服务器中修改添加新功能。
      • ②可靠性和安全性。某个模块崩溃时,只会使该进程崩溃,不会使整个系统崩溃。
      • ③可移植性。与CPU和I/O硬件有关的代码均放在内核中,移植代码无需考虑硬件差异。
      • ④分布式计算。采用消息传递机制,使微内核系统能很好地支持分布式系统和网络系统。
    • 微内核缺点:需要频繁地在核心态和用户态之间切换,性能低

    • 应用:鸿蒙OS、实时、工业、航空及军事应用。

  5. 外核(exokernel)

    ​ 内核负责进程调度、进程通信等功能;外核在内核态运行,负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。

    • 任务:为虚拟机分配资源,并检查使用这些资源的企图,以确保没有机器会使用他人的资源。每个用户层的虚拟机可以运行自己的操作系统,但限制只能使用已经申请并且获得分配的那部分资源。

    • 优点

      • 外核可直接给用户进程分配“不虚拟、不抽象的硬件资源,使用户进程可以更灵活的使用硬件资源
      • 减少了虚拟硬件资源的“映射层",提升效率
    • 缺点

      • 降低了系统的一致性
      • 使系统变得更复杂

1.5 操作系统引导

  1. 概念

    • BIOS 程序(Basic Input/Output System)

      BIOS 是固化在主板上的基本输入输出系统,是计算机启动第一个运行的软件,存放在ROM中。它会进行硬件初始化和自检,然后查找引导程序并执行。

    • 引导程序(Boot)

      引导程序是存储在主存ROM中的一段小程序,它的作用是将操作系统的内核文件从硬盘中读取到内存中,并跳转到内核入口点开始执行。

    • 主引导记录(MBR)

      MBR是硬盘的主引导记录,位于硬盘的第一个扇区。它包含了磁盘引导程序和分区表。该引导程序会找到活动分区并读取其分区引导记录,完成硬盘的引导。

    • 分区引导记录(PBR)

      PBR是分区引导记录,位于每个分区的第一个扇区。PBR中包含了一个引导程序,可以寻找并激活分区根目录下的启动管理器,完成分区的引导过程。

  2. 引导过程

    【王道】操作系统 知识点总结1——计算机系统概述_第15张图片

    引导过程:

    • ①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
      • BIOS初始化并执行引导程序进行自检,确保硬件工作正常。
      • BIOS查找可引导设备(通常是安装有操作系统的硬盘),读取主引导记录(MBR)。
    • ②将磁盘的第一块一一主引导记录读入内存,执行磁盘引导程序,扫描分区表
      • MBR执行,识别活动分区,查找并执行该分区的分区引导记录(PBR)。
    • ③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
      • PBR找到分区中操作系统的启动管理器程序并加载执行。
    • ④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作
      • 启动管理器进一步加载操作系统内核和关键组件到内存。
      • 操作系统内核接管硬件控制权,初始化系统,启动操作系统。

    注:操作系统最终被加载到 RAM 中。

1.6 虚拟机

  1. 定义

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

  2. 分类

    • 第一类虚拟机程序

      第一类虚拟机管理程序就像一个操作系统,因为它是唯一一个运行在最高特权级的程序。

      它在裸机上运行并且具备多道程序功能。虚拟机管理程序向上层提供若干台虚拟机,这些虚拟机是裸机硬件的精确复制品。由于每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统

      虚拟内核态:虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而,虚拟机上的操作系统认为自己运行在内核态(实际上不是),称为虚拟内核态

      【王道】操作系统 知识点总结1——计算机系统概述_第16张图片

    • 第二类虚拟机程序

      它是一个依赖于Windows、Linux等操作系统分配和调度资源的程序,很像一个普通的进程

      如VMware Workstation。

      对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为宿主操作系统;运行在虚拟机管理程序上的操作系统称为客户操作系统

      首次启动时,第二类虚拟机管理程序像一台刚启动的计算机那样运转,期望找到的驱动器可以是虚拟设备。然后将操作系统安装到虚拟磁盘上(其实只是宿主操作系统中的一个文件)。客户操作系统安装完成后,就能启动并运行。

  3. 对比

    第一类VMM 第二类VMM
    对物理资源的控制权 直接运行在硬件之上,能直接控制和分配物理资源 运行在Host OS之上,依赖于Host OS为其分配物理资源
    资源分配方式 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于"外核“的分配方式,分配未经抽象的物理硬件 GuestOs拥有自己的虚拟磁盘,该盘实际上是HostOs文件系统中的一个大文件。GuestOs分配到的内存是虚拟内存
    性能 性能更好 性能更差,需要Host Os作为"中介”
    可支持的虚拟机数量 更多,不需要和Host OS竞争资源,相同的硬件资源可以支持更多的虚拟机 更少,Host Os本身需要使用物理资源,Host OS上运行的其他进程也需要物理资源
    虚拟机的可迁移性 更差 更好,只需导出虚拟机镜像文件即可迁移到另一台Host Os上,商业化应用更广泛
    运行模式 第一类VMM运行在最高特权级(Ring 0),可以执行最高特权的指令。 第二类VMM部分运行在用户态、部分运行在内核态。GuestOs发出的系统调用会被VMM截获,并转化为VMM对Hostos的系统调用

你可能感兴趣的:(王道操作系统知识点总结,考研,学习,操作系统,计算机系统,王道)