C/C++面试:helloworld程序从开始到打印到屏幕上的全过程

1059 篇文章 277 订阅
  • 用户告诉操作系统执行helloworld程序(通过键盘输入等)
  • 操作系统:找到helloworld程序的相关信息,检测器类型是否是可执行文件;并通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址
  • 操作系统:创建一个新进程,将helloworld可执行文件映射到该进程结构,表示由该进程执行helloworld程序
  • 操作系统:为helloworld程序设置CPU上下文环境,并跳到程序开始处
  • 执行helloworld程序的第一条指令,发生缺页异常
  • 操作系统:分配一页物理内存,并将代码从磁盘读入内存,然后继续执行helloworld程序
  • helloworld程序执行puts函数(系统调用),在显示器上写一行字符串
  • 操作系统:找到要将字符串送往的显示设备,通常设备是由一个进程控制的,所以,操作系统将要写的字符串送给该进程
  • 操作系统:控制设备的进程告诉设备的窗口系统,它可以显示该字符串,窗口系统确定这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区
  • 视频硬件将像素转换成显示器可接收和⼀组控制数据信号;
  • 显示器解释信号,激发液晶屏;
  • 在屏幕上看到了 helloworld;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值