【计科】从操作系统到虚拟化技术(进程调度,内存映射,设备IO,文件、网络管理)

news2025/3/31 11:58:21

【计科】操作系统基础与虚拟化技术拓展的关系(进程调度,内存映射,设备IO,文件、网络管理)

文章目录

    • 1、进程管理与调度机制(计算)
    • 2、内存管理与双重映射
    • 3、设备管理与IO机制
    • 4、文件管理
    • 5、网络与进程通信
    • 6、总结

虚拟化技术本质上是基于 操作系统核心机制(如进程管理、内存管理、设备IO管理等) 的高级应用,现代操作系统也越来越多地集成虚拟化功能以支持云计算、容器化等场景。

1、进程管理与调度机制(计算)

系统调用与特权级的扩展

  • 操作系统基础:操作系统通过特权级(如Ring 0/3)保护内核空间,用户程序通过系统调用访问硬件。
  • 虚拟化技术
    • 传统虚拟化依赖二进制翻译或陷入-模拟(Trap-and-Emulate)处理Guest OS的特权指令。
    • 硬件辅助虚拟化(如Intel VT-x)引入“Root/Non-Root”模式,Hypervisor运行在更高特权级(Ring -1)。
  • 关系:虚拟化扩展了操作系统的特权级架构,实现安全隔离。

联系

  • 操作系统的进程调度器通过时间片轮转、优先级调度等算法分配CPU资源。
  • 虚拟化Hypervisor将每个虚拟机视为一个“超级进程”,需要在物理CPU上调度虚拟CPU(vCPU),可能嵌套使用宿主操作系统的调度策略(如KVM基于Linux的CFS调度器)。
  • 虚拟化将操作系统的进程调度逻辑提升到虚拟机级别,需解决公平性、优先级反转等问题

操作系统

  • 进程调度:时间片轮转、优先级调度、多级队列等算法。
  • 上下文切换:保存和恢复进程状态(寄存器、页表等)。
  • 多核并发:CPU亲和性、负载均衡。

虚拟化

  • vCPU调度:Hypervisor将每个虚拟机的vCPU作为宿主机的“进程”调度
    • 公平性:防止一个VM独占物理CPU(如Xen的Credit调度器)。
    • 隔离性:CPU份额限制(如KVM的cgroups/cpu)。
    • NUMA优化:虚拟机vCPU与物理NUMA节点的绑定。
  • 嵌套虚拟化:Guest OS内再运行Hypervisor,需多层调度(如Windows Hyper-V on KVM)。
  • 轻量级虚拟化:容器(如Docker)直接复用宿主OS的进程管理,通过namespace隔离进程视图。

实践

  • 对比传统进程调度与vCPU调度的异同。
  • 分析KVM或Xen的调度器源码(如kvm/kvm_main.c中的调度逻辑)。

参考项目:KVM、Xen

  • kvm, linux-kvm
    KVM(Kernel-based Virtual Machine)Linux内核模块,提供硬件辅助虚拟化。
    基于Intel VT-x/AMD-V扩展,将Linux内核转变为Hypervisor。
    核心功能:
    负责CPU和内存虚拟化,依赖QEMU处理I/O和设备模拟。
    支持嵌套虚拟化、热迁移(Live Migration)。
    优势:
    性能接近原生(因直接复用Linux调度、内存管理等机制)。
    集成于主流Linux发行版(如Ubuntu、RHEL)。
  • xen
    核心功能:
    支持全虚拟化(硬件辅助)和半虚拟化(修改Guest OS内核)。
    独特的“Dom0/DomU”架构:Dom0特权虚拟机管理其他DomU客户机。
    广泛用于云计算(如AWS早期EC2实例)。
    优势:
    高隔离性和安全性(常用于军事、金融领域)。
    支持实时性要求高的场景(如嵌入式系统)。

参考:1,

进程管理概念复习

  • 进程与线程
    考点1 程序的顺序执行、并发执行、多道程序设计
    考点2 进程的定义
    考点3 进程的状态与转换
    考点4 进程控制块与进程控制
    考点5 线程的基本概念及线程的实现机制
    考点6 进程调度算法

  • 进程同步与互斥
    考点1 进程的同步、互斥、临界区
    考点2 信号量及P、V操作
    考点3 经典的进程同步问题
    考点4 管程的概念、组成、条件变量
    考点5 进程通信的三种方式

  • 死锁
    考点1 死锁的定义、产生的原因、产生的必要条件
    考点2 死锁预防
    考点3 死锁避免
    考点4 死锁检测与解除
    考点5 资源分配图

  • 操作系统运行环境
    考点1 处理器相关的概念
    考点2 存储器的类型
    考点3 中断的概念、中断系统
    考点4 中断优先级、中断屏蔽与中断嵌套
    考点5 系统调用概念、与函数调用区别、分类

  • 进程管理
    5.1 进程、线程基础知识
    5.2 进程间有哪些通信方式?
    5.3 多线程冲突了怎么办?
    5.4 怎么避免死锁?
    5.5 什么是悲观锁、乐观锁?
    5.6 一个进程最多可以创建多少个线程?
    5.7 线程崩溃了,进程也会崩溃吗?
    6.1 进程调度/页面置换/磁盘调度算法

  • 硬件结构与CPU
    2.1 CPU 是如何执行程序的?
    2.2 磁盘比内存慢几万倍?
    2.3 如何写出让 CPU 跑得更快的代码?
    2.4 CPU 缓存一致性
    2.5 CPU 是如何执行任务的?
    2.6 什么是软中断?
    2.7 为什么 0.1 + 0.2 不等于 0.3 ?
    在这里插入图片描述
    在这里插入图片描述

2、内存管理与双重映射

联系

  • 操作系统通过分页、分段、TLB等机制管理物理内存。
  • 虚拟化引入二次地址转换(如Intel EPT、AMD NPT),将Guest OS的虚拟地址→Guest物理地址→宿主物理地址,由Hypervisor或硬件MMU完成映射。
  • 虚拟化依赖操作系统的内存管理机制,同时需处理隔离性(如内存气球技术)和性能开销(如影子页表优化)

操作系统

  • 分页/分段:虚拟地址到物理地址的转换(页表、TLB)。
  • 页面置换:LRU、工作集算法。
  • 共享内存:进程间通信机制。

虚拟化

  • 二次地址转换
    • 软件方案:影子页表(Shadow Page Table),由Hypervisor维护Guest虚拟→物理→宿主物理的映射。
    • 硬件辅助:Intel EPT/AMD NPT,硬件自动完成GVA→GPA→HPA转换。
  • 内存超售(Overcommit)
    • 气球驱动(Ballooning):动态回收Guest OS内存(如virtio-balloon)。
    • 透明大页(THP):减少TLB失效开销。
  • 内存隔离:SEV(Secure Encrypted Virtualization)加密VM内存,防止宿主机窥探。

实践

  • 理解EPT/NPT的硬件机制(参考Intel手册Volume 3, Chapter 28)。
  • 使用QEMU命令-mem-path观察内存分配行为。

参考项目:KVM、Xen、QEMU、Cloud Hypervisor

  • QEMU
    核心功能:
    模拟多种CPU架构(x86、ARM、RISC-V等)和外部设备(网卡、磁盘、GPU等)。
    支持动态二进制翻译(TCG模式),无需硬件虚拟化辅助即可运行虚拟机。
    与KVM结合时(qemu-kvm),利用硬件加速实现高性能虚拟化。
    应用场景:
    跨平台开发(如在x86主机上模拟ARM环境)。
    作为KVM的用户态组件,处理设备模拟和I/O。
  • Cloud Hypervisor
    核心功能:
    基于Rust编写,强调安全性和性能。
    集成Virtio和VFIO设备支持,去除了传统虚拟化的冗余功能。
    优势:
    与Kubernetes生态兼容(如KubeVirt)

内存管理概念复习

  • 存储管理
    考点1 存储体系、存储管理的任务、地址转换
    考点2 可变分区基本思想、紧缩技术空闲分区分配策略、分区管理方案的优缺点
    考点3 覆盖技术、交换技术
    考点4 虚拟存储技术以及虚拟页式存储管理
    考点5 转换检测缓冲区(TLB)
    考点6 页面调度策略
    考点7 页面置换算法
    考点8 虚拟页式存储管理的优缺点

3、设备管理与IO机制

硬件抽象层

  • 操作系统:通过硬件抽象层(HAL)管理物理资源(CPU、内存、设备),为应用程序提供统一的接口(如系统调用)。
  • 虚拟化:虚拟化(如Type-1 Hypervisor)直接接管硬件抽象层,或通过宿主操作系统(Type-2 Hypervisor)间接访问硬件,创建多个隔离的虚拟机(VM),每个VM运行独立的客户操作系统(Guest OS)。
  • 关系:虚拟化扩展了操作系统的硬件抽象能力,实现资源的逻辑分割和多实例化。

联系

  • 操作系统 通过设备驱动和中断机制管理外设
  • 虚拟化
    • 全虚拟化:Hypervisor模拟虚拟设备(如QEMU虚拟网卡),截获Guest OS的I/O请求并转发到物理设备。
    • 半虚拟化:Guest OS使用优化驱动(如virtio)直接与宿主通信,减少陷入(trap)开销。
    • 硬件辅助:Intel VT-d/AMD-Vi支持DMA直接映射,绕过软件模拟。
  • 关系:虚拟化复用操作系统的设备驱动模型,同时需解决性能瓶颈和隔离问题。

操作系统

  • 设备驱动:内核模块与硬件交互(如网卡驱动)。
  • 中断处理:上半部/下半部(软中断)。
  • DMA:直接内存访问减少CPU开销。

虚拟化

  • I/O虚拟化模型
    • 全虚拟化:QEMU模拟设备(如e1000网卡),性能低。
    • 半虚拟化:virtio协议,Guest使用专用驱动(如virtio-net)与宿主通信。
    • 硬件辅助:SR-IOV(单根I/O虚拟化),物理设备直接暴露给VM。
  • 中断虚拟化
    • APIC虚拟化:虚拟中断控制器(如KVM的kvm-irqfd)。
    • 中断重映射:Intel VT-d防止DMA攻击。

实践

  • 实现一个简单的virtio设备(参考《QEMU/KVM源码分析与实战》)。
  • 测试SR-IOV网卡的吞吐量(如iperf3对比virtio-net和VF直通)。

参考项目:Virtio、QEMU、Xen、KVM

  • Virtio-win, Virtio-win-download
    半虚拟化I/O框架。
    核心功能
    提供虚拟设备标准(网卡virtio-net、磁盘virtio-blk、GPUvirtio-gpu等)。
    Guest OS安装驱动后直接与Hypervisor通信,减少陷入(trap)开销。
    与QEMU/KVM深度集成,是现代虚拟化的I/O性能优化关键。
    应用场景
    云虚拟机的高效I/O(如OpenStack、Kubernetes的KubeVirt)。

IO管理概念复习

  • 磁盘高速缓存及RAID
    第八章 I/O设备管理
    考点1 I/O设备的概念、分类、I/O设备管理的任务
    考点2 I/O硬件和软件组成、设备独立性
    考点3 四种I/O设备控制方式
    考点4 设备分配原则、策略、独占设备的分配
    考点5 移臂调度算法及旋转调度优化
    考点6 信息的优化分布
    考点7 缓冲技术
    考点8 SPOOLing技术

4、文件管理

操作系统

  • 文件系统:Ext4、NTFS的存储结构、缓存(Page Cache)、一致性(fsync)。
  • 磁盘调度:I/O合并、CFQ/Deadline算法。

虚拟化

  • 虚拟磁盘镜像
    • 格式:QCOW2(写时复制)、RAW(直接映射)。
    • 快照:基于COW(Copy-on-Write)的增量保存。
  • 存储虚拟化
    • 块设备透传:直接分配物理磁盘(如VFIO)。
    • 分布式存储:Ceph/RBD为虚拟机提供共享存储。
  • 容器存储:联合文件系统(OverlayFS)实现镜像分层。

实践

  • 使用qemu-img创建和管理QCOW2镜像,分析其元数据结构。
  • 对比虚拟机与容器的文件隔离机制(如OverlayFS vs. 虚拟磁盘)

文件管理概念复习

  • 文件系统
    考点1 文件及文件系统的定义
    考点2 外存储设备的存储介质及存取方式、文件分类
    考点3 文件的逻辑结构和物理结构
    考点4 文件控制块及三种文件目录
    考点5 磁盘空间管理及分配回收算法
    考点6 典型的文件操作和典型的目录操作

5、网络与进程通信

网络与进程间通信(IPC)

  • 操作系统的IPC
    • 管道、共享内存、Socket通信。
  • 虚拟化
    • 虚拟网络:Libvirt通过Linux网桥或OVS实现虚拟机间通信,复用宿主机的网络栈(如TCP/IP协议栈)。
    • 容器网络:LXC使用veth pairnetwork namespace隔离网络视图。
    • Xen的Grant Table:半虚拟化下Guest与Hypervisor共享内存的机制。
  • 关键
    • 虚拟化网络本质是操作系统网络栈的延伸

6、总结

操作系统与虚拟化技术的关系

  • 理解两者的关系有助于设计更高效的虚拟化方案(如混合半虚拟化)、优化嵌套虚拟化性能,或开发轻量级容器运行时(如gVisor)。
    随着云原生和边缘计算的普及,操作系统与虚拟化的协同创新(如Firecracker微VM)将持续演进。
  • 虚拟化开发技术可视为操作系统基础能力的纵向拓展
    向下:虚拟化深化硬件资源的管理粒度(如vCPU、虚拟设备)。
    向上:操作系统为虚拟化提供底层支持(如KVM依赖Linux内核模块)。

操作系统模块与虚拟化技术对应

操作系统模块虚拟化技术对应代表项目虚拟化带来的变化
进程管理vCPU调度、嵌套虚拟化KVM, Xen, Firecracker两级调度、隔离性增强
内存管理二次地址转换、内存超售KVM, QEMU, Cloud Hypervisor增加转换层级、硬件辅助(EPT/NPT)
文件系统虚拟磁盘镜像、联合文件系统QEMU, LXC, Kata隔离性(加密镜像)、性能优化(virtio-fs)
I/O管理设备虚拟化、中断虚拟化Virtio, QEMU, KVM半虚拟化(virtio)、硬件直通(VFIO)
特权级Hypervisor模式(Ring -1)KVM, Xen硬件辅助(VT-x/SVM)
网络/IPC虚拟网络设备、网络命名空间Libvirt, LXC软件定义网络(OVS)、隔离性(namespace)

虚拟化学习路线

  • 1、实验1
    通过修改Linux内核模块(如调度器)加深理解。
    使用QEMU/KVM创建虚拟机,分析/proc/kvmvirsh命令。
    阅读Xen/KVM的架构文档(如KVM官方Wiki)。
    研究KVM如何通过/dev/kvm接口暴露操作系统的硬件虚拟化能力
    分析QEMU设备模拟代码(如hw/block/virtio-blk.c)与Linux块设备驱动的交互
  • 2、实验2
    实现一个微型Hypervisor(参考《Writing a Simple x86 Hypervisor》)。 1
    使用strace跟踪虚拟机启动时的系统调用,观察QEMU与KVM的协作流程。
    通过perf分析virtio-net的I/O性能瓶颈。
    参与开源项目(如Firecracker、Kata Containers)。
    对比Xen半虚拟化和KVM全虚拟化在内存管理上的实现差异(如页表切换频率)
    学习容器编排(Kubernetes)如何基于OS/虚拟化技术(如runc调用namespaces)。
  • 3、书籍论文
    《Operating Systems: Three Easy Pieces》 1
    《系统虚拟化:原理与实现》- Intel Press
    《现代操作系统》- Andrew Tanenbaum(重点第1、5、8章)
    《Xen and the Art of Virtualization》(SOSP 2003)
    《kvm: the Linux Virtual Machine Monitor》(OLS 2007)

参考

  • 1-期末操作系统
  • 2-408操作系统
  • 3-coding操作系统
  • 4-从零开始编写一个操作系统
  • 5-13180/02326考试操作系统 2 3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2323353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ECharts各类炫酷图表/3D柱形图

一、前言 最近鸡米花实现了各类的炫酷的图表,有3D柱形图、双边柱形图以及异形柱形图,好了,直接上图: 二、效果图 一个个来吧,下面就是代码啦,注意,一下图表展示的宽高均为800px*300px 三、异形横…

系统与网络安全------网络应用基础(6)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 Win10系统安装 安装Win10系统 安装准备 Windows10系统的安装光盘 虚拟机可采用ISO文件,windows_10_professional_x64_2024.iso Windows10系统的硬件要求 CPU处理器:1.0Ghz或更快 …

【区块链安全 | 第七篇】EVM概念详解

文章目录 1. EVM 概述以太坊虚拟机(Ethereum Virtual Machine,EVM)的作用EVM 如何执行智能合约账户类型 2. EVM 体系结构栈(Stack)内存(Memory)存储(Storage)Gas 机制 3.…

基于杜鹃鸟鲶鱼优化(Cuckoo Catfish Optimizer,CCO)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码

一、杜鹃鸟鲶鱼优化算法 杜鹃鸟鲶鱼优化(Cuckoo Catfish Optimizer,CCO)算法模拟了杜鹃鸟鲶鱼的搜索、捕食和寄生慈鲷行为。该算法的早期迭代侧重于执行多维包络搜索策略和压缩空间策略,并结合辅助搜索策略来有效限制慈鳔的逃逸空…

16个气象数据可视化网站整理分享

好的!以下是关于“16个气象数据可视化网站整理分享”的软文: 16个气象数据可视化网站整理分享 气象数据可视化已成为现代气象研究、决策支持以及公众天气服务的重要组成部分。从天气预报到气候变化监测,全球许多气象数据可视化平台为专业人士…

word光标一直闪的解决办法

在选项里,打开首选项,(如果打不开,可以新建一个word也许就可以,实在不行只能靠眼疾手快,趁他还没闪赶紧点) 选COM加载项,在里面取消勾选MicrosoftOfficePLUS

⑥ ACG-系统管理

上网管理行为是指对员工在工作时间内使用公司网络的行为进行管理和监督。在企业中,系统管理是实施上网管理行为的重要方式之一。系统管理包括以下几个方面: 1. 访问控制:通过设置网络访问权限,对员工访问特定网站或使用特定应用程…

C++ map容器总结

map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 本质: map/multimap属于关…

推荐系统(十五):基于双塔模型的多目标商品召回/推荐系统

在电商推荐场景中,用户行为通常呈现漏斗形态:曝光→点击→转化。本文基于TensorFlow构建了一个支持多任务学习的双塔推荐模型,可同时预测点击率(CTR)和转化率(CVR)。通过用户塔和商品塔的分离式设计,模型既能捕捉用户兴趣偏好,又能理解商品特征,最终通过向量相似度计…

【MLP-BEV(10)】BEVPooling V1和BEVPooling V2的view_transformer,进行鱼眼图片实践

文章目录 先说说 BEVPoolv1步骤1:3D点生成步骤2 2D特征采样和BEV特征生成特点再谈谈BEVPoolv2步骤1:3D点生成步骤2: 计算索引关系步骤3: `voxel_pooling`计算鱼眼图片进行实践步骤1、3D点生成(基于Kannala-Brandt 进行调整)步骤2、2D特征采样和BEV特征生成(1) 体素化 (Voxe…

Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据

作者:来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具,用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 AOP:实现日志记录与性能监控

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、开篇整…

多模态大模型训练范式演进与前瞻

本文从多模态大模型相关概念出发&#xff0c;并以Flamingo 模型为例&#xff0c;探讨了基于多模态大模型训练的演进与前瞻。新一代训练范式包括统一架构、数据工程革新和动态适应机制&#xff0c;以提升跨模态推理能力和长视频理解。 多模态大模型 定义 什么是多模态大模型&…

游戏引擎学习第187天

看起来观众解决了上次的bug 昨天遇到了一个相对困难的bug&#xff0c;可以说它相当棘手。刚开始的时候&#xff0c;没有立刻想到什么合适的解决办法&#xff0c;所以今天得从头开始&#xff0c;逐步验证之前的假设&#xff0c;收集足够的信息&#xff0c;逐一排查可能的原因&a…

HarmonyOS NEXT 关于鸿蒙的一多开发(一次开发,多端部署) 1+8+N

官方定义 定义&#xff1a;一套代码工程&#xff0c;一次开发上架&#xff0c;多端按需部署。 目标&#xff1a;支撑开发者快速高效的开发支持多种终端设备形态的应用&#xff0c;实现对不同设备兼容的同时&#xff0c;提供跨设备的流转、迁移和协同的分布式体验。 什么是18…

当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系

《当Kafka化身抽水马桶&#xff1a;论组件并发提升与系统可用性的量子纠缠关系》 引言&#xff1a;一场OOM引发的血案 某个月黑风高的夜晚&#xff0c;监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现&#xff1a;Kafka集群、Gateway、Discovery服…

Dify+ollama+vanna 实现text2sql 智能数据分析 -01

新鲜出炉-今天安装vanna踩过的坑 今天的任务是安装vanna这个工具&#xff0c;因为dify中自己写的查询向量数据库和执行sql这两步太慢了大概要20S&#xff0c;所以想用下这个工具&#xff0c;看是否会快一点。后面会把这个vanna封装成一个工具让dify调用。 环境说明 我是在本…

uniapp uni-swipe-action滑动内容排版改造

在uniapp开发中 默认的uni-swipe-action滑动组件 按钮里的文字都是横排的 不能换行的 如果是在一些小屏设备 比如PDA这种&#xff0c;同时按钮文字又都是4个字 多按钮的情况 就会发现滑动一下都直接满屏了 观看体验都不好 但默认的官方组件又没有样式的设置&#xff0c;下面就告…

电脑卡怎么办?提升电脑流畅的方法

电脑已经成为我们工作、学习和娱乐不可或缺的伙伴。然而&#xff0c;随着使用时间的增长&#xff0c;许多用户会遇到电脑运行变慢、卡顿的情况&#xff0c;这不仅影响了工作效率&#xff0c;也大大降低了使用体验。本文将为大家分析电脑卡顿的常见原因&#xff0c;并提供一套实…

SpringBoot报错解决方案

org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (31297934) exceeds the configured maximum (10485760) 文件上传大小超过限制