欢迎来到天天文库
浏览记录
ID:50455649
大小:492.50 KB
页数:114页
时间:2020-03-09
《操作系统原理及应用(Linux)(第二版)教学课件王红第4章 存储器的管理课件文本.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章存储器管理本章学习目标本章主要讲解了存储器管理的基本方式,剖析了Linux操作系统对内存的管理模式。通过对本章学习,读者应该达到以下学习目标:重点掌握本章的基本概念,分页式存储管理技术和分段式存储管理技术,虚拟存储器的概念。理解段页式存储管理技术,虚存中的置换算法。了解Linux操作系统的存储管理技术。第4章存储器管理1教学内容4.1存储器管理概述4.2连续分配存储管理方式4.3分页存储管理方式4.4分段存储管理方式4.5虚拟存储器的基本概念4.6请求分页4.7请求分段存储管理4.8LINUX系统的内存管理方法本章小结24.1存储器管理概述
2、4.1.1存储器的层次图4.1所示就是存储器的体系结构。高速缓冲存储器主存储器辅助存储器存储容量递增存取速度递增图4.1多级存储器体系示意图第4章存储器管理34.1.2用户程序的处理过程用户程序处理分以下几个阶段:(1)编译。由编译程序将用户源代码编译成若干个目标模块。(2)链接。有链接程序将编译后形成的目标代码以及它们所需的库函数,链接在一起,形成一个装入模块。(3)装入。有装入程序将装入模块装入内存。处理过程示意图见4.2第4章存储器管理4编译程序产生的目标模块程序数据库函数链接程序装入模块装入程序图4.2对用户程序的处理步骤第4章存储器管理
3、51.目标程序装入内存的方式程序只有装入到内存后才能运行。装入方式分绝对装入方式、可重定位装入方式和动态运行时装入方式。(1)绝对装入方式在编译时,如果知道程序将驻留在内存什么位置,那么编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入内存后,不须对程序和数据的地址进行修改,程序中所使用的绝对地址,即可以在编译或汇编中给出,也可以有程序员直接给予。一般不让程序员给予地址,通常情况是在程序中采用符号地址,然后在编译或汇编时,将这些符号地址再转化为绝对地址。第4章存储器管理6(2)可重定位装入方式
4、又称静态重定位。是在程序执行之前,有操作系统的重定位装入程序完成。一般用于多道程序环境中,编译程序不能预知所编译的目标模块在内存什么地方。重定位程序根据装入程序的内存起始地址,直接修改所涉及到的逻辑地址,将内存的起始地址加上逻辑地址得到正确的内存地址。第4章存储器管理7100001200013500360Load1,350015000内存空间020003500360Load1,35005000作业地址空间图4.3作业装入内存时的情况第4章存储器管理8(3)动态运行时的装入方式又称动态重定位。是在程序执行期间进行的。一般说来,这种转换有专门的硬件机
5、构来完成,通常采用一个重定位寄存器,每次进行存储访问时,对取出的逻辑地址加上重定位寄存器的内容,形成正确的内存地址。如图4.4所示.第4章存储器管理9100001200013500360Load1,350015000内存空间物理地址10000350013500+图4.4采用动态重定位时内存空间及地址重定位示意图第4章存储器管理102.目标程序链接链接程序的功能,是将经过编译或汇编后得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。实现链接的方法有三种:静态链接、装入时动态链接和运行时动态链接。(1)静态链接设编译后得到的三个目标
6、模块A、B、C,它们的长度分别为L、M和N。程序链接示意图如图4.5所示。需要完成的工作是对相对地址进行修改,同时变换外部调用符号,将每个CALL语句改为跳转到某个相对地址,从而形成一个完整的装入模块,又称可执行文件。通常不再拆开,运行时可直接装入内存。这种事先进行链接,以后不再拆开的方式称为静态链接。第4章存储器管理11(2)装入时动态链接用户源程序经编译后得到目标模块,是在装入内存时边装入边链接的。即在装入一个目标模块时,若发生一个外部模块调用时,将引起装入程序去找相应的外部目标模块,并将它装入内存。(3)运行时动态链接装入时进行的链接虽然可
7、以将整个模块装入到内存的任何地方,但装入摸块的结构是静态的。在程序执行期间装入模块是不可改变的,因为无法预知本次要运行哪个模块,只能将所有可能要运行的模块,在装入时全部链接在一起,使得每次执行的模块都相同。这样效率很低,因此采用运行时动态链接。在这种链接方式中,可将某些目标模块的链接,推迟到执行时才进行。即在执行过程中,若发现一个被调用模块尚未装入内存时,有OS去找该模块,将它装入内存,并把它链接到调用模块上。第4章存储器管理120L-1模块ACALLBReturn;模块BCALLCReturn;模块CReturn;0M-1N-10目标模块装入模
8、块0L-1模块AJSR“L”Return;模块BJSR”L+M”Return模块CReturnLL+M-1L+ML+M+N-1图4.5程
此文档下载收益归作者所有