计算机操作系统笔记总结:Part1 计算机系统概述(下)

简介: 文章目录写在前面1 操作系统的概念与功能2 操作系统的特征3 操作系统的发展与分类4 操作系统的运行机制4.1 特权指令与非特权指令4.2 内核态与用户态5 中断和异常6 系统调用6.1 什么是系统调用6.2 为什么系统调用是必须的?6.3 系统调用的过程7 操作系统的体系结构8 操作系统的引导9 虚拟机

大内核与微内核的区别?


如果应用程序想要请求操作系统的服务,这个服务同时涉及到进程管理、存储管理、设备管理。

如果采用的是大内核的方式,则只需要进行两次变态;

如果采用的是微内核的方式,则需要进行六次变态。


需要注意的是,变态的过程是有成本的,要消耗不少的时间,频繁地变态会降低系统性能。


变态是为了方便描述,实际表述的时候:CPU状态的转换


分层结构

内核分为多层,每层可单向调用更低一层提供的接口。注意,只能调用相邻的,不可以跨层。

这种分级的思想,便于调试和验证,每层都相对独立,可以逐层调试,更加方便。另外,层与层之间的调用接口固定不变,我们可以在层与层之间新加一层,只需要保证原来定义的接口不变。

但是,难以定义边界。比如,进程有时候需要使用到内存管理相关的功能,而内存管理有时候也需要使用进程相关的资源。这种分层的模式,导致有一些不灵活。


模块化

模块化是将操作系统按功能划分为若干个具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信。还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口。把这种设计方法称为模块-接口法。



模块化即将内核划分为多个模块,各个模块之间相互协作。

内核 = 主模块 + 可加载内核模块

主模块:只负责核心功能,如进程调度、内存管理等。

可加载内核模块:可以动态的加载新模块到内核,而无需重新编译整个内核。

优点: 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发。支持动态加载新的内核模块,比如安装驱动程序等,增加了OS的适应性。任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。

缺点: 模块间的接口定义未必合理实用;模块间相互依赖,更难调试和验证。


外核

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

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


计算机操作系统–体系结构小结


8 操作系统的引导

什么是操作系统的引导?

简单来说,开机的时候,怎么让操作系统运行起来,就是操作系统的引导。

解答这个问题前,我们需要知道,磁盘中存储了什么内容。


在一块磁盘安装完操作系统后,其分布如下图所示:



除了我们能看到的磁盘分区以外,还包含了个主引导记录(MBR),包含了磁盘引导程序和分区表。


C盘: 是这个磁盘的活动分区,安装了操作系统。


操作系统要启动的话,操作系统的数据需要被放到主存中。这里需要补充一个知识点:计算机的主存由RAM和ROM两部分组成。而RAM芯片里的数据,只要关机,就会被清空。而ROM里的数据不会因为断点而消失。


而CPU开机通电后,则会找到引导程序,执行该程序里的指令。指示CPU去把磁盘的主引导记录读入到内存。


重点来啦!主引导记录中有磁盘引导程序和分区表。磁盘引导程序会根据分区表去判断C盘所处的位置,读入C盘的PBR引导程序。PBR引导记录里的程序 ,会找到启动管理程序,通常存储在根目录的某个位置。


操作系统引导的过程:


CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机);

将磁盘的第一块–主引导记录 读入内存,执行硬盘引导程序,扫描分区表;

从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序;

从根目录下找到完整的操作系统初始化程序(即 启动管理器)并执行,完成“开机”的一系列动作。


9 虚拟机

传统计算机

一台物理机器上只能运行一个操作系统,带来了很多应用上的限制。


虚拟机

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

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


第一类VMM:直接运行在硬件上;

第二类VMM:运行在宿主操作系统上。


两类虚拟机管理程序(VMM)的对比

相关文章
|
14天前
|
存储 安全 固态存储
计算机启动:从插上电源到操作系统启动的全过程
当我们插上电源,计算机从休眠状态苏醒,直至操作系统完全启动,这一系列复杂的过程涉及到硬件和软件的多个层面。本文将详细解析计算机插上电源后操作系统所做的工作,揭示这一过程的技术细节。
23 6
|
4月前
|
存储 算法 网络协议
了解操作系统的基本原理和常见操作,提高计算机使用效率
了解操作系统的基本原理和常见操作,提高计算机使用效率
52 4
|
4月前
|
运维 安全 Linux
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
|
6月前
|
Python
Python的`os`模块核心功能概述:通过`os.getcwd()`获取
【6月更文挑战第23天】Python的`os`模块核心功能概述:通过`os.getcwd()`获取、`os.chdir()`改变工作目录;使用`os.mkdir()`, `os.makedirs()`创建目录,`os.rmdir()`, `os.removedirs()`删除;`os.rename()`, `os.renames()`重命名文件或目录;`os.remove()`删除文件;`os.listdir()`列出目录内容;`os.path.exists()`, `os.path.isfile()`, `os.path.isdir()`检查路径;`os.stat()`获取文件属性。
95 4
|
6月前
|
调度
操作系统的目标和功能笔记分享
【6月更文挑战第1天】操作系统的目标和功能笔记分享
69 1
|
5月前
|
存储 算法 Unix
软考中级之数据库系统工程师笔记总结(三)操作系统
软考中级之数据库系统工程师笔记总结(三)操作系统
42 0
|
5月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
6月前
|
运维 安全 Linux
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
48 0
Vanilla OS:下一代安全 Linux 发行版
|
1月前
|
人工智能 安全 Linux