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

计算机系统漫游

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

1. hello world程序在计算机中的执行过程

有C程序:

#include<stdio.h>

int main()
{
	printf("hello world");
	return 0;
}

1.1 hello world 程序解释成机器可读程序的过程

计算机系统漫游
预处理过程将头文件相关内容编译进hello world 程序文件,而后编译器将这个预处理后的文件生成汇编语言程序,汇编器将汇编语言程序解释成机器文件(二进制)供机器读取,最终链接器将printf函数链接进入形成最终的可执行文件

1.2 hello world目标程序在机器中的执行过程

  1. 调用powershell程序,准备执行目标程序文件
    计算机系统漫游

  2. 加载hello world 程序
    计算机系统漫游

  3. 回车执行-----这个过程在计算机内产生了一系列交互过程
    a. 计算机系统漫游
    首先shell程序看成进程A,加载hello world程序后,系统进程切换到hello程序,进行hello程序执行

    b. 我们输入hello_world程序后,shell将字符逐个读入寄存器,在将其放入到内存中
    计算机系统漫游
    c. 当我们在键盘上按下回车键时,shell程序知道我们已经结束程序的命令输入,shell执行指令,将hello程序的代码和数据从磁盘复制到主存(数据包括最终被输出到屏幕的hello world)
    计算机系统漫游
    d. 一旦目标文件hello中的代码和数据被加载到主存,处理器开始执行hello程序的main程序中的机器语言指令(这些指令将“hello world”字符串中的字节从主存复制到寄存器文件,再从寄存器文件中复制输出到显示设备

  4. 屏幕上得到 hello world
    计算机系统漫游
    如上完成一次程序执行

2. 关键概念

  1. 主存主要用来存储数据和程序
  2. 处理器包括寄存器PC寄存器文件逻辑单元ALC
  3. I/O设备主要包括键盘、鼠标、显示器和磁盘
  4. 进程是cpu、主存、I/O设备的抽象
  5. 线程是一个进程的组成单元
  6. 内核是操作系统代码常驻主存的部分,它是系统管理全部进程所用代码和数据结构的集合
  7. 并发指一个同时具有多个活动的系统
  8. 并行指用并发来来使一个系统运行的更快

3. 关于提高程序运行速度

3.1 添加缓存方法

给cpu添加一个缓存,让待执行的程序所需要的内容临时存放在这里,可以减少因为程序存放主存中调用的过程,从而减少程序运行时间
计算机系统漫游

高级别存储设备(L0最高)可以缓存低级别设备内容,而高级别缓存可以加快程序运行的速度

3.2 Amdahl 定律

若系统执行某应用程序需要时间为Told。假设系统某部分所需执行时间与该时间的比例为α,而该部分系统所提升的比例为k。即该部分初始所用时间为αTold,现在所需时间为(αTold)/k。因此总执行时间

Tnew=(1-α)Told+a*Told/k

得到加速比S

S=1/((1-α)+α/k)

结论

  1. 虽然我们对系统的一个部分做出了很大改进,但是获得的整个系统加速却明显小于这部分的加速比
  2. 当某部分提升比例k趋近无穷大,得到

计算机系统漫游

其它

  1. 系统中的总线是一组组的电子管道,用来传输定长的字节块,传送4个字节的是32位操作系统,8个字节的是64位操作系统

1个字节=8个比特

  1. 操作系统用来管理硬件并避免其它程序滥用cpu
    计算机系统漫游

  2. 操作系统通过三个抽象(下图)实现点2的功能
    计算机系统漫游

  3. 系统与系统之间通过网络适配器来进行通信

实际上可以将网络适配器看成是一个特殊的I/O设备

  1. 文件是I/O设备的抽象、虚拟内存是主存和I/O设备的抽象、进程是处理器、主存、I/O设备的抽象,而虚拟机是整个操作系统的抽象
相关标签: QT/MFC/win32