- 1、本文档共111页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统概念ch9
Reason Why Frames Used For I/O Must Be In Memory Operating System Examples Windows XP Solaris 进程都有自己的正文段,数据段, 堆栈段等。Linux按这种逻辑单位,把虚 拟空间划分成若干分区,然后进行分页。 这样,进程每一个分区段位于一个连续 的虚拟空间里,那里的内容有相同的特 性,有利于对它们分别实行存储保护和 共享。另外,虚拟空间在各个分区之间 可以不连续。即进程所用的虚拟地址并不一定是连成一片的,可以有空洞存在。 Linux的虚拟存储空间 1. Linux的虚拟存储空间 在Linux中,虚拟地址用32个二进制位表示。这意味系统向每个进程提供的虚存空间,最多可以高达232 字节 = 4GB。 . Linux把4GB的虚拟空间划分为两部分:最高的1GB用于内核本身,称为“系统空间”,为所有的进程共享;较低的3GB供进程使用,称为“用户空间”。 进程A的 用户空间 (3GB) 进程B的 用户空间 (3GB) 进程N的 用户空间 (3GB) 共享的系统空间(1GB) 4GB 的虚拟空间 2. 多级页表的地址变换 Linux向用户提供的最大虚拟空间为4GB。由于内存块长度是4KB,因此一个虚拟地址空间最多可有220(4GB/4KB=1M)个页面。即用户虚拟地址空间的页表,最多要用一百万个表项来记录页面与物理块的对应关系,不利于存储空间的利用。 . Linux在对虚拟地址空间进行分页时,采用两级页表的机制:先是对虚拟地址空间进行分页,形成页表;再对页表进行分页,形成页表的页表。 页面索引号 p1 页号 p2 位移量 d 32位虚拟地址: 10位 10位 12位 一个页面 一个页面 用户虚拟 地址空间 1M个页面 1M个表项 (1024个页面) 1024个表项 页表 页表索引 3. 二级页表的地址转换过程 在知道一个虚拟地址后,就可根据地址的前10位,先去查页表索引,以便得到该索引所对应的页表放在哪一个内存块。 . . 再由地址中间的10位,去查这个页表,得到该页所对应的内存块的起始地址。 . 最后,与位移量d相加后,就得到最终所需要的物理地址。 p1 p2 d 索引项 页表索引 p1 1页 1页 表项 页表 p2 d 内存 物理 地址 1块 1块 * 管理虚拟存储空间的数据结构 利用task_struct来表示一个进程,该结构称为进程控制块 所有task_struct结构的指针形成一个数组task Linux为每一新建进程分配一个task_struct结构,然后将指针保存在task数组中 当前运行进程的结构用current指针来指示 * 虽然task_struct数据结构庞大而复杂,但它主要有如下功能信息: (1)状态信息(State) (2)调度信息(Scheduling Information) (3)进程标识符(Identifiers) (4)进程间通讯信息(Inter-Process Communication) (5)进程链信息(Links) (6)时间和定时器(Times and Timers) (8)虚拟内存(Virtual Memory) (7)文件系统信息(File System) Linux进程的各个分区可以是不连续的,因此形成了若干个离散的虚拟区间。为了对它们加以管理,定义了vm_area_struct型及mm_struct型数据结构。 管理虚拟存储空间的数据结构 . vm_area_struct用于管理进程的每一个虚拟区间,mm_struct用于管理进程的整个虚拟空间、页表索引和页表。因此,一个进程可以有多个vm_area_struct型数据结构,但只有一个mm_struct型数据结构。 task_struct mm *mmap *pgd map_count mm_struct *vm_next *vm_start vm_end vm_area_struct *vm_next *vm_start vm_end vm_area_struct 一段 虚拟区间 一段 虚拟区间 页表 页表 页表索引 * 用vm_area_struct数据结构描述虚拟内存分区 起始和结束位置 进程对此内存区域的存取权限 相应的一组内存操作函数 vm_area_struct也记录相应分区是该进程私有的还是可以与其他进程共享的 vm_area_struct记录了相应分区是否在磁盘上有后备存储,如果有,在什么地方 正文段使用可执行的二进制文件作为后备存储 内存映射文件使用磁
您可能关注的文档
- 北京入围冬奥候选 再次进行空气治理.docx
- 华电变频器专用输出电抗器 现货供应.doc
- 动物学第一章绪论.ppt
- 各类职务中英对照.docx
- 华北电力大学科技学院通信电子电路课件第5章.ppt
- 华北电力大学科技学院通信电子电路课件第2章.ppt
- 华北电力大学科技学院通信电子电路课件第4章.ppt
- 哈工大模拟cmos第一章.ppt
- 国际商务英语常用词语汇总.doc
- 卫生学05-地质环境与土壤.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
文档评论(0)