操作系统如何加载程序

操作系统如何加载程序

1.用户编写完代码后,通过编译器将编译为数据段、代码段、堆栈段、bss段,由链接器链接为装入模块

2.用户通知操作系统要运行的程序

3.操作系统根据路径找到对应的程序,检测程序的头部,找到代码段和数据段的位置

4.文件系统根据这些段的位置找到对应的磁盘块

5.操作系统创建进程(创建运行环境),并将要执行的程序的各个段映射到这个进程的空间

6.通过进程调度执行到了该进程,将CPU的上下文切换为该进程的上下文,然后执行程序的第一条指令。

7.执行指令发现指令并不在内存,于是产生缺页异常,从磁盘拷贝然后继续执行。

8.执行到printf,跳转到库函数执行,通过软中断发起系统调用,操作系统根据系统调用号跳转到对应的中断处理程序运行。

9.操作系统分配设备,并执行显示驱动程序

10.窗口系统将像素写入到存储映像区

11.视频硬件将像素表示成一组模拟信号输出的显示器

12.显示器发射电子束

13.屏幕看到hello world

原文地址:https://www.cnblogs.com/myguaiguai/p/12148034.html