请教程序helloword的执行过程

shunzi__1984 2009-04-28 06:34:06
int main()
{
printf("hello word!");
}
从硬盘到内存执行 计算机做的所有事情???
...全文
429 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanchangyong 2009-05-26
  • 打赏
  • 举报
回复
看过<<深入理解计算机系统>>很不错,通俗易懂
wanggang_0717 2009-05-26
  • 打赏
  • 举报
回复
1.用户告诉操作系统执行hello程序
2.操作系统找到该程序,检查其类型
3.检查程序首部,找出正文和数据的地址
4.文件系统找到第一个磁盘块
5.父进程需要创建一个新的子进程,执行hello程序
6.操作系统需要将执行文件映射到进程结构
7.操作系统设置CPU上下文环境,并跳到程序开始处
8.程序的第一条指令执行,失败,缺页中断发生
9.操作系统分配一页内存,并将代码从磁盘读入,继续执行
10.更多的缺页中断,读入更多的页面
11.程序执行系统调用,在文件描述符中写一字符串
12.操作系统检查字符串的位置是否正确
13.操作系统找到字符串被送往的设备
14.设备是一个伪终端,由一个进程控制
15.操作系统将字符串送给该进程
16.该进程告诉窗口系统它要显示字符串
17.窗口系统确定这是一个合法的操作,然后将字符串转换成像素
18.窗口系统将像素写入存储映像区
19.视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
20.显示器发射电子束
21.你在屏幕上看到hello world


太细致了
ForestDB 2009-05-26
  • 打赏
  • 举报
回复
在我个人的理解里面,计算机系统是一个自下而上的、一层层抽象的结果,所以真的有心知道所有的过程,这每一层的抽象是都要弄明白的。
codinglife 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 baiwei156 的回复:]
1.用户告诉操作系统执行hello程序
2.操作系统找到该程序,检查其类型
3.检查程序首部,找出正文和数据的地址
4.文件系统找到第一个磁盘块
5.父进程需要创建一个新的子进程,执行hello程序
6.操作系统需要将执行文件映射到进程结构
7.操作系统设置CPU上下文环境,并跳到程序开始处
8.程序的第一条指令执行,失败,缺页中断发生
9.操作系统分配一页内存,并将代码从磁盘读入,继续执行
10.更多的缺页中断,读入更…
[/Quote]

excellent
z15881328993 2009-05-26
  • 打赏
  • 举报
回复
都是高手啊
visly 2009-05-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 baiwei156 的回复:]
1.用户告诉操作系统执行hello程序
2.操作系统找到该程序,检查其类型
3.检查程序首部,找出正文和数据的地址
4.文件系统找到第一个磁盘块
5.父进程需要创建一个新的子进程,执行hello程序
6.操作系统需要将执行文件映射到进程结构
7.操作系统设置CPU上下文环境,并跳到程序开始处
8.程序的第一条指令执行,失败,缺页中断发生
9.操作系统分配一页内存,并将代码从磁盘读入,继续执行
10.更多的缺页中断,读入更…
[/Quote]
佩服啊
佩服
cheidtf 2009-05-25
  • 打赏
  • 举报
回复
你的逻辑太强,服了。
antss 2009-05-24
  • 打赏
  • 举报
回复
千万别让搞JAVA的看到,会说你白痴的.

但我持支持态度.UP一个.
Sou2012 2009-05-24
  • 打赏
  • 举报
回复
MARK!!
windsting 2009-05-24
  • 打赏
  • 举报
回复
有一本书叫《深入理解计算机系统》,作者在前言里说,
整本书基本上就是在讲LZ这个问题的答案的。
liuscmail 2009-05-24
  • 打赏
  • 举报
回复
?
windsting 2009-05-01
  • 打赏
  • 举报
回复
我看过一本书叫《编码的奥秘》,我觉得应该很好的解释了你的问题,
书也不厚,只有大概270多页,但也不是这么点篇幅能摆得下的,
LZ有空的时候自己看看书吧,另外,楼上也有人推荐了《深入理解计算机系统》,
这书我没看过,但从其他人的评论来看,这书也把这些问题讲的很明白。
lxjlan 2009-05-01
  • 打赏
  • 举报
回复
我觉得先编译成汇编语言来看更明白些。
CARL_SEN 2009-05-01
  • 打赏
  • 举报
回复
这东西搞不定,得再去研究研究一下微机原理...
pathuang68 2009-05-01
  • 打赏
  • 举报
回复
楼主的精神值得赞扬!
越看似简单,人人都认可的东西,未必大家就知其所以然。
不信就试试,如果不翻阅字典,不知道有几人真正知道我们整天挂在嘴边的“逻辑”的含义?
shexinwei 2009-05-01
  • 打赏
  • 举报
回复

[Quote=引用 6 楼 baiwei156 的回复:]
1.用户告诉操作系统执行hello程序
2.操作系统找到该程序,检查其类型
3.检查程序首部,找出正文和数据的地址
4.文件系统找到第一个磁盘块
5.父进程需要创建一个新的子进程,执行hello程序 //编译生成obj文件,是程序翻译成为机器指令,再执行,将obj文件连接,装入内存
6.操作系统需要将执行文件映射到进程结构
7.操作系统设置CPU上下文环境,并跳到程序开始处
8.程序的第一条指令执行,失败,缺页中断发生
9.操作系统分配一页内存,并将代码从磁盘读入,继续执行 10.更多的缺页中断,读入更…
[/Quote]


这个似乎有点问题啊!!

自律则自由 2009-05-01
  • 打赏
  • 举报
回复
好问题
我正想问。
xladykiller 2009-05-01
  • 打赏
  • 举报
回复
学完汇编再来告诉你
a450571058 2009-04-30
  • 打赏
  • 举报
回复
这涉及到数字逻辑层次了......
z15881328993 2009-04-30
  • 打赏
  • 举报
回复
支持楼上的回答,我认为是在寄存器里计算,返回数据到内存,由内存递送显存
加载更多回复(20)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧