zoukankan      html  css  js  c++  java
  • 程序员的自我修养-读书笔记(1)

    1. 温故而知新

    1.2万变不离其中

    三个核心部件:CPU,内存,I/O控制芯片

    北桥芯片(PCI 桥):协调CPU,内存,高速图形设备。PCI总线之后又有AGP, PCI express

    南桥芯片(ISA 桥):协调USB,键盘,鼠标

    1.4 不要让CPU打盹

    分时系统:W95, mac os x之前的系统

    多任务:unix,linux,win NT

    2) Windows中,图形硬件抽象成了GDI, 多媒体设备抽象为DirectX, 磁盘为文件

    3)硬盘的基本存储单位为扇区,比如,一个硬盘2个盘片,就是4个盘面,每个盘面多个磁道(同心圆),每个磁道多个扇区。

    4)VA到物理地址PA之间的映射靠硬件MMU实现

    1.6 众人拾柴火焰高

    1) 线程组成:线程ID,PC,寄存器,堆栈

    2)当线程数<=CPU数,线程才是真正地并发

    3)线程核心三状态:运行,就绪,等待

    4)windows有明显的线程进程概念,而linux只有task(单线程的进程)

    5)线程同步:

         信号量(二元和多元):可以A线程获取,B线程释放

         互斥量:同一个线程获取和释放

         临界区:只能本线程使用

         读写锁:上面三种效率低(如频繁读取,偶尔写入),采用共享或独占方式

    6)过度优化可能导致多线程不能同步(如在寄存器中不写回内存,CPU调整代码执行顺序)

        volatile 不优化,可以阻止寄存器不写回

    2.5 静态链接

    1)库就是目标文件的包,如运行时库

    2)各个模块独自编译,并不知道其他模块的地址,所以需要链接来重新统一分配地址。叫重定位。

  • 相关阅读:
    面向接口程序设计思想实践
    Block Chain Learning Notes
    ECMAScript 6.0
    Etcd Learning Notes
    Travis CI Build Continuous Integration
    Markdown Learning Notes
    SPRING MICROSERVICES IN ACTION
    Java Interview Questions Summary
    Node.js Learning Notes
    Apache Thrift Learning Notes
  • 原文地址:https://www.cnblogs.com/yuanming/p/4711317.html
Copyright © 2011-2022 走看看