進程管理、內存管理、存儲管理初步了解


進程管理

進程需要一定的資源(包括CPU時間、內存、文件、I/O設備)以完成其任務。這些資源可以在進程創建時分配給進程,也可以在執行進程時分配給進程。除了在創建時得到各種物理和邏輯資源外,進程還可以接受傳輸過來的各種初始化數據(輸入)。

需要注意:程序本省並不是進程,程序是被動的實體,而進程是一個活動的實體。

clip_image001 進程與線程的定義:

clip_image002 進程是具有一定獨立功能的程序關於某個數據集合上的依次運行活動,進程是系統進行資源分配和調度的獨立單位。

clip_image002[1] 線程是進程的一個實體,是CPU和分配的基本單位。線程自己基本不擁有系統資源,只擁有在運行中必不可少的資源(如程序計數器,寄存器和棧),但是它可與同屬一個進程的其他線程共享進程所擁有的全部資源。

clip_image001[1] 進程與線程的關系:

clip_image002[2] 一個線程可以創建和撤銷另一個線程。同一個進程中的多個線程之間可以並發執行。

clip_image002[3] 相對進程而言,線程是一個更加接近於執行體的概念,它可以與同進程中的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。

clip_image001[2] 進程與線程的區別:

進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其他進程產生影響,而線程只是進程中的不同執行路徑。線程有自己的堆棧和局部變量,但線程沒有單獨的地址空間,一個線程死掉等於整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,消耗資源較大,效率要差一些。但對於一些要求同時進行並且又要共享某些變量的並發操作,只能用線程,不能用進程。

clip_image002[4] ①一個程序至少有一個進程,一個進程至少有一個線程。

clip_image002[5] ②線程的划分尺度小於進程,使得多線程程序的並發性高。

clip_image002[6] ③進程在執行過程中擁有獨立的內存單元,而多線程共享內存,從而極大地提高了程序的運行效率。

clip_image002[7] ④每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能都獨立執行,必須依賴在應用程序中,由應用程序提供多個線程執行控制。

clip_image002[8] ⑤多線程的意義在於一個應用程序,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。

clip_image001[3] 進程與線程的優缺點:

線程執行開銷小,但不利於資源的管理和保護,而進程正相反。同時,線程適合在雙CPU系統上運行,而進程則可以跨機器運行。

clip_image003

操作系統負責下述與進程管理相關的活動:

clip_image002[9] 創建和刪除用戶進程和系統進程。

clip_image002[10] 掛起和重啟進程

clip_image002[11] 提供進程同步機制

clip_image002[12] 提供進程通信機制

clip_image002[13] 提供死鎖處理機制

內存管理

內存是可以被CPU和I/O設備所共同快速發昂問的數據倉庫。CPU在獲取指令周期時從內存中讀取指令,而在獲取數據周期時對內存內的數據經行讀出和寫入(馮·諾依曼結構中)。如果一個程序需要執行,那么它必須先變換成絕對地址並裝入內存。隨着程序的執行,進程可以通過產生絕對地址來訪問內存中的程序指令和數據。最終,程序終止,其內存空間得以釋放,並且下一個程序可以裝入並得以執行。

clip_image005

操作系統負責下述有關內存管理的活動

clip_image002[14] 記錄內存的哪部分正在被使用以及被誰使用。

clip_image002[15] 當有內存空間時,決定哪些進程可以裝入內存。

clip_image002[16] 根據需要分配和釋放內存空間。

存儲管理

clip_image002[17] 文件系統管理

clip_image002[18] 大容量存儲系統管理

clip_image002[19] 高速緩存

clip_image002[20] I/O系統

文件系統管理:是操作系統最為常見的組成部分。磁帶、磁盤、光盤是常見的存儲介質。每種介質需要通過一個設備來控制,如磁盤驅動器和磁帶驅動器等,擁有的屬性包括:訪問速度、容量、數據傳輸效率、訪問方法(順序或隨機)

文件是由其創建者定義的一組相關信息的集合。通常,文件表示程序(源程序和目標程序)和數據。數據文件可以使數值的、字符的、字符數值或二進制的。文件可以沒有格式,也可以有嚴格的格式。

操作系統通過管理大容量存儲器,來實現文件這一抽象概念。文件通常組成目錄以方便使用。最后,當多個用戶可以訪問文件時,需要控制由什么人以及按照什么方式來訪問文件。

操作系統負責以下有關文件管理的活動:

clip_image002[21] 創建和刪除文件。

clip_image002[22] 創建和刪除目錄來組織文件。

clip_image002[23] 提供操作文件和目錄的原語。

clip_image002[24] 將文件映射到二級存儲上。

clip_image002[25] 在穩定存儲介質上備份文件。

clip_image006

大容量存儲器管理:由於內存太小不能容納所有數據和程序,加上掉電會失去所有數據,計算機系統必須提供二級存儲器(secondary storage)以備份內存。絕大多數現代計算機系統都采用硬盤作為主要在線存儲介質來存儲程序和數據。

操作系統負責下面有關硬盤管理的活動:

clip_image002[26] 空閑空間管理。

clip_image002[27] 存儲空間分配。

clip_image002[28] 硬盤調度。

clip_image007

由於二級存儲器使用頻繁,因此必須高效。但是有時使用比二級存儲更慢價格更低的存儲器,如磁盤數據的備份、很少使用的數據、長期檔案存儲。磁帶驅動器以及磁帶、CD/DVD驅動器以及光盤就是典型的三級存儲(tertiary storage)設備。這些介質格式包括WORM(一次寫,多次讀)和RW(讀-寫)。三級存儲對系統性能並不是關鍵,但也要管理好。有些操作系統對之加以管理,而另一些則將三級存儲管理交給應用程序管理。

高速緩存:信息通常保存在一個存儲系統中(如內存)。當使用它時,它會被臨時地復制到更快的存儲系統中——高速緩存。當需要特定信息時,首先檢查它是否在高速緩存中。如果是,可直接使用高速緩存中的信息;否則,使用位於內存中的信息,同時將其復制到高速緩存中以便下次使用。

clip_image008

由於高速緩存大小有限,所以高速緩存管理(cache management)的設計很重要。對高速緩存大小和置換策略的仔細選擇可以極大地提高性能。

I/O系統:操作系統的目的之一在於對用戶隱藏具體硬件設備的特性。例如,在UNIX系統中,I/O子系統對操作系統本身隱藏了I/O設備的特性。I/O子系統包括下面幾個部分:

clip_image002[29] 一個包括緩存、高速緩存和假托機的內存管理部分。

clip_image002[30] 通用設備驅動器接口

clip_image002[31] 特定硬件設備的驅動程序。

clip_image009


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM