深入理解计算机系统(笔记):计算机系统漫游

经典书籍:深入理解计算机系统 的读书笔记


1. 了解编译器如何工作对编程帮助巨大:

1.1 优化程序性能

比如相似语句那种效率高,比如switch和if-then-else语句,while和for循环,循环求和的结果放到本地变量比放到引用传递来的参数速度快,等

1.2 理解链接时错误

链接器无法解析引用,静态变量和全局变量区别,不同源文件定义同名全局变量会发生什么,等

1.3 避免安全漏洞

缓冲区相关知识,如何避免缓冲区溢出等


2. 系统硬件组成

总线、I/O设备、主存、处理器


3. 存储设备层次


4. 虚拟存储器

虚拟存储器是抽象概念,为进程提供了一个假象,让每个进程都以为自己独占主存。进程看到的都是一致的存储器,叫做虚拟地址空间。下图为Linux进程的虚拟地址空间:

程序代码和数据:所有进程的代码都从同一固定地址开始,然后是全局变量数据位置

堆:代码和数据区在进程开始时指定了大小,堆的大小可动态变化

共享库:存放了比如C标准库、数学库的代码和数据区

栈:位于用户虚拟地址空间顶部,向下增长

内核虚拟存储器:内核总驻留在内存中,这段内存就是为它保留的,用户进程不能读取这里的数据,也不能直接调用内核函数


5. 抽象的重要性

指令集结构提供了对实际处理硬件的抽象

文件是对I/O的抽象

虚拟存储器是对程序存储器的抽象

进程是对一个正在运行的程序的抽象


6. 缩写和概念

C语言:又贝尔实验室的Dennis Ritchie于1969年-1973年创建,1989年颁布了ANSI C的标准

ANSI:American National Standards Institute, 美国国家标准学会

GNU:GNU's Not Unix的缩写,由Richard Stallman于1984年发起,是一个开源项目,目标是开发出一个完整的类Unix系统。GNU环境包括EMACS编辑器、GCC编译器、GDB调试器、汇编器、链接器、处理二进制文件的工具等。

Posix: Portable Operating System Interface,可移植操作系统接口,IEEE(电气和电子工程师协会)为防止各大厂商往Unix中加入不兼容的特性,开始标准化Unix的开发,由Richard Stallman命名为Posix

Linux:1991年8月,芬兰研究生Linus Torvalds发布了Linux第一版

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值