操作系統如何加載程序
1.用戶編寫完代碼后,通過編譯器將編譯為數據段、代碼段、堆棧段、bss段,由鏈接器鏈接為裝入模塊
2.用戶通知操作系統要運行的程序
3.操作系統根據路徑找到對應的程序,檢測程序的頭部,找到代碼段和數據段的位置
4.文件系統根據這些段的位置找到對應的磁盤塊
5.操作系統創建進程(創建運行環境),並將要執行的程序的各個段映射到這個進程的空間
6.通過進程調度執行到了該進程,將CPU的上下文切換為該進程的上下文,然后執行程序的第一條指令。
7.執行指令發現指令並不在內存,於是產生缺頁異常,從磁盤拷貝然后繼續執行。
8.執行到printf,跳轉到庫函數執行,通過軟中斷發起系統調用,操作系統根據系統調用號跳轉到對應的中斷處理程序運行。
9.操作系統分配設備,並執行顯示驅動程序
10.窗口系統將像素寫入到存儲映像區
11.視頻硬件將像素表示成一組模擬信號輸出的顯示器
12.顯示器發射電子束
13.屏幕看到hello world