• 操作系统如何加载程序


    操作系统如何加载程序

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

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

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

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

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

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

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

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

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

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

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

    12.显示器发射电子束

    13.屏幕看到hello world

  • 相关阅读:
    【Leetcode】反转链表 II
    将博客搬至CSDN
    UVA 11021(概率)
    zoj
    Codeforces Round #227 (Div. 2) / 387C George and Number (贪心)
    点头(1163)
    fzu-2164 Jason's problem(数论)
    nyist --ACM组队练习赛(链接)
    nyoj-括号匹配(二)15---动态规划
    动态规划
  • 原文地址:https://www.cnblogs.com/myguaiguai/p/12148034.html
Copyright © 2020-2023  润新知