進程管理 進程需要一定的資源(包括CPU時間、記憶體、文件、I/O設備)以完成其任務。這些資源可以在進程創建時分配給進程,也可以在執行進程時分配給進程。除了在創建時得到各種物理和邏輯資源外,進程還可以接受傳輸過來的各種初始化數據(輸入)。 需要註意:程式本省並不是進程,程式是被動的實體,而進程是一個活 ...
進程管理
進程需要一定的資源(包括CPU時間、記憶體、文件、I/O設備)以完成其任務。這些資源可以在進程創建時分配給進程,也可以在執行進程時分配給進程。除了在創建時得到各種物理和邏輯資源外,進程還可以接受傳輸過來的各種初始化數據(輸入)。
需要註意:程式本省並不是進程,程式是被動的實體,而進程是一個活動的實體。
進程是具有一定獨立功能的程式關於某個數據集合上的依次運行活動,進程是系統進行資源分配和調度的獨立單位。
線程是進程的一個實體,是CPU和分配的基本單位。線程自己基本不擁有系統資源,只擁有在運行中必不可少的資源(如程式計數器,寄存器和棧),但是它可與同屬一個進程的其他線程共用進程所擁有的全部資源。
一個線程可以創建和撤銷另一個線程。同一個進程中的多個線程之間可以併發執行。
相對進程而言,線程是一個更加接近於執行體的概念,它可以與同進程中的其他線程共用數據,但擁有自己的棧空間,擁有獨立的執行序列。
進程有獨立的地址空間,一個進程崩潰後,在保護模式下不會對其他進程產生影響,而線程只是進程中的不同執行路徑。線程有自己的堆棧和局部變數,但線程沒有單獨的地址空間,一個線程死掉等於整個進程死掉,所以多進程的程式要比多線程的程式健壯,但在進程切換時,消耗資源較大,效率要差一些。但對於一些要求同時進行並且又要共用某些變數的併發操作,只能用線程,不能用進程。
③進程在執行過程中擁有獨立的記憶體單元,而多線程共用記憶體,從而極大地提高了程式的運行效率。
④每個獨立的線程有一個程式運行的入口、順序執行序列和程式的出口。但是線程不能都獨立執行,必須依賴在應用程式中,由應用程式提供多個線程執行控制。
⑤多線程的意義在於一個應用程式,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。
線程執行開銷小,但不利於資源的管理和保護,而進程正相反。同時,線程適合在雙CPU系統上運行,而進程則可以跨機器運行。
操作系統負責下述與進程管理相關的活動:
記憶體管理
記憶體是可以被CPU和I/O設備所共同快速發昂問的數據倉庫。CPU在獲取指令周期時從記憶體中讀取指令,而在獲取數據周期時對記憶體內的數據經行讀出和寫入(馮·諾依曼結構中)。如果一個程式需要執行,那麼它必須先變換成絕對地址並裝入記憶體。隨著程式的執行,進程可以通過產生絕對地址來訪問記憶體中的程式指令和數據。最終,程式終止,其記憶體空間得以釋放,並且下一個程式可以裝入並得以執行。
操作系統負責下述有關記憶體管理的活動:
存儲管理
文件系統管理:是操作系統最為常見的組成部分。磁帶、磁碟、光碟是常見的存儲介質。每種介質需要通過一個設備來控制,如磁碟驅動器和磁帶驅動器等,擁有的屬性包括:訪問速度、容量、數據傳輸效率、訪問方法(順序或隨機)
文件是由其創建者定義的一組相關信息的集合。通常,文件表示程式(源程式和目標程式)和數據。數據文件可以使數值的、字元的、字元數值或二進位的。文件可以沒有格式,也可以有嚴格的格式。
操作系統通過管理大容量存儲器,來實現文件這一抽象概念。文件通常組成目錄以方便使用。最後,當多個用戶可以訪問文件時,需要控制由什麼人以及按照什麼方式來訪問文件。
操作系統負責以下有關文件管理的活動:
大容量存儲器管理:由於記憶體太小不能容納所有數據和程式,加上掉電會失去所有數據,電腦系統必須提供二級存儲器(secondary storage)以備份記憶體。絕大多數現代電腦系統都採用硬碟作為主要線上存儲介質來存儲程式和數據。
操作系統負責下麵有關硬碟管理的活動:
由於二級存儲器使用頻繁,因此必須高效。但是有時使用比二級存儲更慢價格更低的存儲器,如磁碟數據的備份、很少使用的數據、長期檔案存儲。磁帶驅動器以及磁帶、CD/DVD驅動器以及光碟就是典型的三級存儲(tertiary storage)設備。這些介質格式包括WORM(一次寫,多次讀)和RW(讀-寫)。三級存儲對系統性能並不是關鍵,但也要管理好。有些操作系統對之加以管理,而另一些則將三級存儲管理交給應用程式管理。
高速緩存:信息通常保存在一個存儲系統中(如記憶體)。當使用它時,它會被臨時地複製到更快的存儲系統中——高速緩存。當需要特定信息時,首先檢查它是否在高速緩存中。如果是,可直接使用高速緩存中的信息;否則,使用位於記憶體中的信息,同時將其複製到高速緩存中以便下次使用。
由於高速緩存大小有限,所以高速緩存管理(cache management)的設計很重要。對高速緩存大小和置換策略的仔細選擇可以極大地提高性能。
I/O系統:操作系統的目的之一在於對用戶隱藏具體硬體設備的特性。例如,在UNIX系統中,I/O子系統對操作系統本身隱藏了I/O設備的特性。I/O子系統包括下麵幾個部分: