程序基础知识
对称多处理器 (SMP, Symmetrical Multi-Processing) 多核处理器(Multi-core Processor) 应用程序接口(Application Programming Interface) 系统调用接口(System call Interface) 软件中断(Software Interrupt) 硬件规格(Hardware Specification) 多道程序(Multiprogramming) 分时系统(Time-Sharing System) 多任务系统(Multi-tasking System) 进程(Process) 抢占式(Preemptive) 硬件驱动(Device Driver) 扇区(Sector) LBA(Logical Block Address)即整个硬盘中所有的扇区从0开始编号,一直到最后一个扇区,这个扇区编号叫做逻辑扇区号。逻辑扇区号抛弃了所有复杂的磁道、盘面之类的概念。 虚拟地址空间(Virtual Address Space) 物理地址空间(Physical Address Space) 分段(Segmentation)基本思路是把一段与程序所需要的内存空间大小的虚拟空间映射到某个地址空间 分页(Paging)基本方法是把地址空间人为地等分成固定大小的页,每一页的大小由硬件决定,或硬件支持多种大小的页,由操作系统选择决定页的大小。 虚拟页(VP Virtual Page) 物理页(PP Physical Page) 磁盘页(DP Disk Page) 页错误(Page Fault) MMU(Memory Management Unit) 虚拟地址到物理地址的转换 flowchart LR CPU --> |Vitual Address| MMU --> |Physical Address| PhysicalMemory 线程(Thread)有时被称为轻量级进程(Lightweight Process, LWP)是程序执行流的最小单元。一个标准的线程由线程 ID、当前指令指针(PC)、寄存器集合和堆栈组成。 线程私有 线程之间共享 (进程所有) 局部变量 全局变量 函数的参数 堆上的数据 TLS(Thread Local Storage)数据 函数里的静态变量 程序代码,任何线程都有权利读取病执行任何代码 打开的文件,A线程打开的文件可以由B线程读写 在单处理器对应多线程的情况下,并发是一种模拟出来的状态。操作系统会让这些多线程程序轮流执行,每次仅执行一小段时间(通常是几十到几百毫秒),这样每个线程就“看起来”在同时执行。这样的一个不断在处理器上切换不同的线程的行为称之为线程调度 (Thread Schedule)。在线程调度中,线程通常拥有至少三种状态 ...