#include <stdio.h>
int main(int argc, char *argv[])
{
puts("hello world");
return 0;
}
用户通过操作接口向操作系统提交执行hello程序申请;
操作系统找到该程序,检查其类型;
检查程序首部,找出正文和数据的地址;
文件系统找到hello存储的第一个磁盘块
父进程需要创建一个新的子进程,执行hello程序
操作系统需要将执行文件映射到进程结构
操作系统设置CPU上下文环境,并跳到程序开始处
程序的第一条指令执行,失败,缺页中断发生
操作系统分配一页内存,并将代码从磁盘读入,继续执行
更多的缺页中断,读入更多的页面
程序执行系统调用,在文件描述符中写一字符串
操作系统检查字符串的位置是否正确
操作系统找到字符串被送往的设备
设备是一个伪终端,由一个进程控制
操作系统将字符串送给该进程
该进程告诉窗口系统它要显示字符串
窗口系统确定这是一个合法的操作,然后将字符串转换成像素
窗口系统将像素写入存储映像区
视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
显示器发射电子束
你在屏幕上看到hello world