计算机硬件组织
PC:存放下一条指令的地址(地址大小为一个字) 内存:存放指令和数据 总线上的一次传输的数据大小与数据总线的条数有关(一般为一个字) 输入输出设备:输入输出设备通过适配器或者控制器与IO总线间传递数据
操作系统
操作系统:软硬件的接口 目的:1.防止对硬件设备的不安全修改或者接触 2.提供统一的机制应用硬件
操作系统的三个抽象机制 ——————————————————————— C语言的虚拟内存分布
可执行文件hello的运行过程
可执行文件hello主要是输出hello world的功能
hello.c 变为可执行文件hello的过程
预编译—>编译—>汇编—>链接
硬件层面的运行
1.输入【./hello】,shell将输入字符串读入寄存器,处理器会把hello这个字符放入内存 2.按下回车键,从内存找到hello.c,经过一系列指令把hello.c变为hello,之后加载可执行文件hello
3.将在内存的hello的数据和代码从磁盘复制到内存【此处复制用的是DMA技术】
4.处理器依次执行main函数代码,取出内存的数据【hello world】到寄存器,然后通过I/O总线输出到I/O设备
操作系统层面的运行
如图:总共两个进程(可以理解为运行中的程序) 【shell和hello】
- 当通过shell执行hello程序,会先进行shell进程到hello进程的上下文切换
切换:【通过系统调用,且产生了用户态到核心态的转换】 上下文切换:【上下文指的是进程的寄存器状态,存储【页表】等】 2.当hello进程执行完毕之后,会再进行一次hello进程到shell进程的上下文切换
加速理论
阿姆达定理
此处α表示可加速的部分占整体任务的比重,k表示加速后的加速比例 S表示加速比
加速方法
-
多线程【线程切换只需要切换寄存器和栈】 -
流水线执行【把指令划分为不同部件执行的指令,那么同一个部件可以执行多次指令】 -
单指令多数据【允许一条指令多个并行操作,由硬件支持】(适用于音视频的传输)
|