操作系统的体系结构、内核、虚拟机
🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
操作系统结构
- 一、操作系统体系结构
- 1.1操作系统的内核
- 1.1.1大内核(又名:宏内核/单内核)
- 1.1.2微内核
- 1.3分层结构
- 1.4模块化
- 1.5外核(exokernel)
- 二、操作系统引导
- 2.1什么是操作系统引导?
- 2.2操作系统引导过程
- 三、虚拟机
一、操作系统体系结构
1.1操作系统的内核
- 内核是操作系统最基本、最核心的部分
- 实现操作系统内核功能的那些程序就是内核程序
- 与硬件关系较紧密的模块:
-
- 时钟管理:实现计时功能
-
- 中断处理:负责实现中断机制
-
- 原语:
-
- 是一种特殊的程序
-
- 处于操作系统最底层,是最接近硬件的部分
-
- 这种程序的运行具有原子性 – – 其运行只能一气呵成,不可中断
-
- 运行时间较短、调用频繁
- 对资源系统进行管理的功能:
-
- 进程管理
-
- 存储器管理
-
- 设备管理
- 注意:这些管理工作更多的是对数据结构的操作,不会直接涉及硬件
- 注意:
-
- 操作系统内核需要运行在内核态
-
- 操作系统非内核功能运行在用户态
1.1.1大内核(又名:宏内核/单内核)
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:
-
- 1.内核代码庞大,结构混乱,难以维护
-
- 2.大内核中某个功能模块出错,就可能导致整个系统崩溃
- 典型的大内核/宏内核/单内核 操作系统:Linux、UNIX
- 特征、思想:
-
- 所有系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)
1.1.2微内核
- 只把最基本的功能保留在内核
- 优点:
-
- 1.内核功能少,结构清晰,方便维护,内核可靠性高
-
- 2.内核外的某个功能模块出错不会导致整个系统崩溃
- 缺点:
-
- 1.需要频繁地在核心态和用户态之间切换,性能低
-
- 2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信
- 典型的微内核操作系统:Windows NT
1.3分层结构
- 特征、思想:内核分多层,每层可单向调用更低一层提供的接口
- 优点:
-
- 1.便于调试和验证、自底向上逐层调试验证
-
- 2.易扩充和易维护,各层之间调用接口清晰固定
- 缺点:
-
- 1.仅可调用相邻低层,难以合理定义各层的边界
-
- 2.效率低,不可跨层调用,系统调用执行时间长
1.4模块化
模块化是将操作系统按功能划分为若干个具有一定独立性的模块,每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信,还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口,把这种设计方法称为模块–接口法。
- 特征、思想:将内核分为多个模块,各模块之间相互协作
- 内核=主模块+可加载内核模块
- 主模块:只负责核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
- 优点:
-
- 1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
-
- 2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
-
- 3.任何模块都可以直接调用其他模块,无需采用详细传递进行通信,效率高
- 缺点:
-
- 1.模块间的接口定义未必合理
-
- 2.模块间相互依赖,更难调试和验证
1.5外核(exokernel)
- 特征、思想:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
- 优点:
-
- 1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
-
- 2.减少了虚拟硬件资源的“映射层”,提升效率
- 缺点:
-
- 1.降低了系统的一致性
-
- 2.是系统变得更复杂
**
二、操作系统引导
2.1什么是操作系统引导?
操作系统引导:开机的时候,怎么让操作系统运行起来
安装操作系统后:
- 磁盘包括:
-
- 主引导记录(MBR)(包含:磁盘引导程序和分区表)
-
- C:盘
-
- D:盘
-
- E:盘等
-
- C:盘中又包含:
-
- 引导记录PBR(负责找到“启动管理器”)
-
- 根目录
-
- 其他
- 主存:
-
- 由ROM(BIOS)包含:ROM引导程序,即自举程序和RAM组成
2.2操作系统引导过程
- 1.CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 2.将磁盘的第一块 – – 主引导记录读入内存,执行磁盘引导程序,扫描分区表
- 3.从活动区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 4.从根目录下找到完整的操作系统初始化程序(启动管理器)并执行,完成“开机”的一系列动作
三、虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machien ,VM),每个虚拟机器都可以独立运行一个操作系统
- 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machien Monitor(VMM)/Hypervisor
- 两类虚拟机管理程序(VMM)的对比
第一类VMM | 第二类VMM | |
---|---|---|
对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上,依赖于Host OS为其分配的物理资源 |
资源分配方式 | 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件 | Guest OS拥有自己的细腻==虚拟硬盘,该硬盘实际上是Guest OS文件系统中的一个大文件,Guest OS分配到的内存是虚拟内存 |
性能 | 性能更好 | 性能更差,需要Guest OS作为“中介” |
可支持的虚拟机数量 | 更多,不需要和Guest OS竞争资源,相同的硬件资源可以支持更多的虚拟机 | 更少,Guest OS本身需要使用物理资源,Guest OS上运行的其他进程也需要物理资源 |
虚拟机的可迁移性 | 更差 | 更好,只需导出虚拟机镜像文件即可迁移到另一台Guest OS上,商业化应用更广泛 |
运行模式 | 第一类VMM运行在最高特权级(Ring O),可以执行最该特权的指令 | 第二类VMM部分运行在用户态、部分运行在内核态,Guest OS发出的系统调用会被VMM截获,并转化为VMM对Guest OS的系统调用 |
相关文章:

操作系统的体系结构、内核、虚拟机
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统结构 一、操作系统体系结构1.1操作系统的内核1.1.…...
【C++】vector的基本用法
vector是动态数组的同义词 一、vector对象带参数构造 1.vector<int>a(a,a5);//左闭右开 2.vector<int>b(n,z);n个z 3.vector<int>c(a);//拷贝 二、动态数组可以整体赋值 vector<int>vec; vector&l…...

SSM——用户、角色、权限操作
1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT…...

UI界面设置
文章目录 1. 修改 share.html 内容如下:2. 修改 html 文件格式为 utf-83.保存,运行程序4. 访问页面 1. 修改 share.html 内容如下: <!DOCTYPE html><html> <head><meta charset"utf-8"><title>1v1屏…...

论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model
文章目录 引言论文翻译Abstract问题 Introduction第一部分问题 第二部分问题 Model Architecture网络结构第一部分问题第二部分问题 Experiments实验问题 Conclusion结论问题 总结参考 引言 这篇文章,是《PixelSNAIL:An Improved Autoregressive Geenrative Model》…...

mySQL 视图 VIEW
简化版的创建视图 create view 视图名 as select col ...coln from 表create view 视图名(依次别名) as select col ...coln from 表create view 视图名 as select col “别名1”,。。。col "别名n" from 表show tab…...

「UG/NX」Block UI 曲线收集器CurveCollector
✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#...

微信小程序:函数节流与函数防抖
目录 问题引入: 定义 解决方案:函数节流 一、案例举例 1.页面展示 2.search.wxml标签展示 3.search.js展示 4.结果展示 二、函数节流解决问题 1.函数 2.实例应用 三、函数防抖解决问题 1.函数 2.原理 3.应用场景 4.应用实例 总结 问题引入…...

Mathematica(42)-计算N个数值的和
比如,我们要用Mathematica求得到下面的式子: 这就需要用到一个函数:Sum 具体地,Sum函数的使用形式如下: 因此,按照公式就可以得到下面的结果: 如果,我们想要将求和号也加进去&#…...

安装和配置 Ansible
安装和配置 Ansible 按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible: 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求: node1 是 dev 主机组的成员 node2 …...

电脑系统重装日记
重装原因 电脑C盘几乎爆炸故重装系统一清二白 此片原因 记录重装过程,强调一些要注意的点,以防日后重装。 重装过程 1.清空电脑文件后重启,电脑冒蓝光,一直蓝屏反复重启,故只能重装系统以解难题。 2.准备一个U盘&…...

通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间
本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...

Docker:Windows container和Linux container
点击"Switch to Windows containers"菜单时: 提示 然后 实际上是运行:com.docker.admin.exe start-service...
excel提示更新外部引用文件 这个提示能手动禁用
是的,你可以手动禁用 Excel 中的更新外部引用文件的提示。这些步骤可能因 Excel 版本而有所不同,以下是一般的步骤: 1. **打开 Excel**: 2. **进入“选项”**: - 在 Excel 中,点击顶部菜单中的“文件”…...

2023 最新 小丫软件库app开源源码 PHP后端
上传了源码解压之后,在admin/public/config.php修改后台登录账号和密码 后台地址:域名或者ip/admin 然后自己修改配置即可 后端搭建完成,现在导入iapp源码 导入iapp源码之后,修改mian.iyu载入事件的对接api和url就可以打包了 sss …...

Selenium 测试用例编写
编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。 编写测试用例的优势: 开源,免费。 支持多种浏览器 IE,Firefox,Chrome,Safari。 支持多平台 Windows,Li…...
es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典
自定义分析器,分词器 PUT http://xxx.xxx.xxx.xxx:9200/test_index/ {"settings": {"analysis": {"analyzer": {"char_test_analyzer": {"tokenizer": "char_test_tokenizer","filter": [&…...

基于libevent的tcp服务器
libevent使用教程_evutil_make_socket_nonblocking_易方达蓝筹的博客-CSDN博客 一、准备 centos7下安装libevent库 yum install libevent yum install -y libevent-devel 二、代码 server.cpp /** You need libevent2 to compile this piece of code Please see: http://li…...

【TypeScript】tsc -v 报错 —— 在此系统上禁止运行脚本
在 VS Code 终端中执行 tsc -v ,报错 —— 在此系统上禁止运行脚本 然后 windows x ,打开终端管理员,出现同样的问题 解决方法: 终端(管理员)执行以下命令: 出现 RemoteSigned 则代表更改成功…...

【C++】STL---list
STL---list 一、list 的介绍二、list 的模拟实现1. list 节点类2. list 迭代器类(1)前置(2)后置(3)前置- -、后置- -(4)! 和 运算符重载(5)* 解引用重载 和 …...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...