CSSAPP 阅读笔记 Chapter1

本文介绍了程序从源代码到可执行文件的整个编译流程,包括预处理、编译、汇编和链接等阶段。同时,还概述了计算机系统的硬件组成部分,如处理器、主存、高速缓存等,以及操作系统如何管理进程和线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全书内容的粗略概括,对后续章节的内容在总体上有大致了解。

程序的翻译过程及编译系统

预处理阶段

预处理器(cpp)根据命令修改原始程序,得到以 .i 作为文件扩展名的另一个程序。

编译阶段

编译器(ccl)将文本文件 ***.i 翻译成文本文件***.s,其中包含一个汇编语言程序。

汇编阶段

汇编器(as)***.s 文件翻译成机器语言指令,将指令打包成可重定位目标程序格式,并保存在二进制文件***.o 中。

链接阶段

链接器(ld)将程序中调用的库函数的目标文件合并到***.o 文件,得到可执行目标文件***

执行阶段

可执行文件被加载到内存中,由系统执行。

系统的硬件组成

总线

贯穿于系统的一组电子管道,负责携带信息字节在各部件间传递。

I/O设备

系统与外界的联系通道,每个设备通过一个控制器或适配器与I/O总线连接。

主存

一组动态随机存取存储器(DRAM)芯片组成的临时存储设备,用于存放程序执行时的程序及其处理的数据。

处理器

执行存储在主存中指令的引擎,包含程序计数器(PC)寄存器文件算术逻辑单元(ALU)

高速缓存

暂时存储区域,存放处理器近期可能需要的信息。用于解决处理器与主存之间读取数据的速度和存储容量的差距。

存储器层次结构

在该结构中,从上至下,设备访问速度越来越慢,容量越来越大,每字节造价越来便宜。寄存器文件在层次结构中位于最顶部,记为L0。

主要思想:一层上的存储器作为低一层存储器的高速缓存。

操作系统管理

进程

操作系统对一个正在运行的程序的一种抽象。

上下文:进程运行所需的所有状态信息。

上下文切换:操作系统保存当前进程的上下文、恢复新进程的上下文,将控制权从当前进程传递到新进程。

线程

组成进程的执行单元,运行在进程的上下文中,共享同样的代码和数据。

虚拟存储器

将所有存储器看成一个一致的存储器,抽象为一整个虚拟地址空间。

计算机系统的抽象

文件:对I/O设备的抽象。

虚拟存储器:对程序存储器的抽象<主存+I/O设备>

进程:对正在运行的程序的抽象<处理器+主存+I/O设备>

虚拟机:对整个计算机的抽象<操作系统+处理器+主存+I/O设备>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值