现代操作系统初理解
1.現代操作系統是由中斷驅動的:如果沒有進程要執行,沒有I/O 設備要服務,也沒有用戶請求要響應,操作系統將會靜靜地等待某件事件的發生。
2.操作系統和用戶共享了計算機系統的硬件和軟件:既然是共享了,就可能會發生一些BUG,為什么呢,如果一個進程陷入死循環,那么會間接影響其他進程的正確操作,甚至在多道程序設計中可能會發生更微妙的錯誤像蝴蝶效應一樣,一個錯誤的程序修改另一個程序,然后一直循環。
3.為了避免蝴蝶效應,至少需要兩種獨立的操作模式:用戶模式和監督程序模式(系統模式),這兩個模式位怎么使用呢?計算機硬件中增加一個稱為模式位 (mode bit)的位以表示當前模式:監督程序模式 (0) 和用戶模式 (1)?。有了模式位,就可區分為操作系統所執行的任務和為用戶所執行的任務。
4.當系統處于用戶模式切換到內核模式,需要通過調用系統調用使得模式位=0,然后來執行系統調用 相當于內核模式獲得對計算機的控制,最后再從系統調用返回模式位=1 系統將控制權交還給用戶程序時會切換到用戶模式。模式變化如圖:這就是雙重模式操作:
5.操作性和硬件是如何配合KILL掉錯誤的程序:一旦硬件保護到位,硬件可檢測到違反模式的錯誤。這些錯誤通常由操作系統處理。 如果一個用戶程序出現失敗,如試圖執行非法指令或者訪問不屬于自己地址空間的內存, 那么硬件會向操作系統發出陷阱信號。陷阱如同中斷-樣,能通過中斷向量將控制轉交給 操作系統。只要一個程序出現錯誤,操作系統就必須對它進行異常終止。這種情況的處理代碼與用戶請求的異常終止的處理代碼一樣,會給出一個適當的出錯信息,程序內存會被轉儲。內存信息轉儲通常寫到文件以便用戶或程序員能檢查它,糾正錯誤,并重新啟動程序。
6.使用定時器來防止用戶程序運行時間過長:操作系統在將控制權交給用戶之前,應確保設置好定時器以便產生中斷。如果定時器產生中斷,那么控制權會自動交給操作系統,而操作泵統可以將中斷作為致命錯誤來處理,也可以給予用戶程序更多的時間。
7.進程:處于執行中的程序被稱為進程,程序本身并不是進程,程序是被動的實體,如同存儲在磁盤上的文件內容,而進程是一個活動的實體,一個是主動在CPU中運行,一個是通知它到來才去執行。
操作系統負責下述與進程管理相關的活動:
創建和刪除用戶進程和系統進程。
掛起和重啟進程。
提供進程同步機制。
提供進程通信機制。
提供死鎖處理機制。
8.內存管理:內存是現代計算機系統操作的中心,如果一個程序要執行,那么它必須先變換成絕對地址井裝入內存。隨著程序的執行,進程可以通過產生絕對地址來訪問內存中的程序指令和數據 。最后,程序終止,其內存空間得以釋放,并且下一程序可以裝入并得以執行。
操作系統負責下列有關內存管理的活動:
記錄內存的哪部分正在被使用及被誰使用。
當有內存空間時,決定哪些進程可以裝入內存。
根據需要分配和釋放內存空間。 9.文件管理:在我們電腦的硬盤或者磁盤介質來說,需要用硬盤驅動器或者磁盤驅動器設備去控制,操作系統通過管理大容量存儲器,來實現文件這一抽象概念,而且,文件通常組成目錄以方便使用,而且還可以控制一些讀寫權限去訪問共享文件 操作系統負責下列有關文件管理的活動: 創建和刪除文件。 創建和刪除目錄來組織文件。 提供操作文件和|目錄的原語。 將文件映射到二級存儲上。 在穩定存儲介質上備份文件。?
?
?
?
?
?
總結
- 上一篇: 驱动api_消费者驱动契约已死?
- 下一篇: 电脑环境变量设置 java_如何设置自己