1.操作系統(tǒng)管理硬件
真正操縱硬件的是操作系統(tǒng),操作系統(tǒng)可以看成是應用程序和硬件之間的中間層。所有的應用程序對硬件的操作必須通過操作系統(tǒng)來完成,這樣做的目的是:首先,防止硬件被失控的應用程序所濫用;其次,操作系統(tǒng)提供統(tǒng)一的機制來控制這些復雜的底層硬件。

操作系統(tǒng)管理硬件
為了實現(xiàn)操作系統(tǒng)對硬件的操縱,操作系統(tǒng)引入了幾個抽象的概念。 文件是對IO設備的抽象、虛擬內存是對內存和磁盤IO的抽象、進程是對處理器、內存及IO設備的抽象 。

操作系統(tǒng)的抽象機制
2.進程的解釋
(1).以shell命令行中執(zhí)行./hello命令為例進行說明,最開始的時候只有shell進程在運行,即shell在等待命令行的輸入。

命令輸入
(2).當通過shell進程加載hello進程時,shell進程通過系統(tǒng)調用來執(zhí)行我們的請求。系統(tǒng)調用會將控制權從shell進程傳遞給操作系統(tǒng),操作系統(tǒng)保存shell進程的 上下文 。然后,創(chuàng)建一個新的hello進程及其上下文。接著,將控制權轉交給新的hello進程。hello進程執(zhí)行完成后,操作系統(tǒng)會恢復shell進程的上下文,并且將控制權交給shell進程,之后shell進程繼續(xù)等待下一個命令的輸入。

進程上下文切換
上下文:操作系統(tǒng)會跟蹤進程運行中所需要的所有狀態(tài)信息,這種狀態(tài)(例如:當前PC和寄存器的值、內存中的內容等)稱為上下文。
3.線程的解釋
現(xiàn)代操作系統(tǒng)中一個進程由多個線程組成,每個線程都運行在進程的上下文中,共享代碼和數(shù)據(jù)。

線程
4.虛擬內存
操作系統(tǒng)為每個進程提供了一個假象,即每個進程都在獨自占用整個內存空間。每個進程看到的內存都是一樣的,稱之為虛擬地址空間。

進程的虛擬地址空間
進程的虛擬地址空間:從下往上,地址是增大的。
第一個區(qū)域:用來存放程序的代碼和數(shù)據(jù)的,這個區(qū)域的內容是從可執(zhí)行目標文件中加載而來的。對所有進程來說,代碼都是從固定的地址開始的;
第二個區(qū)域:堆heap,函數(shù)malloc所申請的地址空間就在這個堆中的,堆可以在運行時動態(tài)的擴展和收縮;
第三個區(qū)域:共享庫的存放區(qū)域,這個區(qū)域存放C語言的標準庫和數(shù)學庫這類共享庫的代碼和數(shù)據(jù);
第四個區(qū)域:用戶棧,函數(shù)調用的本質就是壓棧;
第五個區(qū)域:為內核保留的區(qū)域,應用程序的代碼不能讀寫這個區(qū)域的數(shù)據(jù),也不能直接調用內核中定義的函數(shù),這個區(qū)域對應用程序不可見;
5.文件
Linux中一切皆文件,鍵盤、鼠標、磁盤、顯示器,甚至網(wǎng)絡這些都可以看成是文件,系統(tǒng)中所有的輸入和輸出都可以通過讀寫文件來完成。

"一切皆文件"
-
處理器
+關注
關注
68文章
20346瀏覽量
255405 -
計算機
+關注
關注
19文章
7844瀏覽量
93504 -
操作系統(tǒng)
+關注
關注
37文章
7446瀏覽量
129655 -
計算機系統(tǒng)
+關注
關注
0文章
293瀏覽量
25360 -
線程
+關注
關注
0文章
511瀏覽量
20880
發(fā)布評論請先 登錄
什么是計算機系統(tǒng)、計算機硬件和計算機軟件?
什么是計算機系統(tǒng)?硬件和軟件哪個更重要?
計算機系統(tǒng)中的軟件系統(tǒng)
嵌入式計算機系統(tǒng)概述
基于EDA平臺的計算機系統(tǒng)結構課程實踐
微型計算機系統(tǒng)
什么是計算機系統(tǒng)的容錯性
計算機系統(tǒng)小結
計算機系統(tǒng)電磁輻射測量
淺析計算機系統(tǒng)的組成
計算機系統(tǒng)講解(下)
評論