文章目录
- 操作系统的概念
- 操作系统的特征
- 并发和并行
- 共享
- 虚拟
- 异步
- 操作系统的功能
- 管理计算机系统的资源
- 作为用户和计算机硬件之间的接口
- 操作系统的发展历程
- 操作系统的运行环境
- CPU运行模式
- 异常和中断
- 系统调用
- 操作系统结构
- 操作系统的引导
- 虚拟机
- 容器
操作系统的概念
操作系统是指控制和管理整个计算机系统的硬件和软件资源、合理的组织和调度计算机的工作与资源分配、进而为用户和其它软件提供方便接口与环境的程序集合,操作系统是计算机系统中最基本的系统软件。
操作系统的特征
并发和并行
- 并发:并发是指计算机系统中在同一时间间隔(宏观)内运行多个程序。而在同一时刻(微观),单处理机的环境下实际仅能有一道程序执行,因此并发执行实际是通过分时交替实现的。在操作系统中引入进程的目的是使程序能并发的执行。
- 并行:并行是指计算机系统在同一时刻运行多个程序,并行性需要有相关硬件的支持。
共享
共享是指计算机中的资源可供内存中多个并发执行的进行共同使用。共享可分为以下两种方式:
- 互斥共享模式:当进程访问某个资源时,必须先提出请求,若此时该资源空闲,那么操作系统便将其分配给该进程使用,此后有其它进程要访问该进程时就必须等待,仅当资源被使用完并被释放时才能被另一个进程访问。这种资源共享模式就称为互斥共享,这种在一段时间内只允许一个进程访问的资源称为临界资源。
- 同时访问模式:某种资源允许在一段时间内被多个进程同时(类似于并发,通过分时实现)访问。这种访问模式就称为同时访问。
并发和共享互为同时存在的条件:
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题。
- 若系统不能对资源共享实施有效的管理,则必将影响程序的并发执行,甚至根本无法并发执行。
虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物,用于实现虚拟的技术称为虚拟技术,虚拟技术分为以下两种:
- 时分复用技术:如虚处理器技术,可以通过多道程序设计,采用让多道程序并发执行的方法,来分时复用一个处理器。虽然只有一个处理器,但每个程序都认为有一个专门的处理器为它服务。
- 空分复用技术:如虚存储器技术,可以将一台计算机的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。
异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。只要程序运行的环境相同,操作系统就必须保证多次运行进程后都能获得相同的结果。
操作系统的功能
管理计算机系统的资源
- 进程管理:在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理和进程调度等。
- 内存管理:存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存利用率,主要功能包括内存分配与回收、地址映射、内存保护、内存共享以及内存扩充等。
- 文件管理:计算机中的信息都是以文件形式存在的,操作系统中负责文件管理的部分称为文件系统,文件管理主要功能包括文件存储空间的管理、目录管理以及文件读写管理和保护等。
- I/O管理:设别管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要功能包括缓冲管理、设备分配、设备处理和虚拟设备等。
作为用户和计算机硬件之间的接口
操作系统提供的接口主要分为两类,一类是命令接口,用户利用这些命令来组织和控制作业的执行;另一类是程序接口,程序员可以使用它们请求操作系统的服务。
- 命令接口:使用命令接口进行作业控制的方式有两种,联机控制方式和脱机控制方式,按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口。
- 联机命令接口:又称为交互式命令接口,它由一组键盘操作命令组成。用户通过控制台或终端输入操作指令,用户每输入一条命令,控制权就转交给操作系统的命令解释程序,然后由命令解释程序解析并执行输入的命令,之后控制台返回控制台或终端,此时用户又可输入下一条指令。
- 脱机命令接口:又称批处理指令接口,它由一组作业控制命令组成,脱机用户不能直接干预作业的执行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起交给操作系统,系统调度到改作业时,由操作系统中的解释程序逐条解释执行作业说明书上的命令,从而间接的控制作业的执行。
- 程序接口:程序接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其服务。
操作系统的发展历程
操作系统的运行环境
CPU运行模式
在计算机系统中,CPU通常执行两种不同性质的程序,一种是操作系统内核程序,另一种是用户程序。内核程序是用户程序的管理者,因此内核程序可以执行一些特权指令。
- 特权指令:指不允许用户直接使用的指令。
- 非特权指令:指允许用户使用的命令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,主要是为了防止用户程序对系统造成破坏。
在具体的实现上,将CPU的运行模式实现为用户态和内核态,用户程序运行在用户态,操作系统内核运行在内核态。CPU变态的过程如下:
- 计算机开机时,计算机内核开始运行,CPU处于内核态。
- 内核态 → \rightarrow →用户态:操作系统执行一条特权指令,这个动作意味着操作系统将主动让出CPU使用权。
- 用户态 → \rightarrow →内核态:由异常和中断引发,硬件自动完成变态过程。
异常和中断
异常和中断是CPU从用户态到内核态的唯一途径,当发生异常和中断时,运行在用户态的CPU会立即进入到内核态,这是通过硬件实现的。
当CPU在执行用户程序的第 i i i条指令时检测到一个异常事件,或者在执行第 i i i条指令后发现一个中断请求信号,则CPU打断当前用户程序,然后转到相应的异常或中断处理程序去执行。若异常或中断处理程序能够解决相应的问题,则在异常或中断处理程序的最后,CPU通过执行异常或中断返回指令,回到被打断的用户程序的第i条指令或第 i + 1 i+1 i+1条指令继续执行;若异常或中断处理程序发现是不可恢复的致命错误,则终止用户程序。通常情况下,对异常和中断的具体处理过程由操作系统完成。从CPU检测到异常或中断事件,到调出相应的处理程序,整个过程称为异常和中断的响应。CPU对异常和中断响应的过程可分为以下几个步骤:
- 关中断:在保存断点和程序状态期间,不能被新的中断打断,因此要禁止响应新的中断,即关中断。
- 保存断点和程序状态:为了能在异常和中断处理后正确返回到被中断的程序继续执行,必须将程序的断点和状态送到栈或特定寄存器中。
- 识别异常和中断:异常大多采用软件识别方式,中断可以采用软件识别方式或硬件识别方式。
- 软件识别方式是指CPU设置一个异常状态寄存器,用于记录异常原因。操作系统使用一-个统一的异常或中断查询程序,按优先级顺序查询异常状态寄存器,以检测异常和中断类型,先查询到的先被处理,然后转到内核中相应的处理程序。
- 硬件识别方式又称向量中断,异常或中断处理程序的首地址称为中断向量,所有中断向量都存放在中断向量表中。每个异常或中断都被指定一个中断类型号。在中断向量表中,类型号和中断向量一一对应,因而可以根据类型号快速找到对应的处理程序。
系统调用
系统调用是操作系统提供给应用程序使用的接口,应用程序可以通过系统调用来请求获得操作系统内核的服务。相对于库函数而言,系统调用更为底层:
系统调用按功能大致可分为以下几类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
系统调用必须使用某些特权指令才能完成,所以系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。用户程序可以执行陷入(访管)指令(CPU状态会从用户态进入内核态)来发起系统调用,请求操作系统提供服务。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(CPU状态会从核心态回到用户态)。
操作系统结构
操作系统结构可以从不同方向划分,但从操作系统的发展来看,从操作系统的内核架构划分的方式得到了长足的发展。
内核是指最基本最核心的部分,实现内核功能的程序就是内核程序,根据内核程序的不同可以将内核划分为宏内核和微内核:
其中原语是一些可以被调用的公用小程序,它们各自完成一个规定的动作,它们的特点如下:
- 处于操作系统的最底层,最接近硬件的部分。
- 原语的运行具有原子性。
- 运行的时间比较短,而且调用频繁。
定义原语的直接方法就是关闭中断,让其所有动作不可分割的完成后再打开中断。
操作系统的引导
操作系统是一种程序,程序以数据的形式存放在硬盘中,而硬盘通常分为多个区,一台计算机中又有多个或多种外部存储设备。操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统,一环扣一环地完成上述过程。常见操作系统的引导过程如下:
- ①激活CPU、硬件自检、加载带有操作系统的硬盘:激活的CPU读取ROM中的引导程序,将指令寄存器置为BIOS的第一条指令,即开始执行BIOS的指令。启动BIOS程序后,先进行硬件自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。硬件自检后,BIOS开始读取启动顺序表(通过CMOS里保存的启动顺序,或者通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中。
- ②加载主引导记录MBR、扫描硬盘分区表并加载硬盘活动分区:硬盘以特定的标识符区分引导硬盘和非引导硬盘。如果发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统。MBR包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。
- ③加载分区引导记录PBR、加载启动管理器。读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。分区引导记录搜索活动分区中的启动管理器,加载启动管理器,启动管理器即完整的操作系统初始化程序。
- ④加载操作系统:执行启动管理器,加载操作系统。
虚拟机
虚拟机是一台逻辑计算机,是指使用虚拟化技术,将一台物理机虚拟化为多台虚拟机器,每个虚拟机器都可以独立运行一个操作系统。有以下两种虚拟化方法:
它们的区别如下:
容器
传统的虚拟机技术通过在物理硬件上运行虚拟化层,将物理资源(如处理器、内存、存储等)虚拟化为多个独立的虚拟机。每个虚拟机都有自己的操作系统和应用程序,它们在各自的虚拟环境中运行,并与物理硬件和其他虚拟机隔离开来。然而,传统虚拟机的运行需要占用较高的资源,包括磁盘空间、内存和处理器性能。每个虚拟机都需要完整的操作系统和应用程序副本,这在资源利用和启动时间上存在一定的开销。容器技术则是在虚拟化领域的进一步演进,它采用了更轻量级的虚拟化方式。容器技术利用操作系统的容器化功能(如Linux容器),通过隔离进程的命名空间、文件系统和资源控制组等功能,实现了应用程序的隔离和运行环境的虚拟化。
容器和虚拟机的区别如下: