深入理解計算機系統 之 操作系統管理硬件

當shell加載和運行完hello程序,shell和hello程序都沒有直接訪問鍵盤,顯示器,磁盤或者主存,它們依靠的是操作系統提供的服務。可以把操作系統看成程序和硬件之間插入的一層軟件。


文件是對I/O設備的抽象表示。

虛擬存儲器是對主存和磁盤I/O設備的抽象表示。

進程是對處理器,主存,I/O設備的抽象表示。

進程

操作系統實現交錯執行的機制成爲上下文切換

操作系統保持跟蹤進程運行所需要的所有狀態信息,這種狀態,叫做上下文


圖1-12爲示例場景,圖中兩個併發進程:shell進程和hello進程。

  1. 起初,只有shell進程在運行,即等待命令行上的輸入。
  2. 當我們讓他運行hello程序時,外殼通過調用一個專門的函數(系統調用),來執行我們的請求。(操作系統保存shell進程的上下文,創建一個hello進程及其上下文,然後將控制權交給新的hello進程)

    3.hello進程終止後,操作系統恢復shell進程的上下文,將控制權傳回給它,shell繼續等待下一個命令行輸入。

線程

一個進程可以由多個線程組成,每個線程都運行在進程的上下文中,並共享同樣的代碼和全局數據。

多線程之間比多進程之間更容易共享數據。

虛擬存儲器

它是一個抽象概念爲每個進程提供了一個假象,即每個進程都在獨佔地使用主存。

每個進程看到的是一致的存儲器,稱爲虛擬地址空間


地址空間最上面的區域是爲操作系統中代碼和數據保留的,這是對所有進程來說都一樣的。

地址空間的底部區域存放用戶進程定義的代碼和數據。

圖中地址從下往上增大。

文件

文件就是字節序列。每個I/O設備,包括磁盤,鍵盤,顯示器,網絡都可以稱爲文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章