찾다
데이터 베이스MySQL 튜토리얼【程序员的自我修养】从分段机制到分页机制
【程序员的自我修养】从分段机制到分页机制Jun 07, 2016 pm 03:28 PM
분할쪽수 매기기멀티태스킹운영 체제기구프로그램 제작자

操作系统的多任务性使得CPU在多个进程之间共享,从进程的角度来看,就是一个进程独占一个CPU,IO抽象模型也很好地实现了IO设备的共享,那么内存的分配与共享就交给虚拟存储器来管理了。 早期计算机中,程序是直接运行在物理内存上的,就是程序运行时访问的都

操作系统的多任务性使得CPU在多个进程之间共享,从进程的角度来看,就是一个进程独占一个CPU,IO抽象模型也很好地实现了IO设备的共享,那么内存的分配与共享就交给虚拟存储器来管理了。

早期计算机中,程序是直接运行在物理内存上的,就是程序运行时访问的都是PA(物理地址),我们必须同时在内存中运行多个程序,那么有限的RAM空间如何分配呢?直接分配的策略有如下问题:

1:地址空间不隔离,所有程序直接访问PA,内存空间没有隔离,恶意修改数据有可能造成安全问题。

2:内存使用率低下,程序之间换进换出(RAM和Disk之间),因为这里还没有分段和分页机制。

3:程序运行的地址不确定。

解决这些问题:

首先引入虚拟地址的概念,把程序给出的地址看成是VA(虚拟地址),通过映射机制(MMU+paging)把VA翻译成PA,这样只需管理这个VA到PA的映射过程就可以保证程序之间的PA区域不会重叠。

每个进程都有自己独立的VA空间,每个进程只能访问自己的虚拟地址空间,这样做到进程隔离。

分段(segmentation)

程序所需要的内存空间大小的虚拟空间映射到每个物理地址空间中,一一映射,它能解决隔离问题,不同的物理地址空间,但是分段没有解决内存使用率低下的问题,分段对内存区域的映射是按照程序为单位的,如果内存不足,被换入换出到磁盘的都是整个程序,造成大量的磁盘访问,粒度较大。根据程序的局部性原理,一个程序运行时,在某个时间段内,它只是频繁使用到了一部分数据和指令,更小粒度的内存分割和映射方法---->分页机制。提高内存使用率。

分页(paging)

我们可以把进程的虚拟地址空间按页分割,一般一个page的大小为4KB或者8KB,把常用的数据和代码装载到RAM中,把不常用的代码和数据保存在Disk中,等到需要使用的时候通过page fault调入RAM,这时候如果没有空闲的页,那么会使用页面替换算法牺牲一个页来覆盖(LRU最近最少使用算法)。

通过页映射机制,可以保存程序数据,我们可以给每个页设置权限属性(一些标志位)来控制该页的访问权限(内核还是用户)还有RWX权限等。分页需要MMU硬件单元,该单元集成在CPU内部。


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
揭秘C语言的吸引力: 发掘程序员的潜质揭秘C语言的吸引力: 发掘程序员的潜质Feb 24, 2024 pm 11:21 PM

学习C语言的魅力:解锁程序员的潜力随着科技的不断发展,计算机编程已经成为了一个备受关注的领域。在众多编程语言中,C语言一直以来都备受程序员的喜爱。它的简单、高效以及广泛应用的特点,使得学习C语言成为了许多人进入编程领域的第一步。本文将讨论学习C语言的魅力,以及如何通过学习C语言来解锁程序员的潜力。首先,学习C语言的魅力在于其简洁性。相比其他编程语言而言,C语

2023过年,又限制放烟花?程序猿有办法!2023过年,又限制放烟花?程序猿有办法!Jan 20, 2023 pm 02:57 PM

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

接私活挣钱!2023程序员接单平台大全!接私活挣钱!2023程序员接单平台大全!Jan 09, 2023 am 09:50 AM

上周我们做了一次关于《2023PHP创业》的公益直播,很多同学咨询具体有哪些接单平台,下面php中文网整理了22个还算靠谱的平台,以供参考!

程序员是做什么的程序员是做什么的Aug 03, 2019 pm 01:40 PM

程序员的工作职责:1、负责软件项目的详细设计、编码和内部测试的组织实施;2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系;3、参与需求调研、项目可行性分析、技术可行性分析和需求分析;4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术;5、负责向项目经理及时反馈软件开发中的情况;6、参与软件开发和维护过程中重大技术问题的解决;7、负责相关技术文档的拟订等等。

520程序员专属浪漫表白方式!无法拒绝!520程序员专属浪漫表白方式!无法拒绝!May 19, 2022 pm 03:07 PM

520将至,年度虐汪大戏他又双叒叕来啦!想看看最理性的代码和最浪漫的告白究竟能碰撞出怎样的火花?下面带你逐一领略最全最完整的告白代码,看看程序员们的浪漫是否能够掳获各位心目中女神的芳心呢?

浅析怎么下载安装VSCode历史版本浅析怎么下载安装VSCode历史版本Apr 17, 2023 pm 07:18 PM

VSCode历史版本的下载安装 VSCode安装 下载 安装 参考资料 VSCode安装 Windows版本:Windows10 VSCode版本:VScode1.65.0(64位User版本) 本文

2022年最佳的Windows 11终端仿真器列表:Top 15款推荐2022年最佳的Windows 11终端仿真器列表:Top 15款推荐Apr 24, 2023 pm 04:31 PM

终端仿真器允许您模仿标准计算机终端的功能。有了它,您可以执行数据传输并远程访问另一台计算机。当与Windows11等高级操作系统结合使用时,这些工具的创造性可能性是无穷无尽的。但是,有很多第三方终端仿真器可用。因此,很难选择合适的。但是,正如我们对必备的Windows11应用所做的那样,我们选择了您可以使用的最佳终端并提高您的工作效率。我们如何选择最好的Windows11终端模拟器?在选择此列表中的工具之前,我们的专家团队首先测试了它们与Windows11的兼容性。我们还检查了他们

Devin第一手使用体验:完成度很高,开始编码就停不下来,但要替代程序员还很远Devin第一手使用体验:完成度很高,开始编码就停不下来,但要替代程序员还很远Mar 18, 2024 pm 03:30 PM

由10枚IOI金牌在手的创业团队CognitionAI开发的全球首个AI程序员智能体Devin,一发布就让科技圈坐立不安。在演示中,Devin几乎已经可以独立完成许多需要普通程序员花费大量时间才能完成的任务,而且表现一点也不逊色于普通程序员。但是,产品能力的边界在哪里,实际体验和演示时候有差距,还的看上手实测之后的效果。这位斯坦福的小哥在Devin发布的第一时间就联系了团队,获得了第一手体验的资格。他让Devin帮它做了几个难度不一的项目,录制了一个视频,在推上写下了自己的使用感受。下一个任务是

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구