操作系统OS
一、概念和功能
1.概念
操作系统 (OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;已提供给用户和其他软件方便的接口和环境;是计算机系统中最基本的系统软件。
2.功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
3.目标
为上层提供方便易用的服务。
二、特征
1.并发
并发是指俩个或多个事件在同一时间间隔内发生。
2.共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
3.虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的。
4.异步
异步是指在多道环境下,允许多个程序并发执行,但由于资源有限,进程的进行不是一贯道底的,而是走走停停的,以不可预知的速度向前推进,这就是进程的异步性。
三、发展
手工操作 -> 批处理阶段 -> 分时操作系统 -> 实时操作系统
手工操作阶段:用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。人机矛盾严重。
批处理阶段:为了解决人机矛盾及CPU 和I/O设备之间速度不匹配的矛盾,出现了批处理系统。按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
分时操作系统阶段:
实时操作系统阶段:
四、运行机制
内核(Kernel)是操作系统最主要核心的部分,由许多内核程序组成操作系统内核。
在具体实现上,将CPU的运行模式划分为用户态(目态)和核心态(又称管态、内核态)。
可以理解为CPU 内部有一个小开关,当小开关为0时,CPU 处于核心态,此时CPU 可以执行特
权指令,切换到用户态的指令也是特权指令。当小开关为1时,CPU 处于用户态,此时CPU只
能执行非特权指令。应用程序运行在用户态,操作系统内核程序运行在核心态。应用程序向操作
系统请求服务时通过使用访管指令,从而产生一个中断事件将操作系统转换为核心态。
1)特权指令,是指不允许用户直接使用的指令,如I/O指令、置中断指令,存取用于内存保
护的寄存器、送程序状态字到程序状态字寄存器等的指令。
2)非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
五、中断和异常
1.中断的作用
CPU上会运行俩种程序,一种是操作系统内核程序,一种是应用程序。
"中断"是让操作系统内核夺回CPU使用权的唯一途径。
2.中断的类型
内中断:与当前执行的指令有关,中断信号来自CPU内部
外中断 :与当前执行的指令无关,中断信号来自CPU外部
3.中断机制的原理
不同的中断信号,需要不同的中断处理程序来处理。当CPU检测到中断信号后,会根据类型去查询中断向量表,来找到相应的中断处理程序地址。
六、系统调用
系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
这些系统调用按功能大致可分为如下几类:
设备管理 :完成设备的请求或释放,以及设备启动等功能。
文件管理 :完成文件的读、写、创建及删除等功能。
进程控制 :完成进程的创建、撤销、阻塞及唤醒等功能。
进程通信 :完成进程之间的消息传递或信号传递等功能。
内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
七、操作系统结构
宏内核,也称单内核或大内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。
微内核 结构的主要优点:
①扩展性和灵活性。
许多功能从内核中分离出来,当要修改某些功能或增加新功能时,只需在相应的服务器中修改或新增功能,或再增加一个专用的服务器,而无须改动内核代码。
②可靠性和安全性。
③可移植性。与CPU 和I/O硬件有关的代码均放在内核中,而其他各种服务器均与硬件平台无关,因而将操作系统移植到另一个平台上所需做的修改是比较小的。
④分布式计算。
微内核结构的主要问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。
分层结构 :将系统分为若干层,最底层为硬件,最高层为用户接口。高层可以调用紧邻低层的功能和服务(单向)。
优点:便于调试;容易扩充和维护
缺点:依赖关系固定后,不够灵活;效率差
模块化:模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的功能,冰规定好各模块的接口,使各模块之间可以通过接口通信。
优点:
①提高了操作系统设计的正确性、可理解性和可维护性;
②增强了操作系统的可适应性;
③加速了操作系统的开发过程。
缺点:
①模块间的接口规定很难满足对接口的实际需求。
②各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序。
外核(Exokernel):负责为用户进程分配未经抽象的硬件资源,保证资源使用安全
外核机制的优点:
减少了映射层。在其他的设计中,每个虚拟机都认为它有自己的磁盘,其盘块号从0到最大编号,这样虚拟机监控程序就必须维护一张表格以重映像磁盘地址(或其他资源),有了外核,这个重映射处理就不需要了。外核只需要记录已经分配给各个虚拟机的有关资源即可。
将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突。
缺点:
降低了系统的一致性,让系统变得更复杂
八、操作系统引导
常见操作系统的引导过程如下:
①激活 CPU。激活的 CPU 读取 ROM中的 boot 程序,将指令寄存器置为 BIOS(基本输入/输出系统)的第一条指令,即开始执行BIOS 的指令。
②硬件自检。启动 BIOS程序后,先进行硬件自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。
③加载带有操作系统的硬盘。硬件自检后,BIOS 开始读取 Boot Sequence(通过 CMOS里保存的启动顺序,或者通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU 将该存储设备引导扇区的内容加载到内存中。
④加载主引导记录 MBR。硬盘以特定的标识符区分引导硬盘和非引导硬盘。如果发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU 去硬盘的哪个主分区去找操作系统。
⑤扫描硬盘分区表,并加载硬盘活动分区。MBR包含硬盘分区表,硬盘分区表以特定的标
识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。
⑥加载分区引导记录PBR。读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。
⑦加载启动管理器。分区引导记录搜索活动分区中的启动管理器,加载启动管理器。
⑧加载操作系统。
九、虚拟机
虚拟机:使用虚拟化技术,将一台物理机器虚拟化成多台虚拟机器(Vitrual Machine,VM),每个VM可以独立运行一个操作系统。
如我们可以再本机上虚拟化一个Linux操作系统,也可以在云服务器上是通过使用虚拟化软件将物理服务器划分为多个虚拟服务器,每个虚拟服务器都具有独立的操作系统、内存、存储和网络资源。