c语言强连接设备程序,通过C语言HelloWord程序对计算系统理解(示例代码)

HelloWord程序C语言代码

#include

void main(){

printf("HelloWord\n");

}

要了解一个helleword程序的运行,首先要知道一个计算系系统的基本组成部分:

1.中央处理单元CPU

包括程序计数器(PC).寄存器文件,算术/逻辑运算器(ALU)高速缓存

程序计数器是一个字长的存储设备(也叫寄存器),程序计数器永远指向主存中某个的机械语言指令(也就是含有有该指令的地址)。

寄存器文件是有一些很小的由一个字长组成寄存器组成。每个寄存器都有唯一的名字。

算术/逻辑运算器主要计算新的数据和地址。

从计算机通电开始CPU就在不停的执行PC中的指令并更新PC,使其指向下一个地址。处理器看上去是由一个非常简单是指令模型来操作的,这个模型由指令集决定。处理器的操作是围绕PC,寄存器文件,主存,ALU来进行的。

加载:将一个字节或者一个字从主存中复制到寄存器中,覆盖寄存器中的内容。

存储:将寄存器中的一个字节或字复制到主存的某个位置中,覆盖主存中原来的内容。

操作:将两个寄存器中的值复制到ALU中。ALU对着两个值进行运算在将得到的结果复制到一个寄存器中,覆盖原来的内容。

转跳:从指令中抽取一个字,复制到PC中,覆盖PC中的值。

2.总线

总线是连接计算机所有部位的通道,传送一个固定长度的字节块,这样的一个字节块的大小叫做字长,我现在用的操作系统就是8个字节组成的64位操作系统。

3.I/O设备

I/O设备通过控制器(主板芯片)和适配器与字长相连。如硬盘。

4.主存

主存物理上是由许躲动态随机存储器(DRAM)芯片组成,逻辑上是一个线性数组字节,每个字节有唯一的地址(数组索引)。

一个HelloWord程序的运行首先需要通过编译器进行编译,编译分为4个阶段:

1.预处理阶段,预处理器根据以#开头的命令修改HelloWord程序。将加入到HelloWord程序中。一般文件用.i结尾。HelloWord.i

2.编译阶段,将修改过的程序变为汇编语言。文件以.o结尾。HelloWord.o

3.汇编阶段,将汇编语言转化为二进制,文件以.s结尾,HelloWord.s

4.连接阶段,连接C语言自己自带的函数,如HelloWord程序中的printf函数,printf存在于一个单独编译好的目标文件中。连接之后HelloWord程序将变成一个二进制文件,也是可执行文件。

HelloWord程序运行时,外壳程序将其读入到寄存器中,再把它存放在存储器中。处理器开始执行HelloWord程序中的main指令。指令将“HelloWord”字符串从主存复制到寄存器。然后显示到显示器上。

进程

进程是对一个正在运行的程序的抽象。是对CPU,虚拟存储器,文件的抽象。一个系统可以运行多个进程,他们之间的切换时通过上下文来进行的。

线程

进程并非只有一个单一的控制流,它是通过多种叫做线程的执行单元来实现的。

虚拟出存储器

它为进程提供了一个假象,即每个进程单独占用主存。每个进程看到的都会一致的存储器,称为虚拟存储空间。Linux的虚拟存储空间包括如下

程序代码和数据区:对于所有进程来说,代码是从一个固定地方开始的,紧接着是和C全局变量相对应的数据位置。代码和数据区是按可执行文件初始化的。

堆:代码和数据区后面跟着运行时堆,代码和数据区一开始就被规定的大小。而堆不同,比如当调用malloc和free这样的C标准函数时,堆可以动态的扩大和缩小。

共享库:大约在数据的中心位置。存放像C语言中的标准库和数学库这样共享库的数据和代码。共享库概念强大难懂。

栈:实现函数调用,调用时扩大,函数返回时收缩。

内核虚拟存储器:内核总是驻留在内存中,是操作系统的一部分,是为内核保留的,不允许应用程序读写和调用代码定义的函数。

文件就是字节序列。

线程可以并发进行,多线程(超线程)处理器。

指令集并行。指令放在流水线上执行。

单指令、多数据并行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值