程序员的自我修养-略读

第一部分 操作系统架构

第一章
操作系统对于进程和线程的内存分配和处理。

​ 进程地址空间:操作系统给每个进程的假定的内存空间,32位系统一般为4G,操作系统使用struct结构体管理进程地址空间,然后将实际内存与进程地址空间进行映射,实现内存管理与进程管理的分离。

​ 线程:拥有独立的寄存器,堆栈,以及PC指针(指向下一条指令)。共享进程的内存空间,代码段,数据段,堆以及打开文件和信号。

​ 线程安全:可重入和不可重入函数。

​ 线程模型:用户的线程对应kernel pthread,一对一,多对一,多对多。kernel pthread 阻塞是真正的阻塞。

第二部分 静态链接

第二章编译和链接

​ 预编译->编译->汇编->链接。

​ 编译器需要做

​ 词法分析:检测程序标识符,符号等等是否定义和有效。

​ 语法分析,利用语法树分析,使用工具改变语法规则。

​ 语义分析:分为静态语义和动态语义。

​ 中间代码生成:然后对中间代码优化成目标代码。

​ 链接器需要做:

​ 地址和空间分配,

​ 符号决议

​ 重定位:静态链接将多个可执行文件链接时重新定位内存地址。

第三章 目标文件的格式(ETF)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值