一、存储器分类
计算机系统中存储器分为两类:一类是主存储器(内存),是处理器能够直接访问的存储器;一类是外存储器(外存,也就是我们常说的硬盘),是处理器不能直接访问的存储器。
CPU要处理数据,必须先将外存中存储的数据保存如内存中,才能对数据进行处理。
注:代码共享与数据共享
两者同属于内存共享的范畴;代码共享是属于多个进程运行同一个代码段,但是代码共享要求代码为纯代码(可冲入代码)——多个进程同时调用一个文件处理程序的代码进行文件编辑。数据共享可以实现代码通信。
二、物理地址与虚拟地址
物理地址是指数据放在存储器中实际的地址;虚拟地址是指编程前我们将代码存放的地址。
地址转换:在将程序的指令和数据放入内存前,要将虚拟地址转化为实际地址,这叫地址重定位。地址从定位方式分为静态和动态两种。
静态:程序装入内存时,由逻辑地址到物理地址的转换。
动态:在程序运行过程中,当程序要访问指令或数据时由系统硬件完成从逻辑地址到物理地址的转换,这个转换行为通常是由系统中的重定位寄存器完成的。
三、用户程序的处理过程
用户作业的程序通常用高级语言编写,成为源程序——源程序是不能被计算机直接执行的,需要经过编译、连接、装入和执行几个步骤才能在内存中执行。
1.编译
将源代码编译成若干目标块,经过编译后生成的目标块的地址单元称为逻辑地址(相对地址)。
2.连接
将编译或汇编后形成的一组目标模块以及他们所需的库函数连接在一起,装配成一个完整的装入模块,最后由装入程序将模块装入主存。
3.装入阶段
程序通常以二进制的可执行文件存放在磁盘中的,将二进制装入模块装入内存中,称为装入;在多道程序环境下,要使程序运行,必须为之创建进程。
四、空间的分配
1.连续存储空间管理
(1)单一连续存储空间管理
将内存分为系统与用户两部分;系统区存放操作系统驻留的代码或数据;内存中仅驻留一道程序,一次只能装入一道作业。
该方式的特点是只适合于单用户系统;
(2)固定分区存储管理
(3)可变分区存储管理
(4)分页存储管理
(5)分段存储管理
(2)