zoukankan      html  css  js  c++  java
  • ADM manual V2 :: chapter 1: system programing

    System Programing
    第一章主要讲系统进程的基本概念, 为软件写汇编的程序员提供信息。编写操作系统、加载器、链接器、设备驱动程序或需要访问系统资源的实用程序的程序员。这些系统资源通常只对以最高权限级别(CPL=0)运行的软件可用,也称为特权软件。CPL 共四级, 0~3, CPL=0 权限最高。

    1. memory model
      内存地址:
      long mode 下,memory model 是一块flash memory,segment =0, virtual adress = effective adress
      为方便寻址,内存地址分为以下四类:
      (1)logic address = segment_base :effective adress, // 一种寻址方式, eg: mov reax, [0:0xfff00]
      (2) Effective Address = Base + (Scale x Index) + Displacement // 有效地址又称为偏移地址,相当于对一个segment的偏移, 大小按照左边方式任意组合
      (3) Linear Address = Segment Base Address + Effective Address // long model 下, Segment Base等于0, virtual adress = effective adress,但是 virtual address 和 logic address 是两种不同的概念。
      (4) physic address // 实际的物理地址, 即真实的硬件地址。
      内存组成:
      在CPU中, 内存分为虚拟内存和物理内存, 虚拟内存是虚拟地址访问的内存空间,供程序员使用,有多少位的地址线, 就可以有多大的虚拟地址。比如32bit的寻址方式,在程序员看来,有4G的访存空间可用。 故, long Mode, 虚拟内存有 16艾字节(2^64), protected Mode 4G 字节。 物理内存大小其实就安装到机器上的内存条可用大小。根据页表管理, 内存条 大小, 但是实际可以大小与 long mode / protected mode 有关。 由于实际经费考虑, 并不会真的在long mode 下使用64 bit访存空间, 实际默认空间是 1太字节(2^40 bit访存), 当PAE bit 打开时, long model 扩展内存为 4拍字节(2^52 bit访存)。protected 实地址模式,20bit访问地址,对应物理地址空间为1M。 对于不使用的高位地址,默认为全0 或者全1, 这种地址格式称为标准格式,违反标准格式,软件产生 General Exception #GP(0).
      另外,通常情况下,虚拟地址是大于物理地址的, 比如你的内存条256G,虚拟内存1太字节,为了解决这种空间不匹配关系, os会把划分硬件磁盘空间作为虚拟内存,作为拓展内存。

    2. memory management
      segmentation 分离进程与进程使用的数据,提高多个进程同时运行的可靠性。

  • 相关阅读:
    java中的静态代理、jdk动态代理和cglib动态代理
    第三方支付熟悉
    C#进制转换
    维翔主机asp主机使用遇到的问题及解决方案总结
    windows上JSP开发环境全搭建
    文件校验工具的开发及问题
    C#加密算法总结
    WampServer搭建php环境可能遇到的问题
    分分钟搭建自己的微信聊天机器人
    KindEditor编辑器在ASP.NET中的使用
  • 原文地址:https://www.cnblogs.com/yanli0302/p/15215139.html
Copyright © 2011-2022 走看看