存储管理

内存的作用:

为了运行程序必须把程序从磁盘中载入到内存,内存和寄存器时cpu唯一能直接访问的存储器
操作系统----存储管理

存储体系:

操作系统----存储管理存储器=内存+外存

内存:

1.由存储单元(字节或字) 组成的一维连续的地址空间, 简称内存空间
2.用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、 亦即程序计数器所指的存储器

内存管理目的 :

地址保护: 一个程序不能访问另一个程序地址空间
地址独立: 程序发出的地址应与物理主存地址无关
内存可以分为:
系统区: 用于存放操作系统常驻内存部分, 用户不能占用这部分内存
用户区: 分配给用户使用, 用于装入并存放用户程序和数据
存储管理的对象——用户区

内存管理—如何记录内存使用情况

分配内存时,操作系统必须对其进行管理。有两种方式可用来跟踪内存使用情况:位图 链表
使用位图:内存被划分成分配单元,可能小到几个字,也可能大到几千字节。每个分配单元对应于位图中的一位,0表示空闲,1表示占用(或者相反)。

操作系统----存储管理内存分配:把一个占有K个分配单元的进程调入内存时,存储管理器搜索位图,在位图中找出有K个连续0的内存分配单元。
使用链表:维护一个记录已分配和空闲内存段的链表,其中,段是指一个进程,或者是两个进程间的空闲区。
表中的每一项都指定了如下内容:空闲区(H)还是进程§、起始地址、长度以及指向下一项的指针。
没有抽象
每个程序直接访问物理内存。 内存中不能同时运行两个程序
因为同一时刻只有一个进程运行,并行只能线程
单道程序
操作系统----存储管理

一种存储器抽象-地址空间
地址空间:一个进程可用于寻址内存的一套地址集合。
每个进程都有一个自己的地址空间。并且这个地址空间独立于其它进程的地址空间。
地址空间:源程序经编译后目标程序所在的一个地址范围,通常从0开始。—逻辑地址
存储空间:内存中的物理存储单元的集合。——物理地址
用户在程序中使用的是逻辑地址,用于内存访问之前要转换为物理地址——重定位
重定位:逻辑地址到物理地址的映射。

操作系统----存储管理 此时需要加入基地址寄存器来进行动态重定位
基址寄存器:程序的起始物理地址
界限寄存器:程序的长度
在访问内存时,进程生成的每个地址都自动加上基址寄存器的内容。因此,如果基址寄存器的值为100K,CALL 100指令实际上被转换为CALL 100K + 100,指令本身不必修改。
边界寄存器自动检查指令,以确保它们没有试图访问当前分区以外的地址。由硬件保护基址和边界寄存器,以防止用户程序修改它们。

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

相关文章: