第四章 内存管理
计算机操作系统第四章-存储器管理

第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
内存管理实验指导书

struct _MMVAD *RightChild;
ULONG_PTR StartingVpn;
ULONG_PTR EndingVpn;
union {
ULONG_PTR StartingVpn;
ULONG_PTR EndingVpn;
union {
ULONG_PTR LongFlags;
MMVAD_FLAGS VadFlags;
} u;
PCONTROL_AREA ControlArea;
关于该结构参数的说明如下:StartingVpn指这个VAD所描述的那段地址空间的开始虚拟页号;EndVpn指这个VAD所描述的那段地址空间的结束虚拟页号;CommitCharge指提交的物理页数。
(2) _MMVAD_LONG结构体
Line 3999 mm\Mi.h
typedef struct _MMVAD_LONG {
Line 3976 mm\Mi.h
typedef struct _MMVAD {
union {
LONG_PTR Balance : 2;
struct _MMVAD *Parent;
} u1;
释放:当你的程序算法不再需要访问已经保留的地址空间区域时,该区域应该被释放。这个过程称为释放地址空间的区域,它是通过调用VirtualFree函数完成。在页面释放的过程中,只需将页面(工作集中未修改的)挂在空闲页面链表中即可。
(2) 基于堆的内存分配和回收分析
得到句柄:线程调用GetProcessHeap函数得到一个指向它的句柄。该函数返回描述该进程的默认堆的堆数据结构的地址。
操作系统第四章复习

页框号为21。 因为起始驻留集为空, 而0页对应的ห้องสมุดไป่ตู้框为空闲链表中的第三个空闲页框,其对应的页框号为21。
页框号为32。 因为11 > 10故发生第三轮扫描,页号为1的页框在第二轮已经处于空闲页框链表中,此刻该页又被重新访问,因此应被重新放回到驻留集中,其页框号为32。
页框号为41。 因为第2页从来没有被访问过,不在驻留集中。因此从空闲链表中取出链表头的页框,页框号为41。
4. 在虚拟内存管理中,地址变换机构将逻辑地址转换为物理地址,形成该逻辑地址的阶段是( )。 ① 编辑 ② 编译 ③ 链接 ④ 装载 5. 采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是_______ A)224 B)28 C) 216 D) 232 6. 作业在执行中发生了缺页中断,经操作系统处理后,应让其执行______指令。 A)被中断的前一条 B)被中断的后一条 C)被中断的 D) 启动时的第一条
7、某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空),采用最佳适配(Best fit)算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配6MB,此时主存中最大空闲分区的大小是( ) A:7MB B:9MB C:10MB D:15MB
当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据,请问答下列问题: (1)该逻辑地址对应的页号是多少? (2)若采用先进先出置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。 (3)若采用时钟置换算法,该逻辑地址对应的物理地址是多少?(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框)
页号
存储块号
0 1 2 3
5 10 4 7
《操作系统》课件(五)页式存储管理

段的共享和保护
共享:在不同用户的段表中添入相同的 段表表项。
保护:在段表中添加一个保护位。 思 考:为什么段式存储管理比页式存储
管理更容易实现共享和保护?
段式和页式的问题和优点
页式:解决了碎片问题。但不便于用户作业 的共享和保护。由于用户调入的页可能只用 到其中的一部分,因此系统的效率不高。
210=1024,25=32
(2)根据给定的逻辑地址得到页号和页内地址。
035E(H)=(0000001101011110)2 从左边 数10位为页内地址,剩余为页号。页号为0。
(3)根据页号查页表,得到块号为5。
(4)将块号与块内地址组合为物理地址:
01011101011110=175E(H)
页表的实现—快表
块号
5 12
保护位
R WR
5
5
5
5
5
用户1
用户2
用户3
页式虚拟存储技术
虚拟存储器:内存扩充技术,为用户提供一 个比实际内存大得多的内存空间。
实现虚拟的三个三个条件;
程序中的哪些页已经加载内存。 当要访问的页不在内存时,如何将其掉如内存? 若此时内存空间已满,如何选择换出的页?
页式虚拟的基本原理:加载作业时,只加载 那些最活跃的页,其余的页需要时再加载。 “请求调页技术”和“预调页技术”。
从上述地址变换过程可以看出:CPU每取一条 指令或数据,都必须经过页表。
因此,页表的每一个表项都是一个动态重定位 机构。
如何实现页表,将影响系统的效率。 方式:
硬件实现:用寄存器组。但代价太高,特别是内存 很大时,是不可能的。
软件实现:将页表放在内存中。每取一条指令,要 两次访问内存。
第四章存储器管理

考点一内存管理概念一、单项选择题在下面关于存储功能的论述中正确的是()A.即使在多道程序管理下用户也可以编制用物理地址直接访问内存的程序。
B.内存分配的基本任务是为每道程序分配内存空间,其追求的目的则是提高内存的利用率。
C.为提高内存保护的灵活性,内存保护通常由软件完成。
D.地址映射是指将程序物理地址转变为内存的逻辑地址二、综合应用题1.请列举出逻辑地址和物理地址的两个不同之处。
2.一个进程被换出内存,它就失去了使用CPU的机会。
除了换出内存这种情形,请列举出其它一种情形,进程虽然失去了使用CPU的机会,但它并没有被换出内存。
3.存储管理的主要研究内容是什么?4.什么是动态链接?用何种内存分配方法可以实现这种链接技术?5.某系统把任一程序都分成代码和数据两部分。
CPU知道什么时候要指令(如取指令周期),什么时候要数据(如取数据周期或存数据周期)。
所以,需要两种寄存器(基地址寄存器、界限寄存器),一组用于指令,一组用于数据。
用于指令的是只读的,以便于用户的共享。
请分析这种策略的优缺点。
6.什么是地址的重定位?有哪几种常用的地址重定位的方法?7.在现代计算机系统中,存储器是十分重要的资源,能否合理有效的使用存储器,在很大程度上反映了操作系统的性能,并直接影响到计算机系统作用的发挥。
请问:(1)主存利用率不高主要体现为哪几种形式?(2)可以通过哪些途径来提高主存利用率8.内存保护是否可以完全由软件来实现?为什么?考点二交换与覆盖一、单项选择题1.存储管理方案中,()可采用覆盖技术。
A.单一连续存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理2.在存储系统管理中,采用覆盖技术与交换技术的目的是( )。
A.节省主存空间B.物理上扩充主存容量C.提高CPU利用率D.实现主存共存二、综合应用题1.在存储管理中,覆盖和对换技术所以解决的是什么问题?各有什么特点?2请写出你对交换过程和覆盖过程的认识,它们的主要区别有哪些?考点三连续分配管理方式一、单项选择题1.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间并与相邻空闲区合并,为此需要修改空闲区表,造成空闲区域减1的情况是()。
操作系统概念第七版习题答案(中文版)完整版

操作系统概念第七版习题答案(中文版)完整版操作系统概念第七版习题答案(中文版)完整版本文为《操作系统概念第七版习题答案(中文版)》的完整版,旨在提供对该书中习题的详细解答和解析。
以下将按照章节顺序,逐一介绍各章习题的解答及相应的说明。
第一章:引言1. 操作系统的定义操作系统是计算机体系结构的重要组成部分。
它是一种软件,用于管理计算机硬件资源和提供用户与计算机系统之间的接口。
操作系统的主要目标是实现对计算机系统的控制和协调,以确保计算机系统的正确运行。
2. 操作系统的功能操作系统具有以下主要功能:- 管理系统资源:操作系统负责管理计算机系统的硬件资源,包括内存、CPU、硬盘和外部设备等。
- 提供用户接口:操作系统提供了用户与计算机系统之间的接口,使用户能够方便地使用计算机。
- 调度任务:操作系统根据一定的调度算法,决定进程的执行顺序,以实现对系统资源的合理利用。
- 存储管理:操作系统管理计算机的内存资源,为进程分配内存空间,并进行内存的读写操作。
- 文件系统:操作系统负责管理计算机系统中的文件,包括文件的创建、读写和删除等操作。
- 错误处理:操作系统能够检测和处理可能出现的错误,确保计算机系统的稳定和安全。
第二章:进程与线程1. 进程与线程的概念及区别进程是计算机系统中正在运行的程序的实例。
一个进程由程序、数据和进程控制块组成,拥有独立的内存空间和系统资源。
线程是进程中的一个实体,是进程的执行单位,共享进程的数据空间和系统资源。
进程和线程的主要区别在于资源的占用和拥有关系,进程拥有独立的资源,而线程共享进程的资源。
2. 进程调度算法常见的进程调度算法包括先来先服务(FCFS)、短作业优先(SJF)、最高优先权调度(HPF)、时间片轮转调度(RR)等。
不同的调度算法适用于不同的场景和需求,可以根据系统的实际情况选择合适的调度算法。
第三章:处理机调度与死锁1. 死锁的概念死锁是指系统中若干进程因竞争系统资源而陷入无限等待的状态,无法继续执行下去。
操作系统概念课后习题答案

操作系统概念课后习题答案操作系统概念课后习题答案第一章:引论1.操作系统的定义:操作系统是计算机系统中的一个软件层,它管理和控制计算机硬件资源,为用户和应用程序提供接口和服务。
2.操作系统的功能:处理器管理、存储器管理、设备管理、文件管理和用户界面等。
第二章:进程管理1.进程的概念:进程是一个正在执行的程序的实例,它由代码、数据和执行环境组成。
2.进程状态:就绪、运行和阻塞。
3.进程调度算法:先来先服务、最短作业优先、时间片轮转和优先级调度等。
第三章:线程管理1.线程的概念:线程是进程的一个执行单元,一个进程可以包含多个线程。
2.线程与进程的区别:线程共享相同的地质空间和文件描述符,而进程拥有独立的地质空间和文件描述符。
3.线程模型:用户级线程模型和内核级线程模型。
第四章:内存管理1.内存管理的目标:实现内存的分配与回收、内存的保护和共享。
2.内存分配的概念:连续分配、非连续分配和虚拟内存分配。
3.地质转换:逻辑地质到物理地质的转换过程,包括分段、分页和段页式等。
第五章:存储器管理1.存储器的层次结构:主存储器、辅助存储器和高速缓存。
2.页面置换算法:最佳置换算法、先进先出算法、最近最久未使用算法和时钟置换算法等。
3.虚拟内存的概念:将存储器抽象成一组连续的地质空间,实现大容量存储和地质共享。
第六章:设备管理1.设备管理的功能:设备分配、设备驱动程序和设备中断处理等。
2.设备分配算法:先来先服务、最短作业优先和轮转法等。
3.磁盘调度算法:先来先服务、最短寻道时间优先和扫描算法等。
第七章:文件管理1.文件的概念:文件是命名的、有序的数据集合,它是操作系统中最基本的数据组织方式。
2.文件系统的组织结构:层次式文件系统、索引式文件系统和线性文件系统等。
3.文件共享与保护:文件锁机制、权限控制和访问控制列表等。
第八章:I/O系统1.I/O系统的组成部分:I/O设备、I/O控制器和设备驱动程序等。
2.I/O操作的方式:程序控制I/O和中断驱动I/O。
操作系统 存储器管理习题课

一、选择题
12. 在请求分页系统的页表中增加了若干项,其中状态位供(A)参考,修改 位供(B)参考,访问位供(C)参考,外存始址供(D)参考 A,B,C,D:1 页面分配,2置换算法,3程序访问,4换出页面,5调入页面 13.在请求调页系统中,若逻辑地址中的页号超过页表寄存器中页表的长度, 则会引起(A);否则,所需的页不在内存中会引起(B)。 A,B:1输入/输出中断,2时钟中断,3越界中断,4缺页中断 14.在请求调页系统中有多种置换算法:选择最先进入系统中的页面进行淘汰 的算法称为(A);选择在以后不再使用的页面予以淘汰的算法称为 (B);选择上次访问后所经历最长时间的算法称为(C);选择自某时 刻以来访问次数最少的页面予以淘汰的算法称为(D)。 A,B,C,D:1 FIFO算法,2OPT算法,3LRU算法,4 NRU算法,5LFU算法 15.虚拟存储器管理系统的基础是程序的局部性理论,此理论的含义是(A)。 局部性有两种表现形式,时间局部性和(B),它们的意义分别是(C)和 (D)。 A,B:1代码的顺序执行,2程序执行时对主存的访问是不均匀的,3数据的 局部性,4变量的连续访问,5指令的局部性,6空间的局部性 C,D:1最近访问的单元可能在不久还会访问,2最近访问的单元其附近的单 元很可能即将被访问。
一、选择题
5. 在动态分区式内存管理中,倾向优先使用低地址部分空闲区的算法是 (A),能使内存空间空闲块较均匀分布的算法是(B),每次分配是即 能满足要求,又是最小空闲块分配给进程的算法是(C)。 A,B,C:1最佳适应算法,2最坏适应算法,3 首次适应算法,4循环首次适 应算法 6. 在回收内存时可能出现下述三种情况:1释放区与插入点前一分区F1邻接, 此时应(A);2释放区与插入点后一分区F2邻接,此时应(B);3释放区 不与F1和F2邻接,此时应(C)。 A,B,C:1为会回收区建一分区表项,填上分区的大小和始址;2以F1分区 的表项作为新表项,且暂不做任何改变;3以F1分区的表项为新表项,但 修改新表项的大小;4以F2分区的表项作为新表项,同时修改新表项的大 小和始址。 7. 对于重定位存储管理方式,应(A);当程序执行时,是由(B)与(A) 中的(C)相加得到D,用(D)来访问内存。 A:1在整个系统中设置一个重定位寄存器;2为每个程序设置一个重定位 寄存器,3为每道程序设置两个重定位寄存器,4为每个程序段和数据段都 设置一个重定位寄存器。 B,C,D:1物理地址,2有效地址,3间接地址,4起始地址
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vm_avl_height,这3个域在一起构成AVL树,其中vm_avl_height是 , 个域在一起构成AVL树 其中 AVL 是 vm_avl_left, 该节点距根节点的高度,vm_avl_left和 和 , 该节点距根节点的高度, vm_avl_right vm_avl_right分别是该节点的左右两个子树。 分别是该节点的左右两个子树。 Vm_ops 对虚存区进行操作的函数。 对虚存区进行操作的函数。这些给出了可以对虚存 区中的页所进行的操作。 区中的页所进行的操作。
网络工程系 曾令明
虚拟内存实现机制及之间的关系
地址映射
网络工程系 曾令明
虚拟内存实现机制及之间的关系
进程的用户空间管理
• 每个进程经编译、链接后形成的二进制映像 每个进程经编译、 文件有一个代码段和数据段 • 进程运行时须有独占的堆栈空间
堆栈段 空洞 数据段 代码段 进程的用户空 间(3G) )
arg_start, arg_end, env_start, env_end rss, total_vm, locked_vm mmap
命令行参数所在的堆栈部分的起始地址和终 止地址; 止地址; 环境串所在的堆栈部分的起始地址和终止地 址 进程贮留在物理内存中的页面数, 进程贮留在物理内存中的页面数,进程所需 的总页数,被锁定在物理内存中的页数。 的总页数,被锁定在物理内存中的页数。 vm_area_struct虚存区结构形成一个单链表, vm_area_struct虚存区结构形成一个单链表, 虚存区结构形成一个单链表 其基址由小到大排列 vm_area_struct虚存区结构形成一个颗AVL平 vm_area_struct虚存区结构形成一个颗AVL平 虚存区结构形成一个颗AVL 衡树 最近一次用到的虚存区很可能下一次还要用 因此, 到,因此,把最近用到的虚存区结构放入高 速缓存,这个虚存区就由mmap_cache指向。 mmap_cache指向 速缓存,这个虚存区就核空间到物理内存的映射
• 内核空间由所有进程共享,其中存放的是内 内核空间由所有进程共享, 核代码和数据, 内核映象” 核代码和数据,即“内核映象” • 进程的用户空间中存放的是用户程序的代码 和数据 • 内核空间映射到物理内存总是从最低地址 (0x00000000)开始,使之在内核空间 )开始, 与物理内存之间建立简单的线性映射关系。 与物理内存之间建立简单的线性映射关系。
网络工程系 曾令明
网络工程系 曾令明
struct vm_operations_struct { void (*open)(struct vm_area_struct * area); void (*close)(struct vm_area_struct * area); struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int unused); }; vm_operations结构中包含的是函数指针;其中,open、 vm_operations结构中包含的是函数指针;其中,open、close 结构中包含的是函数指针 分别用于虚存区的打开、关闭, nopage是当虚存页面不在物 分别用于虚存区的打开、关闭,而nopage是当虚存页面不在物 理内存而引起的“缺页异常”时所应该调用的函数。 理内存而引起的“缺页异常”时所应该调用的函数。
网络工程系 曾令明
内核空间到物理内存的映射
虚拟地址空间 4G
3G
物理内存 X 0 0
图4.1 内核的虚拟地址空间到物理地址空间的映射
网络工程系 曾令明
虚拟内存实现机制
• Linux虚拟内存的实现需要多种机制的支持 虚拟内存的实现需要多种机制的支持
• 地址映射机制 • 请页机制 • 内存分配和回收机制 • 交换机制 • 缓存和刷新机制
VM_AREA_STRUCT 结构
Vm_mm Vm_start, , vm_end
指向虚存区所在的mm_struct结构的指针。 指向虚存区所在的mm_struct结构的指针。 mm_struct结构的指针 虚存区的起始地址和终止地址。 虚存区的起始地址和终止地址。
Vm_page_prot 虚存区的保护权限。 虚存区的保护权限。 Vm_flags Vm_next 虚存区的标志。 虚存区的标志。 构成线性链表的指针,按虚存区基址从小到大排列。 构成线性链表的指针,按虚存区基址从小到大排列。
内存管理
• Linux的内存管理 的内存管理 • 进程的用户空间管理 • 请页机制 • 物理内存的分配与回收 • 交换机制 • 内存管理示例
网络工程系 曾令明
网络工程系 曾令明
扩大了的记忆—虚拟内存 扩大了的记忆 虚拟内存
• 虚拟内存的基本思想:在计算机中运行的程 虚拟内存的基本思想: 基本思想 其代码、 序,其代码、数据和堆栈的总量可以超过实 际内存的大小, 际内存的大小,操作系统只将当前使用的程 序块保留在内存中, 序块保留在内存中,其余的程序块则保留在 磁盘上。必要时, 磁盘上。必要时,操作系统负责在磁盘和内 存之间交换程序块。 存之间交换程序块。
网络工程系 曾令明
mm_struct 结构
struct mm_struct { count; atomic_t count; pgd_t * pgd; pgd; map_count; int map_count; mmap_sem; struct semaphore mmap_sem; start_code,end_code,start_data,end_data; unsigned long start_code,end_code,start_data,end_data; start_stack; unsigned long start_brk, brk, start_stack; unsigned long arg_start, arg_end, env_start, env_end; env_end; locked_vm; unsigned long rss, total_vm, locked_vm; def_flags; unsigned long def_flags; *mmap_cache; struct vm_area_struct *mmap, *mmap_avl, *mmap_cache; swap_cnt; unsigned long swap_cnt; unsigned long swap_address; swap_address; }; 网络工程系 曾令明
网络工程系 曾令明
相关数据结构间的关系
• 进程控制块是内核中的核心数据结构。 进程控制块是内核中的核心数据结构。 • 在进程的 task_struct 结构中包含一个 mm域,它是指向 mm_struct 结构的指针。 结构的指针。 域 • 而进程的 mm_struct结构则包含进程的可 结构则包含进程的可 执行映像信息以及进程的页目录指针pgd等。 执行映像信息以及进程的页目录指针 等 • 该结构还包含有指向 vm_area_struct 结 构的几个指针, 构的几个指针,每个 vm_area_struct 代 表进程的一个虚拟地址区间。 表进程的一个虚拟地址区间。
pgd
map_count semaphore Start_code,end_code, start_data, end_data
start_brk, brk, start_stack; 网络工程系 曾令明
每个进程都有一个特殊的地址区间, 每个进程都有一个特殊的地址区间,这个区间就是所 谓的堆,也就是前面图中的空洞。 前面图中的空洞 谓的堆,也就是前面图中的空洞。前两个域分别描述 堆的起始地址和终止的地址, 堆的起始地址和终止的地址,最后一个域描述堆栈段 的起始地址。 的起始地址。
网络工程系 曾令明
进程用户空间
• Linux把进程的用户空间划分为一个个区间 虚拟 把进程的用户空间划分为一个个区间(虚拟 把进程的用户空间划分为一个个区间 区),便于管理 • 一个进程的用户地址空间主要由 一个进程的用户地址空间主要由mm_struct结构 结构 结构来描述。 和vm_area_structs结构来描述。 结构来描述 • mm_struct结构它对进程整个用户空间进行描述 结构它对进程整个用户空间进行描述 • vm_area_structs结构对用户空间中各个区间 结构对用户空间中各个区间 (简称虚存区 进行描述 简称虚存区)进行描述 简称虚存区 • vm_operation结构描述了在这些区上的操作 结构描述了在这些区上的操作
mmap_avl mmap_cache
网络工程系 曾令明
struct vm_area_struct { vm_mm; struct mm_struct * vm_mm; unsigned long vm_start; vm_start; vm_end; unsigned long vm_end; vm_page_prot; pgprot_t vm_page_prot; vm_flags; unsigned short vm_flags; *vm_next; struct vm_area_struct *vm_next; short vm_avl_height; vm_avl_height; *vm_avl_right; struct vm_area_struct *vm_avl_left, *vm_avl_right; vm_ops; struct vm_operations_struct * vm_ops; **vm_pprev_share; struct vm_area_struct *vm_next_share, **vm_pprev_share; vm_offset; unsigned long vm_offset; struct file * vm_file; vm_file; vm_pte; unsigned long vm_pte; }; 网络工程系 曾令明