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 分离进程与进程使用的数据,提高多个进程同时运行的可靠性。

  • 相关阅读:
    【转】win8.1下安装ubuntu
    Codeforces 1025G Company Acquisitions (概率期望)
    Codeforces 997D Cycles in Product (点分治、DP计数)
    Codeforces 997E Good Subsegments (线段树)
    Codeforces 1188E Problem from Red Panda (计数)
    Codeforces 1284E New Year and Castle Building (计算几何)
    Codeforces 1322D Reality Show (DP)
    AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
    Codeforces 1305F Kuroni and the Punishment (随机化)
    AtCoder AGC022E Median Replace (字符串、自动机、贪心、计数)
  • 原文地址:https://www.cnblogs.com/yanli0302/p/15215139.html
Copyright © 2011-2022 走看看