type
status
date
slug
summary
tags
category
icon
password
- 任何数据都最终是一串比特,此时区分数据对象靠的是上下文
- 程序被其他程序翻译成不同的格式
.c--cpp预处理器-->.i--ccl编译器-->.s汇编文本--as汇编器-->.o二进制--ld链接器-->可执行
可执行能被加载到内存,被系统执行
- 在终端输入命令./hello,可执行该文件,此时shell是命令解释器,使用了系统调用的函数,将控制权交给操作系统,后者保存shell进程的上下文,并创建helllo进程,将控制权交给hello进程,当hello进程终止后,操作系统恢复shell上下文,将控制权交给后者。
- 关于系统的硬件组成,建议看一下csapp—p6的图,以及p5文末的几种对象,如传递着字的总线(图上显示有几种),I/O设备与I/O总线相连所必备的控制器(如鼠标USB)或是插在主板上的适配器(如网络适配器)等
- 主存,是一个临时存储设备,有一组DRAM芯片组成,逻辑上讲是一个线性的字节数组
- 关于cpu,又称处理器,用于解释或执行存储于主存中的指令,其核心为一个一个字大小的寄存器--程序计数器(PC),后者存储指令的地址,cpu从有电到停电,不断执行pc所指向命令并更新使其只想下一个命令,这就像是一个指令执行模型,而这个模型由指令性架构决定。
现代处理器采取了复杂的机制加速程序运行,分为指令架构和微体系架构,前者描述每条机器代码指令的效果,后者描述处理器具体如何实现。
- DMA,直接存储器存取,是数据可以直接从磁盘到内存(按理数据都要到cpu过一遍,操作一遍,再下放到某存储器)
- 因为系统要花大量时间将信息从一个地方移到另外一个地方,所以降低这种时间成本很重要,于是,针对于处理器与主存的速度差异,高速缓存存储器变出现了。如L1,L2(具体见p9),使用SRAM(静态随机访问存储器)实现
- 将高速与低速设备之间插入缓存,是一种重要概念,由此,形成了存储层次(见p10)
- 可以把操作系统想象成应用程序与硬件之间插入的一层软件。
- 操作系统通过几个抽象概念完成其功能,见p10图,p19图,注意虚拟内存现实中不光有主存,还有I/O,而在抽象中,往往使进程看的的成为虚拟地址空间,见p13图,从下往上包含文件加载来的,堆(动态),共享库的内存映射区,栈(动态),内核虚拟内存(用户不可见)
- 操作系统实现进程并发的交错机制被称为上下文切换,上下文是保持跟踪进程所需的状态信息,当操作系统将控制权从一进程交给二进程时,就会发生上下文切换
- 内核:是操作系统管理进程所用代码和数据结构的集合,不是一个独立的进程。
- 网络有时也可看成I/O设备
- Amdahl定律
- 并发可被当作一个通用概念,即一个同时具有多个活动的系统;而并行可以只用并发使计算机更快,可在多个抽象层次上运用
线程级并发(超线程)指令级并发单指令,多数据并发
- 作者:Alex
- 链接:https://nextme.one/wureny.eth/article/manyou
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。