操作系统——内存管理
1、什么是虚拟内存?它是如何实现的?虚拟内存与物理内存之间有什么关系?
-
虚拟内存是操作系统提供的一种内存管理机制,它使程序认为自己拥有连续的内存空间,但实际上内存可能被分散存储在物理内存和磁盘交换空间中。
-
虚拟内存通过分页和分段技术实现,操作系统使用内存管理单元(MMU)将虚拟地址映射到物理地址。虚拟内存为每个进程提供独立的地址空间,避免进程间的直接内存访问冲突。
-
虚拟内存与物理内存的关系是,虚拟内存是程序能够访问的空间,物理内存是实际的硬件内存,虚拟内存通过页表映射到物理内存。
2、什么是内存分页和分段?它们有什么区别?
-
分页:分页将内存分为固定大小的页,程序的虚拟内存被划分为若干个固定大小的页,每个页映射到物理内存中的页框。分页消除了外部碎片,但可能产生内部碎片。
-
分段:分段将内存划分为具有不同大小的段,如代码段、数据段、堆栈段等,分段可以支持程序的动态增长。分段适应程序的逻辑结构,但可能导致外部碎片。
| 特性 | 分页 (Paging) | 分段 (Segmentation) |
|---|---|---|
| 内存划分单位 | 固定大小的页和页框 | 不同大小的段,如代码段、数据段、堆栈段等 |
| 内存管理方式 | 将内存分为固定大小的块,避免外部碎片 | 将内存按程序逻辑结构分段,支持动态增长 |
| 优点 | 简单高效,消除外部碎片 | 符合程序逻辑结构,适应程序动态需求 |
| 缺点 | 可能产生内部碎片 | 容易产生外部碎片,管理更复杂 |
3、什么是局部性原理,如何在内存管理中应用?
局部性原理指程序在运行时常常倾向于频繁访问某些特定的内存位置,通常包括时间局部性和空间局部性:
- 时间局部性:指最近访问的内存位置在短期内可能会再次被访问。
- 空间局部性:指程序访问某一内存位置时,邻近位置也可能会被访问。
操作系统和硬件通过缓存(如 CPU 缓存、页面缓存等)来利用时间局部性,提高访问速度。空间局部性则通过将内存分为固定大小的页面(分页)或按程序结构分段来提高内存利用率,减少页面错误。
4、动态内存分配与回收(malloc 和 free) 是如何工作的?动态内存分配可能遇到哪些问题,如何避免?
malloc向操作系统请求一块指定大小的内存,操作系统会在堆区分配内存并返回指针。free释放通过malloc分配的内存,将其标记为可用。
可能遇到的问题:
- 内存碎片:由于频繁的分配和释放内存,可能会产生内存碎片,影响内存利用率。
- 内存泄漏:如果分配了内存却没有及时释放,就会造成内存泄漏,逐渐耗尽可用内存。
避免问题的方法:
- 使用内存池技术减少碎片。
- 确保每次使用
malloc分配内存后,使用完毕及时调用free释放内存,使用智能指针等自动管理内存的工具来避免内存泄漏。
5、内存回收算法(标记-清扫算法和复制算法)的工作原理和优缺点是什么?
标记-清扫算法:
-
工作流程:先标记所有活动对象,然后清理未标记的对象。
-
优缺点:
-
优点:实现简单,适用于各种环境。
-
缺点:产生碎片,清扫过程会暂停系统,耗时较长。
-
复制算法:
-
工作流程:将内存分为两个区域,活跃对象被复制到空闲区,清理原活动区。
-
优缺点:
-
优点:消除碎片,内存利用高效。
-
缺点:需要两倍内存,复制过程耗时较长。
-
6、当系统内存不足时,操作系统会采取哪些措施来释放内存?
- 分页交换:将部分进程的数据交换到磁盘的交换空间,释放内存。
- 页面置换:通过页面置换算法将部分内存页移出,释放内存。
- 内存压缩:将不活跃的内存区域进行压缩。
- 终止进程:操作系统可能会选择终止某些进程,释放内存资源。
7、操作系统如何实现内存保护?
操作系统通过内存管理单元(MMU)来实现内存保护。MMU 使用页表将虚拟地址映射到物理地址,并通过设置保护标志(如只读、可写)来控制内存访问,确保进程只能访问其分配的内存区域。如果进程试图访问未授权的内存区域,操作系统会引发访问违规错误。
8、如果进程访问其他进程的内存空间,会发生什么?操作系统如何处理?
如果一个进程试图访问其他进程的内存空间,操作系统会检测到内存访问违规,通常会引发页面错误或访问违规(Segmentation Fault)。操作系统通过虚拟内存管理来确保进程间的内存隔离,并通过内存保护机制阻止非法访问,发生违规时会终止进程或抛出异常,保护系统稳定性。
巧合是上帝默默控制世界的方式。
相关文章:
操作系统——内存管理
1、什么是虚拟内存?它是如何实现的?虚拟内存与物理内存之间有什么关系? 虚拟内存是操作系统提供的一种内存管理机制,它使程序认为自己拥有连续的内存空间,但实际上内存可能被分散存储在物理内存和磁盘交换空间中。 虚…...
android studio 模拟器不能联网?
模拟器路径: C:\Users\Administrator\AppData\Local\Android\Sdk\emulator\emulator.exe.关闭所有AVD设备实例 导航至: C:\Users\userName\AppData\Local\Android\Sdk\emulator查看模拟器名称 AdministratorDESKTOP-6JB1OGC MINGW64 ~/AppData/Local/…...
CTF-WEB: 目录穿越与模板注入 [第一届国城杯 Ez_Gallery ] 赛后学习笔记
step1 验证码处存在逻辑漏洞,只要不申请刷新验证码就一直有效 字典爆破得到 admin:123456 step2 /info?file../../../proc/self/cmdline获得 python/app/app.py经尝试,读取存在的目录时会返回 A server error occurred. Please contact the administrator./info?file.…...
数据结构6.4——归并排序
基本思想: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个…...
【html 常用MIME类型列表】
本表仅列出了常用的MIME类型,完整列表参考文档。 浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理 URL,因此 Web 服务器在响应头中添加正确的 MIME 类型非常重要。 如果配置不正确,浏览器可能会曲解文件内容…...
Linux之vim编辑器
vi编辑器是所有Unix及linux系统下标准的编辑器,类似于Windows系统下的记事本。很多软件默认使用vi作为他们编辑的接口。vim是进阶版的vi,vim可以视为一种程序编辑器。 前言: 1.文件准备 复制 /etc/passwd文件到自己的目录下(不…...
【工具介绍】可以批量查看LableMe标注的图像文件信息~
在图像处理和计算机视觉领域,LabelMe是一个广泛使用的图像标注工具,它帮助我们对图像中的物体进行精确的标注。但是,当标注完成后,我们常常需要一个工具来批量查看这些标注信息。 今天,我要介绍的这款exe程序…...
2024年山西省第十八届职业院校技能大赛 (高职组)“信息安全管理与评估”赛项规程
2024年山西省第十八届职业院校技能大赛 (高职组)“信息安全管理与评估”赛项规程 一、赛项名称 赛项名称:信息安全管理与评估 英文名称:Information Security Management and Evaluation 赛项组别:高职教师组 赛项归属…...
STM32完全学习——STemWin的移植小插曲
一、移植编译的一些问题 新版的STemWin的库没有区别编译器,只有一些这样的文件,默认你将这些文件导入到KEIL中,然后编译就会有下面的错误。 ..\MEWIN\STemWin\Lib\STemWin_CM4_wc16.a(1): error: A1167E: Invalid line start ..\MEWIN\STe…...
Java——IO流(下)
一 (字符流扩展) 1 字符输出流 (更方便的输出字符——>取代了缓冲字符输出流——>因为他自己的节点流) (PrintWriter——>节点流——>具有自动行刷新缓冲字符输出流——>可以按行写出字符串,并且可通过println();方法实现自动换行) 在Java的IO流中…...
avue-crud 同时使用 column 与 group 的问题
场景一:在使用option 中的column 和 group 进行表单数据新增操作时,进行里面的控件操作时,点击后卡死问题,文本没问题 其它比如下拉,单选框操作,当删除 column 中的字段后, group 中的可以操作 …...
深入解析 Pytest 中的 conftest.py:测试配置与复用的利器
在 Pytest 测试框架中,conftest.py 是一个特殊的文件,用于定义测试会话的共享配置和通用功能。它是 Pytest 的核心功能之一,可以用于以下目的: 【主要功能】 1、定义共享的 Fixture (1)conftest.py 文件可…...
JAVA |日常开发中Websocket详解
JAVA |日常开发中Websocket详解 前言一、Websocket 概述1.1 定义1.2 优势 二、Websocket 协议基础2.1 握手过程2.2 消息格式2.3 数据传输方式 三、Java 中使用 Websocket3.1 Java WebSocket API(JSR - 356)3.2 第三方库(如 Tyrus&…...
Typora教程
目录 一、下载安装 二、激活 1.激活 2.解决激活提示窗口 一、下载安装 去官网下载Typora安装,我的是1.9.5版本 二、激活 1.激活 根据路径找到Typora/resources/page-dist/static/js 使用记事本打开LicenseIndex文件,如下图: 按住快捷…...
泛微E9常见API保姆级详解!!!!
前言 在泛微前端开发过程中,虽然大部分是对流程以及流程逻辑的调整,但是还是会有一些小的个性化需求是需要借助JS来实现的。 比如:对同一组数据,前后变化不一样时,需要对这组变化后的数据进行标红处理;对提…...
UniApp配置使用原子化tailwindcss
参考视频 创建项目 新建项目选择uniapp - vue版本这里我选择3 - 点击创建即可 创建完成后,如果是要编译到小程序的项目则可以先将项目运行到小程序打开了 初始化package.json 执行 npm init -y安装和配置 安装 npm i -D tailwindcss postcss autoprefixer # 安…...
02. Docker:安装和操作
目录 一、Docker的安装方式 1、实验环境准备 1.1 关闭防火墙 1.2 可以访问网络 1.3 配置yum源 2、yum安装docker 2.1 安装docker服务 2.2 配置镜像加速 2.3 启动docker服务 3、二进制安装docker 3.1 下载或上传安装包并解压 3.2 配置使用systemctl管理 3.3 配置镜像…...
【MySQL中多表查询和函数】
目录 1.多表查询 1.1 外键 1.2 链接查询 2.MySQL函数 内置函数简介 数值函数 字符串函数 时间日期函数 条件判断操作 开窗函数 1.多表查询 本质:把多个表通过主外键关联关系链接(join)合并成一个大表,在去单表查询操作…...
加速科技精彩亮相ICCAD 2024
12月11日—12日 ,中国集成电路设计业的年度盛会——ICCAD 2024在上海世博馆隆重举行。本次活动以“智慧上海,芯动世界”为主旨,汇聚了众多业界精英,共同探讨集成电路产业的未来。作为半导体测试行业领军企业,加速科技携…...
免费下载 | 2024算网融合技术与产业白皮书
《2024算网融合技术与产业白皮书(2023年)》的核心内容概括如下: 算网融合发展概述: 各国细化算网战略,指引行业应用创新升级。 算网融合市场快速增长,算力互联成为投资新热点。 算网融合产业模式逐渐成型…...
别再手动调UV了!用UE5的WAT世界对齐纹理,5分钟搞定雪地井盖无缝融合
别再手动调UV了!用UE5的WAT世界对齐纹理,5分钟搞定雪地井盖无缝融合雪地里一个突兀的井盖,石块与地面材质接缝处的生硬过渡,这些细节往往成为破坏场景沉浸感的"元凶"。传统UV调整需要美术师逐个物体匹配贴图坐标&#x…...
中介核对对账
...
别急着买云服务器!手把手教你用闲置Win10电脑搭建个人SSH服务器(保姆级教程)
闲置Win10变身SSH服务器:零成本打造远程开发环境家里那台吃灰的旧电脑,其实藏着个免费云服务器——这话听起来像天方夜谭?去年我用一台2015年的联想笔记本搭建的SSH服务器,至今稳定运行着三个Python爬虫和两个测试项目。下面这套方…...
脉冲神经网络(SNN)原理与边缘计算应用实践
1. 脉冲神经网络技术解析:从生物启发的计算范式到普适计算实践脉冲神经网络(SNN)作为第三代神经网络模型,其设计灵感直接来源于生物神经系统的运作机制。与传统人工神经网络(ANN)相比,SNN最显著…...
MCP插件下载403故障排查:OAuth 2026白名单机制详解
1. 问题现场还原:为什么MCP插件下载页面总卡在403 Forbidden?你点开MCP(Model Control Platform)官方插件市场,选中一个标注“支持v2.8”的调试工具,点击“下载ZIP”,浏览器控制台立刻弹出Faile…...
告别SSH断连焦虑:手把手教你用Screen在Linux后台挂起任务(含源码编译避坑)
告别SSH断连焦虑:Linux后台任务守护神器Screen实战指南凌晨三点,服务器上的深度学习模型训练到第18个小时,突然笔记本电量耗尽——这是许多开发者经历过的噩梦。当重新连接SSH时,那些本应持续运行的任务早已随着终端关闭而终止。这…...
量子机器学习提升软件测试效率的混合优化框架
1. 量子机器学习如何革新软件测试效率在DevOps和敏捷开发成为主流的今天,软件测试面临着前所未有的挑战。传统测试方法在应对现代复杂系统时显得力不从心——根据行业调研,大型系统中测试环节消耗的开发资源高达40-50%。更棘手的是,随着微服务…...
从临床医疗说起:当一种科学理论走到边界的时候
我有一个同学,是搞肌肉医学的。他在临床中发现了一个现象:某种头昏,在内科的检查检验和治疗框架下,往往找不出头绪;但从肌肉学的角度看,它可能只是枕下肌群的劳损。松解之后,头昏可以得到有效而…...
Java国密SM2证书Unknown curve异常的三步绕过方案
1. 这不是JDK的bug,是国密算法在Java生态里“没户口”的真实写照你刚把SM2证书集成进Spring Boot服务,调用验签接口时控制台突然炸出一行红字:java.security.InvalidKeyException: Unknown curve。接着堆栈里全是sun.security.ec.ECParameter…...
从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁
从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁 将黑猩猩Ngogo群体从平和共处走向相互屠戮的演变过程,结合人类关系分型自相似性理论对照分析,一套完整的认知逻辑就此显现。江河支流汇聚、树木枝杈生长,乃…...
