- 相關推薦
看操作系統對程序的執行過程有哪些支持
怎么看操作系統對程序的執行過程有哪些支持呢?下面就一起來看看吧!更多消息請關注應屆畢業生網!
通過一個C程序,看操作系統做了什么:
一個C程序:helloworld
這個程序的功能是調用puts函數,在標準輸出設備(顯示器)上顯示字符串hello world
1. (用戶)要啟動程序執行,用戶告訴操作系統執行hello world程序(如何告知?)
-- 命令行鍵入相應的命令
-- 通過鼠標雙擊hello world程序的圖標
2. (操作系統)操作系統接到用戶的請求之后,就會根據用戶提供的文件名,到磁盤上找到hello world程序的相關信息,檢查其類型是否是可執行文件;并通過程序首部信息, 確定代碼和數據在可執行文件中的位置并計算出對應的磁盤塊地址(文件格式?)
-- Windows:PE
-- Linux:ELF
3. (操作系統)為了執行這個hello world程序,操作系統創建一個新的進程,并將hello world可執行文件格式映射到該進程結構,表示由該進程執行hello world程序
4. (操作系統)操作系統為hello world程序設置CPU上下文環境,并跳到程序開始處,準備執行這個程序,下一個指令周期,就是執行hello world程序
5. (CPU)假設調度程序正好選中hello world程序,操作系統把控制權交給了調度程序,執行hello world程序的第一條指令,發生缺頁異常。程序在執行的時候,先要把程序的代碼和數據讀入內存,CPU才能執行,但是hello world的代碼和數據還沒有讀入內存,所以這個時候硬件機制就會捕獲缺頁異常,并且把控制權交給操作系統
6. (操作系統)操作系統管理了計算機系統中的內存,比如采用頁式存儲方案的話,內存就有很多的物理頁面,操作系統的內存管理模塊就會分配一頁空閑的物理內存,并且根據前面計算出的磁盤塊地址把hello world程序的代碼從磁盤讀入內存,然后繼續執行hello world程序,有的時候程序很大,一頁內存還不夠,因此在執行過程中會多次地產生缺頁異常,然后從磁盤讀入程序到內存
7. (CPU)hello world程序執行puts函數(系統調用,由操作系統完成),在顯示器(標準輸出設備)上寫(顯示)一字符串
8. (操作系統)找到要將字符串送往的顯示設備,通常設備是由一個進程控制的,所以,操作系統將要寫的字符串送給該進程
9. (操作系統)控制設備的進程告訴設備的窗口系統它要顯示字符串,窗口系統確定這是一個合法的操作,然后將字符串轉換成像素,將像素寫入設備的存儲映像區
10. 視頻硬件將像素轉換成顯示器可接收的一組控制/數據信號
11. 顯示器解釋信號,激發液晶屏
12. 在屏幕上看到了“hello world”
在CPU上執行一個用戶程序,這個用戶程序會不時地去請求操作系統的服務,因此在CPU上,時而運行的是用戶程序,時而運行的是操作系統的程序
hello world程序在執行的時候需要操作系統來創建進程,因此轉到操作系統創建進程,進程創建完了以后從操作系統返回,接著執行hello world程序
出現了缺頁異常以后,控制權又轉回了操作系統,操作系統分配物理內存給用戶程序,然后又轉向用戶程序接著執行
然后hello world程序要執行puts函數,又轉向了操作系統
這是從用戶程序在執行過程不斷請求操作系統服務這個角度來看程序執行的過程
操作系統在執行過程中,通過調度選中一個程序然后執行
程序執行過程中會不斷地陷入操作系統,由操作系統完成一些服務
然后再通過調度再選中程序再執行
Summary
在一個程序的執行過程中,操作系統負責了這個程序的啟動過程,負責了這個程序的執行過程。同時,在執行過程中,不斷地為用戶程序執行提供各種各樣的支持
【看操作系統對程序的執行過程有哪些支持】相關文章:
操作系統有哪些07-21
操作系統有哪些05-24
電腦有哪些操作系統?08-23
國產操作系統有哪些?10-21
操作系統有哪些【實用】07-20
操作系統有哪些類型08-22
Linux操作系統有哪些08-20
好用的國產操作系統有哪些07-26
常見的Linux操作系統有哪些06-18
操作系統有哪些(15篇)07-20