前言程序员
入坑计算机原理嘛,漫游慢慢游shell
思惟导图缓存
1.1 信息就是位+上下文安全
什么是位? 一个程序的生命周期是从一个源程序开始的,源程序实际上就是一个有值 0 和 1 组成的 位(比特 序列,8个位 为一组称为字节 每一个字节表示程序中的某些文本字符网络
位<字节<字符 这样子的组成关系吧
多线程
系统中全部的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传的数据,都是由一串比特表示是的并发
什么是上下文?在不一样的上下文中,一个一样的字节 可能表示一个整数、浮点数、字符串或者是机器指令性能
1.2程序被其余程序翻译成不一样的格式优化
hello程序的生命周期是一个高级c 语言程序开始的,为了看的懂,每一条C语句须要被其余程序转化为一系列低级机器指令,即为可执行目标文件操作系统
1.3了解编译系统如何工做是大有益处的
老是说要优化,若是了解计算机是如何编译的,是否是可以从底层优化呢?带着疑问阅读后面章节
1.4 处理器读并解释储存在内存中的指令
这个是指咱们经常使用的运行命令的shell,hello程序被编译成可执行目标文件,shell加载并运行 输出hello程序它的消息 而后等待下一个命令行
1.4.1 系统的硬件组成
这个我认为就是 电脑的组成啊(有鼠标键盘 显示器 主板 内存 CPU) 而后后面的章节会讲详细讲到他们是怎么密切配合工做的
1.4.3 hello 程序运行
hello程序放在磁盘上
程序加载,从磁盘复制到主存
当处理器运行程序,从主存复制处处理器
数据串“hello Word”开始时在磁盘上,复制到主存上,而后再从主存复制到显示设备
哇 复制来复制去的 是否是额外的开销,是否是能够提高一下速度呢?(高速缓存)
1.5高速缓存相当重要
结论:高速缓存存储器存在的应用程序员可以利用高速缓存将程序的性能提升一个数量级
在处理器和一个较大较慢的设备(主存)之间插入一个更小更快的存储设备(高速缓存)的想法已经成为一个广泛的观念
1.6存储设备造成层次结构
这个图告诉我,高速缓存器能够加不少个,那就是有好多级啊 而后经过需求来提升哪一级的性能么?
1.7 操做系统管理硬件
这个是讲 I/O 设备
运行hello程序都没有直接访问键盘啊 鼠标显示器这些的 它们依靠着操做系统提供服务
操做系统有两个基本功能 一是防止硬件失控的应用程序滥用 二是 向应用程序提供简单一致的机制来控制复杂又一般大不相同的低级硬件设备
1.7.1 进程
进程是操做系统对一个正在运行的程序的一种抽象
实现进程这个抽象概念须要低级硬件和操做系统软件之间的紧密的合做
1.7.2 线程
线程:一个进程能够由多个称为线程的执行单元组成,每一个线程都运行在进程的上下文中,并共享一样的代码和全局数据。 多线程之间比多进程之间更容易共享数据,线程通常也比进程更高效。
1.7.3虚拟内存
虚拟内存:虚拟内存是一个抽象概念,它为每一个进程提供了一个假象,即每一个进程都在独占地使用主存。每一个进程看到的内存都是同样的,称为虚拟地址空间。
1.8 系统之间利用网络通讯
网络提供了计算机系统之间通讯的手段。从特殊系统的角度来看,网络就是一种I/O设备。