CSAPP——1.计算机系统的漫游
2017-02-24 00:14
369 查看
首先,存储与计算机上的信息都是位,计算机通过上下文判断存储信息的类型(文本文件、二进制文件)
1.C程序格式的流转
0 hello.c 通过预处理器(cpp)增加头文件后得到hello.i
0 hello.i通过编译器编译(ccl)得到hello.s(汇编程序)
0 hello.s通过汇编器(as)得到hello.o(二进制 可重定位目标程序)
0 hello.o与其他(如printf.o)通过链接器(ld) 得到hello(可执行目标程序 二进制)
其次,系统的硬件组成(总线、I/O设备、主存、处理器)
0 总线:贯穿整个系统的一组电子管道,携带信息字节并负责各个部件间的传递
0 I/O设备:系统与外部世界的联系通道,磁盘、鼠标…
——都通过一个控制器(I/O设备本身或主板上的芯片组)或适配器(一块插再主板插槽的卡)与I/O总线相连
0 内存:存放程序和程序处理的数据,由一组动态随机存取存储器(DRAM)组成
0 处理器:CPU,解释(或执行)存储在主存中指令的引擎。
——其核心是大小为一个字的存储设备(或寄存器),称为程序计数器(PC)——指向主存中的某条指令
——操作主要围绕主存、寄存器文件、算术/逻辑单元(ALU)。加载、存储、操作、跳转
——处理器的指令集构架:每条机器代码指令的效果
——处理器的微体系结构:处理器实际如何实现
2.运行hello
0 shell程序执行他的指令,等待我们输入命令,我们输入”./hello”,shell将字符逐一读入寄存器,再放于内存
——键盘->I/O桥->I/O总线->I/O桥->总线->寄存器->总线->I/O桥->内存总线->主存储器
0 hello目标文件从
——通过直接存储器存取(DMA)不通过CPU:键盘->I/O总线->I/O桥->内存总线->主存储器
0 CPU开始执行hello程序的main程序中的机器语言指令
——”hello,world\n”从主存->…->寄存器->总线接口->I/O桥->I/O总线->图形适配器->显示器
由此可见,系统花费了大量的时间来移动信息,为使移动更快,增加了高速缓存存储器,L1、L2高速缓存是用一种静态随机访问存储器(SRAM)的硬件技术实现,增大访问速度的原因是利用局部性原理,保存最容易要用的东西再告诉缓存中。
——存储设备形成层次结构(如寄存器->L1高速缓存(SRAM)->L2高速缓存->L3高速缓存->主存(DRAM)->本地磁盘->远程二级存储)
3.hello程序输出自己的信息,hello程序本身没有直接访问显示器等,他是依靠操作系统提供的服务。
操作系统的两个基本功能:1、防止硬件被失控的程序滥用 2、向应用程序提供简单一致的接口,便于控制硬件
0 实现:3个基本的抽象:文件(I/O的抽象)、虚拟内存(I/O和主存的抽象)、进程(处理器和主存I/O的抽象)
——进程:操作系统对一个正在运行的程序的抽象(操作系统实现并发运行的机制称为上下文切换(内核代码))
——0 线程:进程由多个称为线程的执行单元组成
——虚拟内存:给每个进程一个独占地使用主存的假象(程序代码和数据、堆、共享库、栈、内核虚拟内存)
——文件: I/O设备都可以看成文件,所有的输入输出都可看成文件的读写(网络通信)
Amdahi定律:加速比S=T(old)/T(new)=1/((1-α)+α/k) (α是提升部位所占比例,k是此部位提升比例(加速比))
并发:一个同时具有多个活动的系统 并行:用并发来使一个系统运行得更快
0 1.线程级并发:1个进程执行多个控制流,再比如intel i7每个核可执行两个线程,所以4核系统可并行执行8个线程
0 2.指令级并行:现代处理器可同时处理多条指令
0 3.单指令、多数据并行:允许一条指令产生多个可执行的操作,SIMD并行
最后增加一个抽象:虚拟机:对整个计算机的抽象,包括操作系统、处理器、程序
1.C程序格式的流转
0 hello.c 通过预处理器(cpp)增加头文件后得到hello.i
0 hello.i通过编译器编译(ccl)得到hello.s(汇编程序)
0 hello.s通过汇编器(as)得到hello.o(二进制 可重定位目标程序)
0 hello.o与其他(如printf.o)通过链接器(ld) 得到hello(可执行目标程序 二进制)
其次,系统的硬件组成(总线、I/O设备、主存、处理器)
0 总线:贯穿整个系统的一组电子管道,携带信息字节并负责各个部件间的传递
0 I/O设备:系统与外部世界的联系通道,磁盘、鼠标…
——都通过一个控制器(I/O设备本身或主板上的芯片组)或适配器(一块插再主板插槽的卡)与I/O总线相连
0 内存:存放程序和程序处理的数据,由一组动态随机存取存储器(DRAM)组成
0 处理器:CPU,解释(或执行)存储在主存中指令的引擎。
——其核心是大小为一个字的存储设备(或寄存器),称为程序计数器(PC)——指向主存中的某条指令
——操作主要围绕主存、寄存器文件、算术/逻辑单元(ALU)。加载、存储、操作、跳转
——处理器的指令集构架:每条机器代码指令的效果
——处理器的微体系结构:处理器实际如何实现
2.运行hello
0 shell程序执行他的指令,等待我们输入命令,我们输入”./hello”,shell将字符逐一读入寄存器,再放于内存
——键盘->I/O桥->I/O总线->I/O桥->总线->寄存器->总线->I/O桥->内存总线->主存储器
0 hello目标文件从
——通过直接存储器存取(DMA)不通过CPU:键盘->I/O总线->I/O桥->内存总线->主存储器
0 CPU开始执行hello程序的main程序中的机器语言指令
——”hello,world\n”从主存->…->寄存器->总线接口->I/O桥->I/O总线->图形适配器->显示器
由此可见,系统花费了大量的时间来移动信息,为使移动更快,增加了高速缓存存储器,L1、L2高速缓存是用一种静态随机访问存储器(SRAM)的硬件技术实现,增大访问速度的原因是利用局部性原理,保存最容易要用的东西再告诉缓存中。
——存储设备形成层次结构(如寄存器->L1高速缓存(SRAM)->L2高速缓存->L3高速缓存->主存(DRAM)->本地磁盘->远程二级存储)
3.hello程序输出自己的信息,hello程序本身没有直接访问显示器等,他是依靠操作系统提供的服务。
操作系统的两个基本功能:1、防止硬件被失控的程序滥用 2、向应用程序提供简单一致的接口,便于控制硬件
0 实现:3个基本的抽象:文件(I/O的抽象)、虚拟内存(I/O和主存的抽象)、进程(处理器和主存I/O的抽象)
——进程:操作系统对一个正在运行的程序的抽象(操作系统实现并发运行的机制称为上下文切换(内核代码))
——0 线程:进程由多个称为线程的执行单元组成
——虚拟内存:给每个进程一个独占地使用主存的假象(程序代码和数据、堆、共享库、栈、内核虚拟内存)
——文件: I/O设备都可以看成文件,所有的输入输出都可看成文件的读写(网络通信)
Amdahi定律:加速比S=T(old)/T(new)=1/((1-α)+α/k) (α是提升部位所占比例,k是此部位提升比例(加速比))
并发:一个同时具有多个活动的系统 并行:用并发来使一个系统运行得更快
0 1.线程级并发:1个进程执行多个控制流,再比如intel i7每个核可执行两个线程,所以4核系统可并行执行8个线程
0 2.指令级并行:现代处理器可同时处理多条指令
0 3.单指令、多数据并行:允许一条指令产生多个可执行的操作,SIMD并行
最后增加一个抽象:虚拟机:对整个计算机的抽象,包括操作系统、处理器、程序
相关文章推荐
- CSAPP笔记:第一章 计算机系统漫游
- [CSAPP]计算机系统漫游
- CSAPP第一章-计算机系统漫游
- 【读书笔记】CSAPP 第1章 计算机系统漫游
- CSAPP 第一章 计算机系统漫游
- [CSAPP笔记][第一章计算机系统漫游]
- [置顶] [CSAPP笔记][第一章计算机系统漫游]
- 计算机系统漫游
- 01 计算机系统漫游
- Oh,This is OS学习笔记之(1):漫游计算机系统
- 第一章 计算机系统漫游----《深入理解计算机系统》 第二版
- 读书笔记--《深入理解计算机系统》第一章 计算机系统漫游
- 深入理解操作系统之一 ―― 计算机系统漫游
- 读完了csapp(中文名:深入理解计算机系统)
- 第一章 计算机系统漫游 shell vs ui ,where we are?
- 读书笔记_深入理解计算机系统_第1章_计算机系统漫游 (代码编译链接详细过程)
- 深入理解计算机系统之旅(一)计算机系统漫游
- 《深入理解计算机系统》第一章 计算机系统漫游
- CSAPP(深入理解计算机系统) 实验——实现shell
- 第一章 计算机系统漫游 32 or 64 ?