内存基础

  • 内存存储数据与指令,如果想让数据交给cpu进行处理,需要将数据放入内存。
  • 内存一般按字/字节进行编址
  • 指令一般包含操作码以及若干参数,有些参数是存储在内存当中的,表明的就是内存的地址
  • 逻辑地址:在程序编译链接之后生成的可执行文件里的指令中表明的地址是逻辑地址,而这个逻辑地址,是相对于进程的起始地址。也就是编译链接后逻辑认为这些指令与数据放在一片连续的空间中,这个逻辑空间也会按照字/字节进行编址,其中指令里面表明的地址就是这个变量在逻辑空间的地址
  • 物理地址:内存的客观编址的地址。因为程序只有装入内存才能够运行。而进行编译链接后的可执行文件中的地址只是逻辑地址,CPU运行需要知道数据的物理地址。所以操作系统需要提供进程的逻辑地址到物理地址的映射机制

装入方式

上述已经说明,逻辑地址在载入内存时候需要进行到物理地址的映射。
装入方式:

  1. 绝对装入
    在编译的时候,如果知道程序将要放到内存的具体位置,就可以将逻辑地址替换为绝对地址。灵活性非常差,一般只能单道程序环境。而且换一台电脑就没法用了。
  2. 静态重定位
    在程序装入内存进行地址转换,将所有的逻辑地址加/减上一个数。缺点是必须为这个进程第一次就分配全部的内存空间。而且在装入内存之后不能调整进程在内存中的位置
  3. 动态重定位
    在程序运行的再进行逻辑地址到物理地址的映射。装入内存时候并不将逻辑地址转换为物理地址,只有在该指令运行的时候,将逻辑地址转换为物理地址。这个方法需要一个寄存器。这个寄存器里面存装入内存的初始地址,然后逻辑地址加上这个寄存器的值就可以得到物理地址。
    优点:可以将程序分配到不连续的存储区,可以动态分配内存空间等。

链接

整体的程序需要经历编译再链接再装入这个过程。
一般在编写程序都是按照模块进行编写,模块内部的程序的逻辑地址就是模块内的逻辑地址。那么如果有好几个程序模块需要组装起来就需要就该这些模块的逻辑地址。相当于这几个分散的逻辑空间要组合成一个更大的逻辑空间。每个逻辑地址需要修改为这个新的逻辑空间的地址。
链接也有三种方法:

  1. 静态链接:在程序运行之前就跟库函数链接成一个完整执行文件,之后不再拆分
  2. 装入时动态链接:将各个目标模块装入内存时候,边装入边链接
  3. 运行时动态链接:在程序执行需要用到这个模块时,才对他调入内存进行链接

【操作系统复习】ch3 内存基础相关推荐

  1. 北京理工大学操作系统复习——习题+知识点

    文章目录 传送门 前言 ppt习题+课后习题汇总 第1章 操作系统概论 操作系统性能指标计算 第2章 进程管理 进程调度算法 课后2-9:最短作业优先 课后2-12:四种算法比较 课后2-13:轮转与 ...

  2. 【操作系统复习】物理地址虚拟地址

    [操作系统复习] 物理地址虚拟地址 物理地址和虚拟地址的区别 物理地址 逻辑地址 线性地址 为什么要分成物理地址和虚拟地址 物理内存及虚拟内存定义 为什么要有虚拟内存 虚拟内存的实现(可以在页式或段式 ...

  3. 我的操作系统复习——进程(下)

    上一篇博客是复习操作系统进程篇的上篇,包括进程状态.PCB.进程控制等--我的操作系统复习--进程(上),本篇博文是进程篇的下篇,开始复习进程同步.进程通信,以及重要的线程概念. 一.进程同步 什么是 ...

  4. 操作系统复习--OS的运行机制和体系结构

    操作系统复习–OS的运行机制和体系结构 本文章按照王道操作系统参考 文章主要分:运行机制,操作系统内核,操作系统的体系结构 运行机制 两种命令 特权指令:不允许用户直接使用的命令,如:I/O,中断命令 ...

  5. Linux系统诊断实践-内存基础

    简介:Linux系统诊断-内存基础 1. 背景 谈及linux内存,很多时候,我们会关注free,top等基础命令.当系统遇到异常情况时,内存问题的根因追溯,现场诊断时,缺乏深层次的debug能力.本 ...

  6. Linux系统诊断-内存基础

    简介: Linux系统诊断-内存基础 1. 背景 谈及linux内存,很多时候,我们会关注free,top等基础命令.当系统遇到异常情况时,内存问题的根因追溯,现场诊断时,缺乏深层次的debug能力. ...

  7. c语言缓冲池管理算法,操作系统复习资料

    操作系统复习资料 第一章操作系统概论 一.选择 1.操作系统的基本类型主要有__________. A.批处理系统.分时系统和多任务系统 D.实时系统.分时系统和多用户系统 2.操作系统的______ ...

  8. 中职计算机操作系统,中职计算机应用基础操作系统试题

    计算机操作系统,考试题 <计算机应用基础>试卷 一.选择题(每题2分,共40分)将答案填在下面的格子里. 1. Windows2000是一个( ) A.单用户单任务系统 B.单用户多任务系 ...

  9. Linux操作系统快速入门|Linux操作系统(一)基础知识

    Linux操作系统(一)基础知识 linux官方网站:https://www.linux.org/ linux中国:https://linux.cn/ 前言        准备把以前在知乎上写的一些文 ...

最新文章

  1. ETSI GS MEC 012,RNIS API
  2. 【功能升级】达摩盘3.0全新标签介绍前言
  3. 转载:谢谢原作者:块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)
  4. linux网络相关配置
  5. 机器学习从入门到精通50讲(四)-实时数仓应用实践案例
  6. 【C#公共帮助类】 Image帮助类
  7. linux显示系统信息软件下载,linux查看系统信息软件安装信息命令学习笔记
  8. python3urllib常见使用_Python3 urllib常用操作
  9. Linux Shell脚本入门教程系列之(二)第一个shell脚本
  10. 图解浏览器缓存,教你提高用户体验
  11. 幸福框架:模式驱动开发
  12. Postman系列之基本操作及设置
  13. 跨域问题,解决方案-Nginx反向代理
  14. 全球前十大证券交易所在区块链领域的探索和布局
  15. java使用itext实现把数据库中查到的数据转换成pdf
  16. java编程删除文本框_Java获取和删除Word文本框中的表格
  17. 进击的Libra:路在何方?中国应如何应对?
  18. 什么是RSS?RSS是什么
  19. 《Android Studio从入门到精通》读后感,电子书PDF百度网盘下载
  20. jpg怎么压缩大小?jpg图片如何压缩大小kb?

热门文章

  1. 向大家推荐本小虾的个人网站!!!
  2. 机器学习笔记入门 (六)训练自己的数据
  3. nvm 下载安装及相关命令
  4. 大型企业信息安全管理实践(05年第六期)
  5. 基于智能合约的状态机设计
  6. JMeter(1) 安装与配置
  7. 【tomcat】01-tomcat启动主要流程
  8. 首届服务网格峰会明日开幕
  9. 猫叔产品读记 | 爆款车厘子、重做消费品、旅游大数据(1期) 1
  10. python筛选同义词_关于python:使用WordNet查找同义词,定义和例句