中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Linux中的进程地址空间(arm)

Linux:操作系统分析 Chapter 18 Linux中的进程地址空间(arm) 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室©计算机学院 嵌入式系统实验室●苏州研究院 中国科学技术大学 Fa112014 January 14,2015 1口t4四是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作看统分析Chapter18 Linux中约进有 J6uary14,20151/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linux操作系统分析 Chapter 18 Linux中的进程地址空间(arm) 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2014 January 14, 2015 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 1 / 28

Outline 进程地址空间和线性区 ② 缺页异常 小结和作业 1口t4四是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作看统分析Chapter18 Linux中约进有 January14,20152/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline 1. 进程地址空间和线性区 .2 缺页异常 .3 小结和作业 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 2 / 28

内核态和用户态分配内存的不同 ·内核中的函数以直接了当的方式获得动态内存 ·内核是操作系统中优先级最高的成分· 。内核信任自己 ·采用我们上次课介绍的页面级内存分配和小内存分配 1口4四是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作表统分析Chapter】8 Linux中约过书 J6 nuary14,20153/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 内核态和用户态分配内存的不同 内核中的函数以直接了当的方式获得动态内存 内核是操作系统中优先级最高的成分。 内核信任自己 采用我们上次课介绍的页面级内存分配和小内存分配 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 3 / 28

内核态和用户态分配内存的不同 ●给用户态进程分配内存时 ·请求被认为是不紧迫的 ·用户进程不可信任 ·因此,当用户态进程请求动态内存时,并没有立即获得 实际的物理页框,而仅仅获得对一个新的线性地址区间 的使用权 ·这个线性地址区间会成为进程地址空间的一部分,称作 线性区(memory areas) 1口+4四是4P在刀0C 陈香兰(xianchenoustc,edu.cn)(升算丸应Linux操作表统分析Chapter】8 Linux中约过有 J6 nuary14,20153/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 内核态和用户态分配内存的不同 给用户态进程分配内存时 请求被认为是不紧迫的 用户进程不可信任 因此,当用户态进程请求动态内存时,并没有立即获得 实际的物理页框,而仅仅获得对一个新的线性地址区间 的使用权 这个线性地址区间会成为进程地址空间的一部分,称作 线性区(memory areas) 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 3 / 28

进程地址空间和线性区 。进程最多能访问4GB的线性地址空间 ·但进程在访问某个线性空间之前,必须获得该线性空间的许可 。因此,一个进程的地址空间是由允许该进程访问的全部线性地 址组成 ·内核使用线性区资源来表示线性地址空间 ●每个线性区由起始线性地址、长度和一些存取权限描述 1口+4四是4P在刀0C 陈奇兰(x1 anchenoustc,edu,cn)(升算丸应Linux操作表统分析Chapter】8 Linux中约过有 J6 nuary14,20155/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 进程地址空间和线性区 进程最多能访问4GB的线性地址空间 但进程在访问某个线性空间之前,必须获得该线性空间的许可 因此,一个进程的地址空间是由允许该进程访问的全部线性地 址组成 内核使用线性区资源来表示线性地址空间 每个线性区由起始线性地址、长度和一些存取权限描述 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 5 / 28

与进程地址空间相关的描述符 Figure 8-2.Descriptors related to the address space of a process Linear Address Space Memory Regions mmap mmap_cache →vmstart ---→vm_end >vm next Memory Descriptor 4口4四1是142刀00 陈香兰(xlanchenoustc,edu.cn)(计算机应Linux操作系统分新Chapter18 Linux中约过有 J6 nuary14.20156/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 与进程地址空间相关的描述符 Figure 8-2. Descriptors related to the address space of a process Linear Address Space Memory Regions Memory Descriptor mmap mmap_cache vm_next vm_end vm_start 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 6 / 28

与进程地址空间相关的描述符 ●线性区的开始和结束都必须4KB对齐 。进程获得新线性区的一些典型情况: ●刚刚创建的新进程 。使用exec系统调用装载一个新的程序运行 。将一个文件(或部分)映射到进程地址空间中 。当用户堆栈不够用的时候,扩展堆栈对应的线性区 1口+4四是4P在刀0C 陈奇兰(xlanchenoustc,edu.cn)(升算执应Linux操作表统分析Chapter18 Linux中约过书 J6 nuary14,20156/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 与进程地址空间相关的描述符 线性区的开始和结束都必须4KB对齐 进程获得新线性区的一些典型情况: 刚刚创建的新进程 使用exec系统调用装载一个新的程序运行 将一个文件(或部分)映射到进程地址空间中 当用户堆栈不够用的时候,扩展堆栈对应的线性区 …… 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 6 / 28

与创建、删除线性区相关的系统调用 brk() 改变进程堆的大小 execve() Loads a new executable file,thus changing the process address space exit() Terminates the current process and destroys its address space fork() Creates a new process,and thus a new address space mmap() Creates a memory mapping for a file,thus mmap2() enlarging the process address space mremap() 扩大或缩小线性区 remap file pages( Creates a non-linear mapping for a file munmap() Destroys a memory mapping for a file,thus contracting the process address space shmat() Attaches a shared memory region shmdt() Detaches a shared memory region 1口+4四是42是刀00 陈香兰(xianchenoustc,edu,cn)(计算丸应Lioux操作系统分析Chapter18 Linux中约进书 J6 nuary14,20157/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 与创建、删除线性区相关的系统调用 brk( ) 改变进程堆的大小 execve( ) Loads a new executable file, thus changing the process address space _exit( ) Terminates the current process and destroys its address space fork( ) Creates a new process, and thus a new address space mmap( ) Creates a memory mapping for a file, thus mmap2( ) enlarging the process address space mremap( ) 扩大或缩小线性区 remap_file_pages( ) Creates a non-linear mapping for a file munmap( ) Destroys a memory mapping for a file, thus contracting the process address space shmat( ) Attaches a shared memory region shmdt( ) Detaches a shared memory region 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 7 / 28

线性区(memory area》 。比如0x08048000一0x0804C000这段线性地址空间被分配给了 一个进程,进程就可以访问这段地址空间 ●进程只能访问某个有效的memory area。进一步讲,这个area 可以被标志为只读或者不可执行(nonexecutable) ●如果进程试图访问一个有效的area之外的地址或者用不正确的 方式访问一个有效的area,内核将通过段异常(segmentation fault)杀死这个进程 1口+4四是4P在刀0C 陈香兰(xianchenoustc,edu.cn)(计算丸应Linux操作系统分折Chapter18 Linux中约过有 J6 nuary14,20158/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 线性区(memory area) 比如0x08048000–0x0804C000这段线性地址空间被分配给了 一个进程,进程就可以访问这段地址空间 进程只能访问某个有效的memory area。进一步讲,这个area 可以被标志为只读或者不可执行(nonexecutable) 如果进程试图访问一个有效的area之外的地址或者用不正确的 方式访问一个有效的area,内核将通过段异常(segmentation fault)杀死这个进程 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 8 / 28

线性区(memory area) 。线性区中可以包含各种内容 。可执行文件代码段的内存映射,就是.text section 。数据段的内存映射,,data section ·zero page的内存映射用来包含未初始化的全局变量,,bss section 。为库函数和链接器附加的代码、数据、bss段 。文件的内存映射 。共享内存的映射 。匿名内存区域的映射,比如通过mal1oc()函数申请的内存区域 1口+4四是4P在刀0C 陈奇兰(x1 anchenoustc,edu,cn)(升算丸应Linux操作表统分新Chapter】8 Linux中约过有 J6 nuary14,20158/28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 线性区(memory area) 线性区中可以包含各种内容 可执行文件代码段的内存映射,就是.text section 数据段的内存映射,.data section zero page的内存映射用来包含未初始化的全局变量,.bss section 为库函数和链接器附加的代码、数据、bss段 文件的内存映射 共享内存的映射 匿名内存区域的映射,比如通过malloc()函数申请的内存区域 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 18 Linux中的进程地址空间(arm) @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 8 / 28
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)内存管理 memory.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)系统调用 syscall arm.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Linux的时钟和定时测量 clock and timer.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)进程管理.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)uC/OS-II简单分析.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Ubuntu中的系统初始化.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Building Embedded Linux System.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)bootloader简介和bootloader举例(u-boot和RedBoot).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)skyeye简介.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)ArmLinux的启动(基于arm的Linux启动代码分析).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式操作系统和选型.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)GNU(交又)开发工具链简介 GNU Tools.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式系统及嵌入式软件开发概述.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)课程介绍(主讲:陈香兰).pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)进程的同步和通信.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux中的信号机制.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)管理I/O设备.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)文件系统.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)程序的执行.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)Linux中的进程地址空间.pdf
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第二讲 操作系统的安全机制 SecureMechanism.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第三讲 安全需求与安全策略 Requirement & Policy.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第一讲 绪论(主讲:陈香兰).ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第四讲 操作系统安全体系结构 OSSecurityArch.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第五讲 渗透测试技术 Penetration testing.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第六讲 主流操作系统中的安全技术——Linux GOS Linux Security.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第七讲 安全操作系统的设计与实现 Design Implementation.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第八讲 主流操作系统中的安全技术——Windows GOS Windows Security.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第九讲 实验讲解——口令破解 about experiment Password cracking.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第十讲 实验讲解——文件恢复 about experiment file recovery.ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第十讲 实验讲解——文件恢复(Linux文件系统和ext2).ppt
- 中国科学技术大学:《安全操作系统》课程教学资源(PPT课件讲稿)第十一讲 国外知名安全操作系统介绍——SELinux CaseStudy SELinux.ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)分布式路由算法(1/3).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)分布式路由算法(2/3).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)分布式路由算法(3/3).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)处理机分配算法举例(部分).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)分布式进程调度和容错.ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程PPT教学课件(分布式系统设计)分布式程序设计(主讲:熊焰).ppt
- 中国科学技术大学:《计算机组成原理》课程教学资源(课件讲稿,2022)课程简介(主讲:李曦).pdf
- 中国科学技术大学:《计算机组成原理》课程教学资源(课件讲稿,2022)01 概述.pdf