计算机数据漫游

计算机系统总起:

计算机系统由硬件和系统软件组成,共同工作运行应用程序

1.信息就是位+上下文

每个文本文件都是一个由值0和1组成的位(比特)序列, 8个位组成一组称为字节, 每个字节表示程序中的某些文本字符, 包括空格,换行等.

大部分计算机系统使用ASCII标准表示文本字符,即用一个唯一的单字节大小的整数值表示每个字符.例如下图给出hello.c程序的ASCII表达.
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Image%5Cchapter1%5ChelloCAscii.png&pos_id=img-xqqoVYpg-171223886949

ASCII 是基于拉丁字母的计算机编码系统, 主要用于显示现代英语, 其扩展版本可支持其他语言.共可支持128个字符,分为33个控制字符和95个可显示字符.
在这里插入图片描述
在这里插入图片描述

只由ASCII码组成的文件称文本文件, 其余称二进制文件.在不同上下文中,同一个字节序列可能表示不同数据对象(例如整数,浮点数…), 故信息就是位+上下文.

注: C语言是贝尔实验室为写Unix操作系统而生, 与Unix系统息息相关, 小而简单, 为实践目的而设计.

2.程序被其他程序翻译成不同格式

一个简单的hello程序能被我们读懂, 但为在系统上运行此文件, 其每一条语句需被转化为一系列的低级机器语言指令, 然后按照一种"可执行目标程序"的格式打包好, 并以二进制磁盘文件存放起来.

从源文件到目标文件由编译器驱动程序完成. gcc编译器读取hello.c并翻译成一个可执行文件hello分四阶段.分别由预处理器,编译器,汇编器和链接器组成.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预处理阶段: 修改头文件语句, 例如#include<stdio.h>语句被预处理器处理为:读取stdio.h文件内容并替换掉该语句.

编译阶段: 将c语言语句翻译为汇编语言.

汇编阶段: 将汇编语言翻译为机器码, 打包为可重定向目标程序.

链接阶段: 将一些外部引用的函数(例如printf)文件合并成一个可执行文件.

3.了解编译系统如何工作大有益处

pass

4.处理器读并解释在主存中的指令

shell是一个命令行解释器,其输出一个提示符,等待用户输入命令.若此命令非shell内置命令,则shell将默认其为可执行文件.如下

linux>./hello
hello world
linux>

系统硬件组成

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总线:贯穿整个系统的电子管道,携带信息管道并负责在部门间传递.通常被设计成传送定长的字节快,也就是字(word).不同系统其字大小不一样,常见的为32位(4字节),64位(8字节).

I/O设备:联系系统与外界的通道.常见的四个:键盘,鼠标,显示器,磁盘.其通过控制器或适配器与总线相连,起到信息交互的功能

主存:临时存储设备.处理器处理程序时用于存储程序与程序处理数据.由一组动态随机存取存储器芯片组成.其核心是一个存储设备,程序计数器.其指向程序一个机器指令.此外其还由寄存器文件(存储程序机器码),算数逻辑单元组成.一个简单操作可能执行:加在,存储,操作,跳转四个步骤

运行hello文件

当我敲入hello,其被读入寄存器和主存.回车后执行命令.首先将hello文件读入主存,再由CPU执行命令.

5.高速缓存至关重要

由机械原理, 较大存储设备较较小存储设备运行的慢, 若一个系统的磁盘大小为主存的1000倍, 则处理器分别读取的速度相差1000w倍!
此外, 处理器从寄存器文件(通常大小为几百字节)读取速度也比主存(通常打小几十亿字节)快百倍.而加快处理器的运行速度比加快主存的运行速度容易,便宜的多,故采用较小的存储集结区域作为高速缓存区(cache),存放处理器近期可能会处理信息.1级缓存可能存放几万字节,2级缓存存放几百万字节, 这样利用高速缓存的局部性原理(程序具有访问局部区域的数据和代码的趋势), 使系统获得一个较大的存储空间, 同时也加快访问速度.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.存储设备层次结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7.操作系统管理硬件

操作系统可看做是硬件与应用程序间的软件,所有应用程序与硬件交互时需通过操作系统.操作系统在其间起到(1).防止硬件被失控的应用程序滥用;(2).向应用程序提供简单一致的机制操控硬件.操作系统通过文件,虚拟内存和进程来实现上述两个功能.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进程

进程是操作系统对正在运行的操作系统的抽象.一个系统可以运行多个进程, 每个进程好像独占整个cpu, 这样的并发操作是通过上下文切换实现的.一个单核cpu处理器每时刻只能操作一个程序.操作系统保存跟踪进程运行所需的所有状态信息, 称为上下文.当cpu处理器需要处理下一个程序的时候,会保存上一个程序的上下文,将控制权交于下一个程序,等下一个程序运行完成时再从上一个程序停止的地方开始.从一个进程到另一个进程的转换由操作系统内核(kernel)完成.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线程

一个进程可由多个称作线程的操作单元组成, 共享相同的上下文, 可互通信息.

虚拟内存

虚拟内存为每一个进程提供一个"完全相同"的主存视角.每个进程看到的内存一致,被称为虚拟内存.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

程序代码和数据: 对所有进程来说,代码从同一固定地址开始,紧接着全局变量和数据等.直接按照可执行文本内容初始化.
堆:可扩展动态地址空间.

共享库: 大约在地址空间的中间部分是一块用来存放像 C 标准库和数学库这样的共享库的代码和数据的区域.

栈: 用户虚拟空间顶部,用来实现函数调用, 也可动态收缩.

内核虚拟内存:地址空间顶部的区域是为内核保留, 不允许应用程序读写这个区域的内容或者直接调用内核代码定义的函数.相反,它们必须调用内核来执行这些操作.

其基本思想是把一个进程虚拟内存的内容存储在磁盘上,然后用主存作为磁盘的高速缓存

文件

文本序列.

8.系统之间利用网络通信

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

9.重要主题

Amdahl定理

一个简单明了的定律, 揭示了系统整体性能与部分性能加速的关系. 假设运行一个系统的时间: T o l d T_{old} Told, 其中一个程序所占比例 α \alpha α, 对该程序速度提升k倍, 则:
T n e w = ( 1 − α ) T o l d + α k T o l d T_{new}=(1-\alpha)T_{old}+\frac{\alpha}{k}T_{old} Tnew=(1α)Told+kαTold
故加速比: S = T o l d T n e w = 1 1 − α + α k S=\frac{T_{old}}{T_{new}}=\frac{1}{1-\alpha+\frac{\alpha}{k}} S=TnewTold=1α+kα1
可见, 要提升整个系统的速度, 必须提升其中大部分程序的速度.

并行与并发

两个驱动计算机进步的因素:1.计算机做得更多, 2.计算机做得更快.

并发指同一时刻处理多个任务; 并行指使用并发处理任务,使系统更快.

线程并发: 单处理器系统处理并行任务使用任务切换的手法,在极短的时间(通常以毫秒为单位)依次处理多个任务, 循环往复. 多核处理器则可真正适应此类任务.
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指令级并行: 同时执行多指令的属性称为指令级并行. 早期处理器需要2-10个时钟周期处理一条指令, 而现在处理器通过流水线等技巧实现一个时钟周期处理多个指令. 而实际上一条指令从开始到结束通常需要20多个时钟周期.

单指令,多数据并行: 允许一条指令产生多个可以可以并行执行的操作的属性.也称为SIMD并行(Single Instruction Multiple Data). 提供这些指令多是为了处理影像,图像数据等等.

参考文章:
CSAPP

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已忘深色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值