![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深入理解操作系统(读书笔记)
文章平均质量分 95
深入理解计算机系统(原书第3版)
Hani_97
Stay hungry,stay foolish。
展开
-
深入理解操作系统(29)第十章:虚拟存储器(6)垃圾收集器+C程序中常见的与内存有关的错误(包括:访问非法内存/读写未初始化的指针/越界或数组缓冲区溢出/指针优先级操作的问题/传值和传指针/野指针)
深入理解操作系统(29)第十章:虚拟存储器(6)C程序中常见的与内存有关的错误(包括:访问非法内存/读写未初始化的指针/越界或数组缓冲区溢出/指针优先级操作的问题/传值和传指针/野指针)1. 垃圾收集器的基本知识(略)2. C程序中常见的与内存有关的错误2.1 间接引用坏指针(访问非法内存,段错误)2.2 读未初始化的存储器(读写未初始化的指针)2.3 允许栈缓冲区溢出(数组缓冲区溢出)2.4 假设指针和它们指向的对象都是相同大小的2.5 造成错位错误(越界或者缓冲区溢出)2.6 引用指针,而不是它所指向的原创 2022-02-06 22:17:59 · 1244 阅读 · 2 评论 -
深入理解操作系统(28)第十章:虚拟存储器(5)动态内存分配(堆/malloc,free,calloc,sbrk/吞吐率/交换空间/内外部碎片/隐式,显式空闲链表/放置策略/带边界标记的合并/分离存储
深入理解操作系统(28)第十章:虚拟存储器(4)动态内存分配(堆/malloc,free,calloc,sbrk/吞吐率/交换空间/内外部碎片/隐式,显式空闲链表/放置策略/带边界标记的合并/分离存储和适配/伙伴系统)1. 堆1.1 linux下,堆是一个请求二进制零的区域1.2 显示和隐式释放2. malloc 和 free2.1 malloc2.2 calloc realloc sbrk free3. 为什么要使用动态内存分配4. 分配器的要求和目标4.1 分配器要求4.2 两个目标:最大化吞吐率和存储原创 2022-01-26 10:42:50 · 769 阅读 · 0 评论 -
深入理解操作系统(27)第十章:虚拟存储器(4)存储器映射(两种映射对象/交换空间/共享和私有对象/写时拷贝COW/fork过程/execve过程/mmap)
深入理解操作系统(27)第十章:虚拟存储器(4)存储器映射(两种映射对象/交换空间/共享和私有对象/写时拷贝COW/fork过程/execve过程/mmap)1. 存储器映射1.1 存储器映射1.1.1 存储器映射-定义1.1.2 映射的两种对象类型1.1.3 交换空间1.2 再看共享对象1.2.1 存储器映射的历史1.2.2 进程共享对象和私有对象1.2.3 写时拷贝(copy-on-write)1.3 再看fork函数1.4 再看execve函数1.5 使用mmap函数的用户级内存映射1. 存储器映射原创 2022-01-20 20:14:59 · 1561 阅读 · 0 评论 -
深入理解操作系统(26)第十章:虚拟存储器(3)案例研究:Pentium/Linux内存系统(Pentium存储器系统,地址翻译/linux 虚拟存储器区域,缺页异常处理)
深入理解操作系统(26)第十章:虚拟存储器(3)案例研究:Pentium/Linux内存系统(Pentium存储器系统,地址翻译/linux 虚拟存储器区域,缺页异常处理)1. Pentium 存储器系统1.1 Pentium 存储器系统的重要部分组成1.2 Pentium 地址翻译1.2.1 Pentium 页表1.2.2 Pentium 页表翻译1.1.3 Pentium TLB翻译2. linux 虚拟存储器系统2.1 linux 虚拟存储器区域2.1.1 一个linux进程虚拟存储器(图)2.2 l原创 2022-01-20 20:13:14 · 1041 阅读 · 0 评论 -
深入理解操作系统(25)第十章:虚拟存储器(2)虚拟内存作为内存管理的工具+保护工具+地址翻译(虚拟内存的优点/段错误定义/PTBR/页面命中和缺页/TLB和TLB命中/多级页表/例子:端到端的地址翻
深入理解操作系统(25)第十章:虚拟存储器(2)虚拟内存作为内存管理的工具+保护工具+地址翻译(虚拟内存的优点/段错误定义/PTBR/页面命中和缺页/TLB和TLB命中/多级页表/例子:端到端的地址翻译)1. 虚拟内存作为内存管理的工具1.1 简化链接1.2 简化共享1.3 简化内存分配1.4 简化加载(存储器映射 mmap系统调用)2. 虚拟内存作为内存保护的工具2.1 保护机制2.1 段错误 定义3. 地址翻译3.1 地址翻译定义及例子说明3.1.1 地址翻译定义3.1.2 使用页表的地址翻译3.1.3原创 2022-01-18 19:44:45 · 1535 阅读 · 0 评论 -
深入理解操作系统(24)第十章:虚拟存储器(1)物理和虚拟寻址+地址空间+虚拟内存作为缓存的工具(地址翻译/线性地址空间/物理,虚拟页/页帧/DRAM缓存/页表/页命中/缺页/交换,页面调度
深入理解操作系统(24)第十章:虚拟存储器(1)物理和虚拟寻址+地址空间+虚拟内存作为缓存的工具(地址翻译/线性地址空间/物理,虚拟页/页帧/DRAM缓存/页表/页命中/缺页/交换,页面调度/分配页面)1. 前沿1.1 虚拟存储器(VM)定义1.2 虚拟存储器的三个重要的能力1.3 虚拟存储器自动地工作,不需要干预1.4 理解虚拟存储器的重要性1.4.1 理解虚拟存储器的三个原因1.4.2 本章从两个角度来讨论虚拟存储器1.5 参考:虚拟地址空间2. 物理和虚拟寻址2.1 物理主存就是一个大数组2.2 物理原创 2022-01-14 17:49:13 · 549 阅读 · 0 评论 -
深入理解操作系统(23)第九章:测量程序执行时间(记录时间流逝的两种基本机制/时间尺度(微观和宏观)/计时器中断/间隔时间/time计时/gettimeofday)
深入理解操作系统(23)第九章:测量程序执行时间(记录时间流逝的两种基本机制/时间尺度(微观和宏观)/计时器中断/间隔时间/time计时/gettimeofday)1. 前沿1.1 记录时间流逝的两种基本机制1.2 没有专业的性能测量工具2. 计算机系统上的时间流2.1 时间尺度2.1.1 两种不同的时间尺度(微观+宏观)2.1.2 解释:人感觉机器同时执行任务2.1.3 计算机系统事件的时间尺度2.2 进程调度和计时器中断2.2.1 外部计时器(间隔时间 1-10ms)2.2.2 例子说明(150ms的操原创 2022-01-12 17:46:31 · 1174 阅读 · 0 评论 -
深入理解操作系统(22)第八章:异常控制流(3)信号(kill/alarm/信号的默认行为/signal/sigaction/程序对多个信号的处理机制/信号集/sigprocmask/strace工具
深入理解操作系统(22)第八章:异常控制流(3)信号(kill/alarm/信号的默认行为/signal/sigaction/程序对多个信号的处理机制/信号集/sigprocmask/非本地跳转seqjmp,longjmp/strace工具)0. 前沿-linux系统上的常用信号1. 信号术语2. 发送信号2.1 getpgrp setpgid2.2 用程序发送信号2.3 从键盘发送信号2.4 用kill 和 alarm 函数发送信号2.4.1 kill及代码例子2.4.2 alarm及代码例子3. 接收信原创 2022-01-11 17:45:24 · 588 阅读 · 0 评论 -
深入理解操作系统(21)第八章:异常控制流(2)系统调用和错误处理+进程控制(400个系统调用/errno/exit参数和返回值说明/fork/execve/waitpid/用户栈的组织结构)
深入理解操作系统(21)第八章:异常控制流(2)系统调用和错误处理+进程控制(400个系统调用/errno/exit参数和返回值说明/fork/execve/waitpid/用户栈的组织结构)1. 系统调用和错误处理1.1 目前,linux提供了大约400个系统调用1.2 包装函数+errno检查2. 进程控制2.1 获取进程ID2.2 创建进程 fork2.2.1 fork返回值2.2.2 fork父子进程的异同2.2.3 例子1:简单fork例子说明:2.2.4 fork 详细说明2.2.5 例子2:多原创 2022-01-08 18:04:47 · 647 阅读 · 0 评论 -
深入理解操作系统(20)第八章:异常控制流(1)异常+进程(控制转移/控制流/ECF/异常表,号,类型/中断/陷阱/故障/终止/上下文切换/逻辑控制流/并发/多任务/时间片/地址空间/用户和内核模式/
深入理解操作系统(20)第八章:异常控制流(1)异常+进程(控制转移/控制流/ECF/异常表,号,类型/中断/陷阱/故障/终止/上下文切换/逻辑控制流/并发/多任务/时间片/地址空间/用户和内核模式/高速缓存污染)1. 前沿1.1 控制转移和控制流1.2 ECF 异常控制流1.3 理解ECF很重要1.4 本章内容2. 异常2.1 异常定义2.1.1 异常2.1.2 异常表2.2 异常处理2.2.1 异常号2.2.2 异常和过程调用的区别;2.3 异常的类型2.3.1 中断2.3.2 陷阱(系统调用)2.3.原创 2022-01-06 20:04:09 · 852 阅读 · 0 评论 -
深入理解操作系统(19)第七章:链接(3)加载可执行目标文件+动态链接共享库(main开始前的操作/加载器的工作过程/共享库背景/PIC/廷迟绑定)
深入理解操作系统(19)第七章:链接(3)加载可执行目标文件+动态链接共享库(a.out执行过程/加载/main开始前的操作/加载器的工作过程/共享库背景/PIC)1. 加载可执行目标文件1.1 可执行目标文件a.out执行过程1.1 加载1.2 进程运行时存储器映像(虚拟地址空间)1.3 main 开始前的操作1.4 加载器的工作过程2. 动态链接共享库2.1 共享库背景:2.1.1 静态库的缺点1:版本更新麻烦2.1.2 静态库的缺点2:内存空间浪费2.2 共享库2.3 共享库的"共享"的两个不同之处2原创 2022-01-04 21:04:18 · 1779 阅读 · 0 评论 -
深入理解操作系统(18)第七章:链接(2)符号解析+重定位+可执行目标文件(强弱符合/多个同名全局变量规则/静态库背景/libc.a和printf.o/链接器解析符号/重定位步骤,表目,类型/段头表)
深入理解操作系统(18)第七章:链接(2)符号解析+重定位+可执行目标文件(强符号弱符合/多个同名全局变量的规则/静态库背景,demo/libc.a和printf.o/链接器解析符号步骤/重定位的两个步骤/重定位表目,类型/段头表)1. 符号解析1.1 符号解析定义1.1.1 本地符号解析:1.1.2 全局符号解析:1.2 链接器如何解析多重定义的全局符号1.2.1 强符号和弱符合1.2.2 同名全局变量的三个规则!!!(重要)1.2.3 同名全局变量的三个规则例子说明1.3 与静态库连接1.3.1 静态库原创 2021-12-30 20:21:01 · 1702 阅读 · 0 评论 -
深入理解操作系统(17)第七章:链接(1)链接+目标文件+符号表(链接执行时机/编译器驱动程序/ld/链接器的两个任务/字节块/目标文件三种形式/COFF/readelf/COMMON/symtab)
链接原创 2021-12-29 17:57:04 · 796 阅读 · 0 评论 -
深入理解操作系统(16)第六章:存储器层次结构(2)高速缓存存储器+对程序性能的影响(包括:L1/L2高速缓存历史/缓存写:直写和写回/暂无L4级缓存/缓存命中率/存储器山/高速缓存友好的代码/)
深入理解操作系统(16)第六章:存储器层次结构(2)高速缓存存储器+对程序性能的影响(包括:L1/L2高速缓存历史/缓存写:直写和写回/暂无L4级缓存/缓存命中率/存储器山/高速缓存友好的代码/)1. 高速缓存存储器1.1 通用的高速缓存存储器组织结构1.1.1 L1/L2高速缓存由来1.1.2 通用的高速缓存存储器结构1.2 直接映射高速缓存1.3 组相联高速缓存1.4 全相联高速缓存1.5 有关写的问题1.5.1 高速缓读1.5.2 高速缓存写(直写和写回)1.6 指令高速缓存和统一的高速缓存1.6.1原创 2021-12-23 20:17:45 · 1082 阅读 · 0 评论 -
深入理解操作系统(15)第六章:存储器层次结构(1)存储技术+局部性+层次结构(包括:存储器系统/RAM,ROM,SRAM,DRAM,闪存flash/磁盘/(时间和空间)局部性/缓存命中)
深入理解操作系统(15)第六章:存储器层次结构(1)存储技术+局部性+层次结构(包括:存储器系统/RAM,ROM,SRAM,DRAM,闪存flash/磁盘/(时间和空间)局部性/缓存命中)1. 前沿1.1 简单的计算机系统模型1.2 存储器系统1.3 局部性原理1.4 不同存储结构的访问周期1.5 基本而持久的思想1.6 本章研究对象:1.6.1 扩展:RAM ROM SRAM DRAM 闪存flash2. 存储技术2.1 随机访问存储器2.1.1 静态RAM2.1.2 动态RAM2.1.3 常规DRAM2原创 2021-12-15 15:58:32 · 1738 阅读 · 0 评论 -
深入理解操作系统(14)第五章:优化程序性能(2)优化程序性能(包括:消除不必要的内存引用/ICU,EU/分支预测/投机执行/降低循环开销:循环展开/转换到指针/寄存器溢出/性能提高技术/gprof
深入理解操作系统(14)第五章:优化程序性能(2)优化程序性能(包括:消除不必要的内存引用/ICU,EU/分支预测/投机执行/降低循环开销:循环展开/转换到指针/寄存器溢出/性能提高技术/gprof)1. 消除不必要的内存引用2. 理解现代处理器2.1 整体操作2.1.1 ICU 和 EU2.1.2 分支预测2.1.3 投机执行2.2 功能单元的性能2.3 更近的观察处理器操作2.3.1 将指令翻译成操作2.3.2 执行单元的操作处理2.3.3 有无限资源的操作调度2.3.4 资源约束下的操作调度3. 降低原创 2021-12-10 18:01:08 · 1070 阅读 · 0 评论 -
深入理解操作系统(13)第五章:优化程序性能(1)表示程序性能+优化措施(包括:存储器別名使用/程序序性能表示:每元素的周期数(CPE)/降低循环低效率:(循环中)代码移动/循环中减少过程调用)
深入理解操作系统(13)第五章:优化程序性能(1)表示程序性能+优化措施(包括:程序示例/降低循环低效率/减少过程调用)1. 前沿1.1 高效程序的两类活动1.2 开发和优化过程中的关键因素1.3 本章目标-提高代码性能1.3.1 妨碍优化因素1.3.2 两种编译技术: 与机器无关 和 与机器有关1.3.3 代码剖析程序(profilers)2. 优化编译器的能力和局限性2.1 编译器优化程序受限制的几个因素2.2 例子说明2.2.1 例子2.2.2 妨碍优化因素一:存储器別名使用2.2.3 妨碍优化因素二原创 2021-12-03 17:07:31 · 1515 阅读 · 0 评论 -
深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI)
深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI)1. Y86-64的流水线实现1.1 插入流水线寄存器1.1.1 PIPE-抽象试图1.1.2 例子说明1.2 对信号进行重新排列和标号1.3 预测下一个PC1.3.1 预测PC的下一个值,来实现每时钟周期都发射一条新指令1.3.2 分支预测1.3.3 分支预测策略1.3.4 带堆栈的返回地址预测1.4 流水线冒险1.4原创 2021-12-02 14:50:40 · 1952 阅读 · 2 评论 -
深入理解操作系统(11)第四章:处理器体系结构(3)流水线的通用原理(包括:吞吐量/流水线的操作/流水线的局限性/流水线的实现)
深入理解操作系统(11)第四章:处理器体系结构(3)Y86流水线通用原理+实现(包括:吞吐/流水线操作,局限性,实现/PIPE-/预测PC/分支预测/流水线冒险/暂停,转发避免冒险/CPI/PPE结构及实现)1. 流水线的通用原理1.1 计算流水线1.1.1 非流水线化的硬件系统例子1.1.2 三阶段流水线1.2 流水线操作的详细说明1.3 流水线的局限性1.3.1 不一致的划分1.3.2 流水线过深,收益反而下降1.4 带反馈的流水线系统2. Y86-64的流水线实现2.1 插入流水线寄存器2.1.1 P原创 2021-12-02 14:33:54 · 1500 阅读 · 1 评论 -
深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)
深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指/解码/执行/访存/回写/更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)1. Y86-64的顺序实现1.1 将处理组织成阶段1.1.1 阶段序列1.1.2 一条指令执行的6个阶段1.1.3 一条指令要进行很多处理(远不止上面6个阶段)1.1.4 Y86指令序列指令1.1.5 subl 指令执行1.1.6 rmmovl 和 mrmovl 处理1.1.7 rmmovl 指令的执行1.1.8原创 2021-11-30 14:52:06 · 2992 阅读 · 0 评论 -
深入理解操作系统(9)第四章:处理器体系结构(1)Y86指令集+逻辑设计(包括:ISA/存储器/HCL/冒险/CISC,RISC/verilog/逻辑门/组合电路/多路复用器/ALU/(典型)硬件寄存
深入理解操作系统(9)第四章:处理器体系结构(1)前沿+Y86指令集+逻辑设计和HCL(包括:ISA/Y86指令集/存储器/HCL/冒险/CISC,RISC/指令编码/verilog/逻辑门/(字级)组合电路/(字级)多路复用器/四路复用器/ALU/硬件寄存器/典型寄存器文件)1. 前沿1.1 ISA(指令集体系结构)1.1.1 ISA作用1.1.2 ISA模型1.2 本章目标:1.2.1 为什么要了解处理器设计?1.3 Y86指令集1.3.1 什么是Y86指令集1.3.2 Y86指令集特点1.3.3 Y8原创 2021-11-26 17:37:00 · 2547 阅读 · 0 评论 -
深入理解操作系统(8)第三章:程序的机器级表示(4)struct,union+浮点代码(包括:理解指针/gdb/传值和引用/缓冲区溢出/蠕虫和病毒
深入理解操作系统(8)第三章:程序的机器级表示(4)struct,union+浮点代码(包括:理解指针/gdb/传值和引用/缓冲区溢出/蠕虫和病毒1. 异质的数据结构1.1 struct1.2 union1.2.1 union 应用场景1.3 对齐1.3.1 数据对齐的优点:1.3.2 Linux数据对齐策略2. 在机器级程序中将控制与数据结合起来2.1 理解指针2.1.1 理解指针2.1.2 参数传递(传值和引用)2.2 使用GDB调试器2.3 内存越界引用和缓冲区溢出2.3.1 缓冲区溢出2.3.2 蠕原创 2021-11-23 17:34:15 · 591 阅读 · 0 评论 -
深入理解操作系统(7)第三章:程序的机器级表示(3)过程+数组分配访问(包括:栈帧/转移控制call,leave,ret/寄存器使用惯例/过程示例/cltq指令)
深入理解操作系统(7)第三章:程序的机器级表示(3)过程+数组分配和访问(包括:过程定义/栈帧/转移控制call,leave,ret/寄存器使用惯例/过程示例汇编/cltq指令1. 过程1.1 过程调用的定义1.2 栈帧结构1.2.1 栈的作用1.2.2 栈帧1.2.3 esp ebp 寄存器1.3 转移控制1.3.1 过程调用和返回的指令:call leave ret1.3.2 call 指令1.3.3 ret 指令1.3.4 leave 指令1.4 寄存器使用惯例1.4.1 惯例:1.4.2 被调用者保原创 2021-11-19 11:41:28 · 1515 阅读 · 0 评论 -
深入理解操作系统(6)第三章:程序的机器级表示(2)控制(包括:条件码CF,ZF,SF,OF/set指令/判断条件的典型指令/跳转指令jump/直接跳转和间接/循环do-while,while,for
深入理解操作系统(6)第三章:程序的机器级表示(2)控制(包括:条件码CF,ZF,SF,OF/set指令/判断条件的典型指令/跳转指令jump/直接跳转和间接/循环do-while,while,for说明1. 控制1.1 条件码1.1.1 最有用的条件码是:1.1.2 设置条件码的指令(lea不改变条件码)1.1.3 cmp test只设置条件码,不改变寄存器1.2 访问条件码1.2.1 set 指令操作1.2.2 c判断条件的典型指令序列1.2.3 指令的同义名(一条机器指令有多个名字)1.2.4 a-b原创 2021-11-17 18:03:04 · 1406 阅读 · 0 评论 -
深入理解操作系统(5)第三章:程序的机器级表示(1)intel历史+程序编码+算术和逻辑操作(包括:8086/汇编/摩尔/机器级代码/汇编指令/objdump/汇编指令/反汇编/8个常用寄存器/lea
深入理解操作系统(5)第三章:程序的机器级表示(1)intel历史+程序编码+算术和逻辑操作(包括:8086由来/汇编/摩尔定律/机器级代码/汇编指令特性/objdump/汇编指令/反汇编/8个常用寄存器/操作数的三种类型/lea指令/移位操作sall,shll)1. 前言1.1 现代编译器的优点1.2 理解汇编代码的重要性1.3 编译器的优化1.4 精通细节是理解更深和更基本概念的先决条件2. 历史观点-Intel处理器发展2.1 intel历史(8086由来)2.2 IA32-Intel32位体系结构2原创 2021-11-13 18:02:40 · 3032 阅读 · 0 评论 -
深入理解操作系统(4)第二章:信息的表示和处理(3)整数运算+浮点数(包括:溢出/模运算/时钟周期/字符编码/补码)
深入理解操作系统(4)第二章:信息的表示和处理(3)整数运算+浮点数(包括:溢出/模运算/时钟周期/字符编码/补码)1. 整数运算1.1 无符号加法1.1.1 两个非负整数的和可能会溢出(算术运算溢出)1.1.2 无符号运算可以被看做一种形式的模运算。1.1.3 例子:1.1.4 阿尔贝群1.2 补码加法1.2.1 负溢出1.3 补码的非1.4 无符号乘法1.5 补码乘法1.6 乘以常数1.7 乘以2的幂1.8 除以2的幂2. 浮点数3. 第二章总结问题:1. 两个正数相加可能会得出一个负数2. 比较原创 2021-11-09 09:33:37 · 635 阅读 · 0 评论 -
深入理解操作系统(3)第二章:信息的表示和处理(2)整数表示(包括:有符号,无符号的二进制表示/-12345表示/反汇编器/C语言默认有符号/零扩展,符号扩展/截断数字/建议不使用无符号数)
深入理解操作系统(3)第二章:信息的表示和处理(2)整数表示(包括:有符号,无符号的二进制表示/反汇编器/-12345表示/反汇编器/C语言默认有符号/零扩展,符号扩展/截断数字/建议不使用无符号数)1. 整型数据类型大小2. 无符号和二进制补码编码2.1 无符号的二进制表示 B2Uw2.2 有符号的二进制表示 B2Tw2.2.1 有趣的数字(0 -1 最大最小有/无符号数)2.2.2 12345 和 -12345的二进制表示2.2.3 反汇编器3. 有符号数和无符号数之间的转换4. C中的有符号与无符号数原创 2021-11-06 10:47:25 · 913 阅读 · 0 评论 -
深入理解操作系统(2)第二章:信息的表示和处理(1)信息存储(包括:有符号数和无符号/字节/虛拟地址空间/字/大小端 字节序/字符编码/逻辑运算/位运算/移位运算左移右移)
深入理解操作系统(2)第二章:信息的表示和处理(1)信息存储(包括:有符号数和无符号/字节/虛拟地址空间/字/大小端 字节序/字符编码/逻辑运算/位运算/移位运算左移右移)1. 概述1.1 二进制表示原因1.2 无符号 二进制补码 浮点数2. 信息的存储2.1 基本概念:2.1.1 最小的可寻址的存储器单位-字节2.1.2 虚拟存储器2.1.3 c指针:2.2 十六进制表示法2.2.1 字2.3 数据大小2.4 寻址和字节顺序2.4.1 大小端2.4.2 反汇编器2.4.3 typedef2.4.4 siz原创 2021-11-04 21:11:38 · 791 阅读 · 0 评论 -
深入理解操作系统(1)第一章:计算机系统漫游(包括:位/比特/系统组成/CPU指令操作/缓存/分层结构/操作系统两个基本功能/并发/上下文/虛拟地址空间)
深入理解操作系统(1)第一章:计算机系统漫游(包括:位/比特/系统组成/CPU指令操作/缓存/分层结构/操作系统两个基本功能/并发/上下文/虛拟地址空间)1. 信息就是位 + 上下文1.1 hello.c1.2 一切都是比特:1.3 上下文:2. 程序被其他程序翻译成不同的格式2.1 hello.c 到 a.out2.2 编译系统的四个阶段:预处理,编译,汇编,链接3. 了解编译系统如何工作大有益处3.1 优化程序性能3.2 理解链接时出现的错误3.3 避免安全漏洞4. 处理器读并解释存储存在存储器中的指令原创 2021-11-03 10:15:03 · 716 阅读 · 0 评论