zoukankan      html  css  js  c++  java
  • 操作系统-内存使用与分段

    1. 从计算机如何工作开始

    首先让程序进入内存

    重定位:修改程序中的地址(是相对地址)

    程序载入后还需要移动

    重定位的最合适时机---运行时重定位

    首先在内存中找一段空闲的内存,然后把这段空闲内存的地址找到例如起始地址1000,然后把这个1000赋给PCB,因为创建了进程自然就有了PCB,这个起始地址就作为基地址,然后PC置好初始地址开始执行。

    把程序放到找到的空闲内存中,每次执行都有进行地址翻译

    基地址+偏移量
    思路如下:

    当进行交换时

    2. 引入分段

    是将整个程序一起载入内存中吗?不是

    程序员眼中的程序

    每一个段都有一个基址

    GDT+LDT

    操作系统这个表放在GDT里,而每个进程有自己的LDT表(进程段表,在PCB中)

    此时转换的时候不是整个程序,而是程序中对应的段进行转换

  • 相关阅读:
    ObjectiveC分类
    显示时间格式
    js模拟签名
    安装卸载homebrew
    NSFastEnumeration
    拼接音频
    在Orchard模块中访问模块本地的AppSettings
    重装证书
    msysgit中文问题
    Apple Push Notification service
  • 原文地址:https://www.cnblogs.com/mengd/p/12527493.html
Copyright © 2011-2022 走看看