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

  • 相关阅读:
    [原创] 分享一些linux教程
    [转] linux中pam模块
    [转] 虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
    [转] linux中常用的命令
    dede调用指定的多个栏目导航
    dede留言板BUG解决
    织梦如何实现二级栏目导航的仿制
    DEDE数据库修改
    任务管理器磁盘显示100%
    再次改版轮播图
  • 原文地址:https://www.cnblogs.com/yuanming/p/4711317.html
Copyright © 2011-2022 走看看