1、温故而知新

计算机

1、计算机的概念和构成都很复杂,但从系统程序开发者的角度,只需重点关注CPU, 内存, IO控制器即可,而对于普通的程序开发可能只需要关注cpu或者连cpu都不需要关注。
2、北桥,协调cpu、内存等高速设备之间高速的进行数据交换
3、南桥,专门处理低速设备的数据传输,低速设备数据汇总后将导向北桥
4、SMP,symmetrical multi-processing,对称多处理器
5、多核,保留多个cpu核心,但核心之间共享缓冲

计算机软件体系结构

通常将计算机的软件体系结构以分层结构形式表示,如下
--应用程序|开发工具(通常调用下层的应用程序编程接口,POSIX,WIN32)
--运行时库(通常调用下层提供的系统调用)
--操作系统(通常调用驱动提供的接口,硬件规格)
--硬件层
其中
1、开发工具、运行时库、操作系统属于系统软件(包括两类平台相关的和开发相关的)
2、操作系统,主要提供两个功能,提供抽象的接口系统调用,管理硬件资源(CPU\存储器\IO设备)
多道程序->分时系统->多任务系统(设置运行级别,可抢占)

内存管理

1、VA,vitual address,为管理将有限的物理内存分配给多个程序使用,引入的虚拟地址的概念,并利用MMU处理多任务时物理地址和虚拟地址之间的映射关系。
2、paging,分页,人为的将存储空间分成相等大小的页,通常大小4k or 4M。可分为vp(virtual page),pp(physical page),dp(disk page)。

线程

1、概念:线程是轻量级的进程,程序执行流的最小单元,由线程id,当前指令指针,寄存器和堆栈构成
2、访问权限,内存中的很多数据,线程可以直接访问,故多线程在共享数据方面有比较好的效率,但线程内部也可以有私有的变量,例如局部变量,TLS,函数参数等
3、线程调度,线程通常包含三种状态:运行(正在执行)就绪(可以运行就差cpu)等待(等待某个非cpu资源可用)。

你可能感兴趣的:(1、温故而知新)