欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机系统漫游 笔记

程序员文章站 2022-03-26 11:36:11
...

计算机系统漫游

最近在看深入理解计算机系统,先总结一下自己对第一章的理解
计算机系统漫游 笔记

//hello 程序
#include<stdio.h>
int main()
{
	printf("hello world");
}

信息

以上面的hello程序为例 ,它的生命周期是从源程序开始的

  • 源程序:由值0和1组成的位(比特)序列;8个位是1组,1组被称为字节

上面的程序是以字节序列的方式存储到文件中的。它表示方法说明了系统中所有文件都是由比特构成的

如何区分数据对象?

  • 按照读取数据对象时的上下文来区分,唯一的办法
  • 上下文:我认为就是该数据上面的数据与它下面的数据,这样就可以确定数据要表示的意义。

编译

计算机系统漫游 笔记
1.预处理阶段

  • 预处理器根据以#开头的命令,修改C程序,再将刚才的hello程序中的#include<stdio.h>读取插入程序文本中

2.编译阶段

  • 将文本文件hello.i翻译为hello.s,它包含一个汇编语言程序

计算机系统漫游 笔记
汇编语言程序:用汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件。汇编语言程序在经过汇编、链接后得到可执行程序即EXE文件

3.汇编阶段

  • 汇编器将hello.s翻译成机器语言指令,把这些指令打包为可重定位目标程序,保存到二进制hello.o文件中

hello.o文件
计算机系统漫游 笔记
4.链接阶段

  • 链接器(ld)将目标文件与其他目标文件链接,例如main程序中使用了函数printf,链接器负责把printf.o合并到main程序中,得到可执行目标文件main
    链接时连接目标文件和printf.o是静态链接

运行

计算机系统漫游 笔记
Shell程序:是计算机用来解释你输入的命令然后决定进行何种处理的程序,是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务

  • Shell程序执行它的指令,等待我们输入一个命令,当我们在键盘输入字符串“./hello”后,shell程序将字符读入寄存器,再放在内存
    计算机系统漫游 笔记
  • 当我们输入回车键,shell程序知道了我们结束了命令的输入,然后shell程序执行一系列的指令来加载可执行的hello文件,这些指定会将hello代码和数据从磁盘复制到主存中
    计算机系统漫游 笔记
  • 一旦主存加载了hello文件的代码和数据,处理器就会执行其中的main函数的代码片段,然后将结果"hello,world"复制到寄存器文档,然后从寄存器文档复制到显示设备,最终显示在屏幕上
    计算机系统漫游 笔记

高速缓存

  • 较大的存储设备比较小的存储设备运行慢;加快处理器的运行速度比加快主存的速度容易便宜;产生了差异。

  • 高速缓存存储器,经过L1,L2,L3,来针对这种差异。有特殊的总线连接到处理器,相当于系统多了存储器,

  • 高速缓存不是很理解L1,L2,L3与处理器的细节和为什么要做三个高速缓存?
    计算机系统漫游 笔记

存储设备形成层次结构

计算机系统漫游 笔记
上面的保存下面的字,高速缓冲行,磁盘块,文件

系统间网络通信

  • 网络可视为一个I/O设备
  • 一个设备要使用数据时,数据会由另一个设备经过网络到该设备,我认为在单个设备中相当于一个设备文件通过I/O总线到本地磁盘

客户端与服务器的交互流程

  1. 用户输入“hello”
  2. 客户端向远程服务器发送字符串“hello”
  3. 务器向shell发送“hello”shell再将输出给服务器
  4. 服务器向客户端发送字符串“hello”
  5. 客户端打印hello字符串

系统硬件

  1. 总线:贯穿整个系统的是一组电子管道
  2. I/O设备:系统与外部世界的联系通道
  3. 主存:临时存储设备
  • 物理:动态随机存取存储器芯片构成
  • 逻辑:存储器是一个线性的字节数组,每个字节都有其唯一的地址,字节都有其唯一的地址
  1. 处理器(*处理单元):是执行存储在主存中指令的引擎

系统软件

  1. 操作系统
    计算机系统漫游 笔记
    功能:
    1.防止硬件被失控的应用程序使用
    2.使应用程序可以以简单的方式控制多而复杂的硬件
  2. 进程与线程
    进程是操作系统对一个正在进行的程序的一种的抽象
    一个进程实际上可以由多个称为线程的执行单元组成

下面任务管理器大概可以看为进程
计算机系统漫游 笔记
3. 文件
文件就是字节序列;
文本文件:只由ASCII字符构成的文件
二进制文件:所有其他文件
4. 虚拟内存
还不是很理解

Amdahl定律

Amdahl定律是我们对系统某个部分加速时,对系统整体性能影响取决于该部分的重要程度与加速程度

并发和并行

  • 并发
    不是真正意义上的同时进行,但又是客观存在同时进行两件事
    例如一个人可以边看手机边看电视

  • 并行
    多件事情在同时进行,例如一个人可以边坐车边看手机

  • 指令级并行
    指令集并行基于流水线(Pipeline)技术,

流水线技术我认为就是像汽车工厂装配汽车一样,没有流水线技术以前,是一个一个汽车装配,福特采用了流水线装配,按流程装,可以多个车进行不同的流程

  • 线程级并发
    相当于边看手机边看电视,然后快速看一眼电视在看手机,两边剧情都可以接上,就是速度够快
  • 单指令,多数据并行
    在最低层次上,有不同特殊的硬件,允许一条指令产生多个可以并行执行的操作
    之前计导老师讲过类似的,就是为某个特殊功能所服务而生产的硬件,但查了资料感觉很复杂。

看了第一章大概了解了一些基本概念