深入理解计算机系统:运行helloworld程序发生了什么?

1、系统的硬件组成

        (1)总线

          贯穿整个系统的是一组电子管道,称作总线,它携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字,32位4个字节,64位8个字节

       (2)I/O口设备

        I/O口设备(输入与输出)是系统与外部世界的联系通道。包括键盘、鼠标、显示器、磁盘。每个I/O设备都通过一个控制器或适配器 与I/O总线相连。控制器和适配器之间的区别主要在于他们的封装方式。控制器是I/O设备本身或者系统的主印制电路板(主板)上的芯片组。而适配器则是一块插在主板插槽上的卡。无论如何,它们的 功能都是在I/O总线和I/O设备之间传递信息。

      (3)主存

        主存是一个临时存储I设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成的。

     (4)处理器

        中央处理单元(CPU),简称处理器,是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器PC

2、运行hello程序

        初始时,shell程序执行它的指令。等待我们输入一个命令。当我们在键盘上输入字符串“./hello”后,shell程序将字符逐一读入寄存器,再把它存放在内存中。

 

        当我们在键盘上敲回车键时,shell程序就知道 我们已经结束了命令的输入。然后shell执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出的字符串“hello,world\n”.

 

        一旦目标文件hello中的代码和数据被加载到主存,处理器就开始执行hello程序的main程序中的机器语言命令。这些指令将“hello,world \n”字符串中的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备,最终显示在屏幕上。

 3、高速缓存器

 

4、操作系统管理硬件

        文件是对io设备的抽象表示,虚拟内存是对主存和磁盘io设备的抽象表示,进程则是对处理器、主存和io设备的抽象表示

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值