操作系统----内存管理

 

一个字符就是一个字节,也就是8位。

每一个进程有PCB,程序段和数据段,程序的代码会被翻译成指令,CPU会根据指令的要求去找相应的物理地址,然后进行计算。

编译生成的是逻辑地址。

相对地址---->逻辑地址,绝对地址---->物理地址

 编译:先编译成若干个目标模块,然后链接,形成完整的装入模块,然后由装入程序装入内存。

链接:静态链接(先连接好),装入时动态链接(装入的时候动态依次链接),运行时动态链接(当程序执行过程中需要目标模块的时候才进行链接,便于修改和更新,实现对模块的共享)。

装入方式:

绝对装入:

只适用于单道程序,只有一道程序,所以可以确定程序装入位置。编译的时候产生最后的装入位置。

:一次性装入内存,当内存空闲地址不够的时候不能装入内存中。当装入之后就不能进行修改,也不能再申请空间。初始地址为80,同意进行+100操作,这样进行静态重定位。

:(分页存储和分段存储那里细讲)就是采用重定位寄存器,将地址转化推迟到真正执行的时候才进行物理地址的转化。动态重定位可以允许程序在内存中的移动。

-------------------------------------------------------《内存的空间分配》-------------------------------------------------

内存空间的分配与回收

虚拟性,操作系统提供某种技术从逻辑上进行对内存空间的扩充。

操作系统提供地址转化功能,负责程序的逻辑地址与物理地址的转化。

操作系统提供内存保护,互不干扰:

   1.设计上下限寄存器,存放进程的上下限,用来查看是否越界

   2.采用重定位寄存器(基址寄存器),和界地址寄存器(限长寄存器)。界地址存放进程的最大逻辑地址、重定向寄存器存放起始地址,看看80+重定向起始地址是不是超过了界地址寄存器。

覆盖技术:解决程序大小超过内存总和。

猜你喜欢

转载自www.cnblogs.com/0123wtdd/p/10936308.html