1、作業系統概述
1.1作業系統與計算機系統
現代計算機系統由硬體和軟體兩部分組成,是硬體和軟體互相交織形成的集合體,構成一個解決計算問題的工具。硬體是軟體運作的物質基礎。軟體能夠充分發揮硬體潛能并擴充功能,完成各種應用任務,兩者相輔相成,缺一不可。
作業系統在計算機系統中的地位:

問:作業系統如何管理資源?
1.2 作業系統資源管理技術
- OS 的主要任務之一是對資源進行管理,有序控制硬軟體資源的配置設定、使用和回收,是資源能夠共享。
- 為達到資源共享的目的。OS主要使用三種資源管理技術:
- 資源複用
- 資源虛拟
- 資源抽象
1.2.1 資源複用
多道程式設計是現代作業系統所采用的基本技術。系統中相應地有多個程序競争使用資源,由于計算機系統的實體資源是寶貴和稀有的,作業系統讓衆多程序共享實體資源,這種共享資源成為資源複用。實體資源的複用共享有兩大基本方法:空分複用共享和時分複用共享。
- 空分複用共享(space - multiplexed sharing)表明資源可以從“空間”上分割成更小的機關供程序使用。在計算機系統中,程序能夠空分複用那些滿足以下屬性的實體資源,即能夠将資源的不同機關同時配置設定給不同的程序。記憶體和外存(磁盤)資源是空分複用共享的例子,多個程序可同時進入記憶體,在記憶體中存放若幹程序的運作效率比僅存放一個程序的運作效率高;類似地,對磁盤空間可以進行空分複用,讓它同時為多個程序儲存資訊。至于資源如何被空分複用,資源不夠配置設定或程序要求動态申請更多資源時該如何應對,則都是作業系統所要完成的管理任務。
- 時分複用共享(time - multiplexed sharing)表明資源可以從“時間”上分割更小的機關供程序使用。也即是說可以輪流來使用資源,每個程序獲得這裡資源後會占用一段時間,多個程序則分時的共享這類資源。例如,處理器,程序可在一個時間段内獨占使用整個處理器。
程序空分複用記憶體資源,其映像裝入不同記憶體區域,各有自己的位址空間且通過硬碟存儲保護機制隔離;程序時分複用共享使得實體處理器可執行已裝入到不同實體位址區域中的程式代碼,作業系統跟蹤目前是哪個程序在執行、應該執行多長時間,這種共享硬體的技術十分重要,被稱為多道程式設計。
1.2.2 資源虛拟
虛拟又稱虛拟性,是指作業系統中實作對計算機軟硬體資源進行有效的管理的技術和手段,能進一步提高作業系統為使用者服務的能力和水準。虛拟的本質是對資源進行轉化、模拟或整合,把一個實體資源轉變成多個邏輯上的對應物(例如虛拟列印機),或把多個實體資源變成單個邏輯上的對應物(如虛拟記憶體=記憶體+外存),即建立無需共享的多個獨占資源的假象,或建立多個實體資源變成單個邏輯上的虛拟資源假象,以達到多使用者共享一套計算機實體資源的目的。複用和虛拟兩者相比較,“複用”所分割的是實際存在的實體資源,而“虛拟”則實作假想的虛拟同類資源。采用虛拟技術不但可以解決某類實體資源數量不足的問題,而且能夠為應用程式提供易于使用的虛拟資源并建立更好的運作環境。
- 虛拟技術可用于外部裝置
- 虛拟技術可用于存儲資源,用來實作虛拟記憶體
- 虛拟技術可用于檔案系統,這就是虛拟檔案系統(Virtual File System,VFS),使作業系統在VFS控制下可以同時支援多種具體檔案系統,這也是多個實體資源(具體檔案系統)變成單個邏輯上的對應物(VFS)的例子。
虛拟技術的應用範圍很廣,如通過視窗技術可以把一個實體螢幕虛拟成邏輯上的多個虛拟螢幕;通過信道多路複用技術可以把一條實體信道改造成多條虛拟信道,由于虛拟資源可以有喝多母語是便可同時配置設定給不同程序同時使用。
1.2.3 資源抽象
- 複用和虛拟的主要目标是解決實體資源不足的問題,抽象則用于處理系統複雜性,實作資源易用性。
- 資源抽象:通過軟體來屏蔽硬體資源的實作細節,簡化對硬體的操作、控制和使用。
抽象技術也可用于定義和構造多層軟體抽象,每層軟體都隐蔽下一層的實作細節,進而形成多級資源抽象。以磁盤為例,把資訊塊從記憶體寫入磁盤需要執行下列機器指令:
load(block,lenth,device); /* 把指定長度的資訊塊複制到磁盤緩沖存儲區 */
seek(device,track); /* 移動磁頭至指定的磁道 */
out(device,sector); /* 将資料寫入指定的扇區 */
對上述指令做一個簡單抽象,可以通過系統調用 write() 來打包上述指令:
void write(char *block, int length, int device, int track, int sector){
load(block,lenth,device);
seek(device,track);
out(device,sector);
}
為友善對實體資源進行管理和控制。作業系統中形成了三種最基礎的抽象:
程序抽象:是對進入記憶體的執行程式在處理器上操作的一種狀态集的一個抽象。
虛存抽象:即虛拟存儲器,是通過結合對記憶體和外存的管理來實作的。
檔案抽象:是裝置的一種抽象,通過将檔案中的位元組映射到儲存設備的實體塊中來實作。
1.3 作業系統虛拟機
- 虛拟機是在裸機的基礎上配置作業系統。虛拟機的每種資源都是實體資源通過複用、虛拟或抽象而得到的産物。
- 實體CPU采用時分共享複用;
- 實體記憶體采用虛拟存儲技術;
- 獨占型I/O裝置采用SPOOLing技術;
- 用檔案來抽象磁盤裝置。
1.4 作業系統的定義和作用
1.4.1 作業系統概述
作業系統(Operating System,簡稱OS)的出現、應用和發展是近半個世紀以來計算機軟體取得的一個重大進展,它經曆了從無到有、從小到大、從簡單到複雜、從原始到先進的發展曆程,并随之産生許多相關的基本概念、重要理論和核心技術。盡管尚無嚴格定義,但一般可把作業系統定義為:是管理系統資源、控制程式運作、改善人機界面、提供各種服務,并合理組織計算機工作流程和為使用者使用計算機提供良好接口的系統軟體。
作業系統是最靠近硬體的一層軟體,它把硬體邏輯改造成為完善的虛拟機,使得機器功能得到擴充,運作環境得到改善,系統效率得到提高,安全性能得到保證。它隔離其他上層軟體,并為它們提供接口和服務,使得上層軟體可以獲得遠較硬體所能提供的更多更強的功能上的支援。作業系統是軟體系統的核心,它與硬體一起構成了各種軟體的基礎運作平台。
作業系統是複雜、龐大的系統軟體,可以從不同的觀點來觀察它和研究它,常用的4中觀點是:
- 服務使用者觀點——作業系統作為使用者接口和公共服務程式
-
- 從内部來看OS提供系調用來擴充機器指令集,這些新功能可被任何應用程式調用,是一種特殊的公共服務程式。
- 從外部來看OS為使用者與計算機硬體系統之間的接口,處于使用者與計算機硬體系統之間,在作業系統的支援下,使用者能夠友善、安全、可靠地運作程式。
- 程序互動觀點——作業系統作為程序執行的控制者和協調者
-
- 作業系統引入程序概念,它是支援程式執行的一種執行機制,程序是執行中的程式,系統以程序方式組織程式在計算機上運作。作業系統可以看作由多個獨立運作的程序(使用者程序和系統程序)及一個對諸程序控制和協調的核心所組成。
- 不同的程序完成不同功能,同時運作的程序會發生互動,核心控制和協調程序正常運作,解決程序之間的同步、通信和死鎖問題。是以,作業系統是程序執行的控制者和協調者。這是一種動态觀察作業系統的方法、把程序在系統中執行的本質過程、内在聯系和狀态變化揭示出來。
- OS作為程序執行的控制者,能合理進行作業與程序的管理,以充分利用計算機資源,提高系統運作效率。
- 系統實作觀點——作業系統作為擴充機或虛拟機
-
- 由于裸機提供的是機器語言,難記難懂又難用,人們在多年以前就認識到必須找到某種方法将硬體的複雜性和使用者隔離出來。經過不斷的探索和研究,采用的方法是在計算機裸機上加上作業系統來組成一天新的計算機系統。
- 其實作過程大緻如下:把作業系統分成若幹層或子產品,從裸機開始,按照某種結構條件層次和子產品,每添加一次便形成新的抽象,系統功能就能增加一點,運作環境更加友好一點,使用更加友善。
- 一台沒有安裝作業系統的裸機,其功能再強,也是難于使用的。而作業系統的使用擴充了系統的功能,使用更加友善。
- 資源管理觀點——作業系統作為資源的管理者和控制者
-
- OS是資源管理者和控制者,通過CPU管理、存儲管理、裝置管理和檔案管理,對各種資源進行合理的配置設定。
- 概括來說,作業系統既是“管理者”,又是“服務員”;對内作為“管理者”,做好計算機系統軟硬體資源的管理、控制與排程,在裸機基礎上形成虛拟機供應應用程式使用并對程式執行進行控制和協調,提高系統效率和資源使用率;對外作為“服務員”,是使用者與硬體的接口和人機界面,在管理好資源的基礎上,為使用者提供友善的運作環境和各種公共服務,是以,資源來管理是作業系統的一項重要任務。
1.4.2 作業系統的功能和特性
1.4.2.1 作業系統功能
從資源管理的觀點來看,作業系統具有5項主要功能:
- 處理器管理
-
- 處理器是計算機系統中最為西遊和寶貴的資源,應該最大限度地提高其使用率。常常采用多道程式設計技術組織多個作業同時進行,解決處理器的排程、配置設定和回收問題。随着多處理器系統的出現,處理器管理更加複雜。為了做好處理器管理工作,描述多道程式的并發運作,作業系統引入程序概念,處理器的配置設定、排程和執行都以程序為基本機關。随着并行處理技術的發展,并發執行機關的粒度變細,并發執行的代價降低,在程序基礎上又引入線程概念。對處理器的管理和排程最終歸結為對程序和線程的管理和排程,包括程序控制和管理、線程控制和管理,确定處理器排程政策、設計處理器排程算法、做好處理器配置設定和回收等。
- 對處理機(CPU)執行“時間”的管理,實作CPU的配置設定和回收。在傳統的OS中,CPU的配置設定排程是以程序為機關,是以處理機管理最終歸為對程序管理。
- 存儲管理
-
- 存儲管理的主要任務是管理記憶體資源,為多道程式運作提供有力支撐,提高存儲空間效率,具體來說有記憶體配置設定和回收、位址轉換與存儲保護、記憶體共享與存儲擴充等。
- 總的來說就是實作記憶體配置設定與回收、存儲保護、位址映射、記憶體擴充,提高記憶體使用率。
- 裝置管理
-
- 裝置管理的主要任務是管理外部裝置,完成使用者提出的I/O請求配置設定其所需的I/O裝置;加快資料傳輸速度,發揮裝置的并行性,提高CPU和I/O裝置使用率;提供裝置驅動程式和中斷處理程式,為使用者隐蔽硬體操作細節,提供簡單的裝置使用方法,友善使用者使用I/O裝置。為此裝置管理應該具備以下功能:提供裝置中斷處理,提供緩沖區管理,提供裝置獨立性,實作邏輯裝置到實體裝置之間的映射和裝置的配置設定和回收,提供各種裝置驅動程式,實作共享型裝置的驅動排程,實作虛拟裝置等。
- 簡單地說就是:完成使用者提出的I/O請求,配置設定其所需的I/O裝置;提高CPU和I/O裝置使用率;友善使用者使用I/O裝置。包括:緩沖管理、裝置管理、裝置處理和虛拟裝置功能
- 檔案管理
-
- 處理器管理、存儲管理和裝置管理是針對計算機硬體資源的管理,檔案管理則是針對資訊資源的管理。在現代計算機系統中,通常把程式和資料以檔案形式存儲在外存上,以供使用者使用,這樣外存上儲存着大量的檔案,如果對這些檔案不能采取合理的管理方式,就會導緻混亂或使系統遭受破壞造成嚴重後果。為此作業系統中配置檔案系統,主要任務是對使用者檔案和系統檔案進行有效管理,實作安名存取;實作檔案共享、保護和保密;保證檔案的安全性;向使用者提供一整套能夠友善地使用檔案的操作和指令。具體來說,檔案管理的而主要任務有提供檔案邏輯組織方法,提供檔案實體組織方法,提供檔案存取和使用方法,是吸納檔案目錄管理,實作檔案共享和安全性控制,實作檔案存儲空間管理等。
- 總的來說就是:實作軟體資源的存取、共享和保護。包括: 檔案管理,存儲空間管理,目錄管理,檔案讀寫管理與存取控制。
- 使用者接口
-
- 提供系統調用、一組控制操作指令。
1.4.2.2 作業系統特性
作業系統是一個并發系統,其主要特性如下:
- 并發性(concurrency)
-
- 多道程式設計環境下,系統中裝入多個程式并運作。并發是指在一段時間内,宏觀上系統中有多個程式在“同時”運作。并行--指兩個或兩個以上的事件或活動在同一時刻發生(如正在列印的同時,也在輸入資料)。
- 并發性雖然能有效地改善系統資源使用率,但卻會引發一系列問題,是作業系統的設計和實作變得複雜化。例如怎樣實作不同程式之間的切換,以何種政策選擇程式運作,怎樣讓多個運作程式互通消息及協作完成任務,怎樣協調多個運作程式對資源的競争,等等。為了更好地解決上述問題,系統引入“程序”概念并提供政策和機制進行協調,是各個程序順利推行并獲得正确的運作結果。
- 共享性(sharing)
-
- 資源不再由一個程式獨占,共享指資源可被多個并發執行的程序所使用 。例如,記憶體中存儲多個程式。
- 共享性(sharing)是作業系統的另一個重要特性,指計算機系統中的資源可以被多個并發執行的程式共同使用,而不是被某個程式獨占。現實的方法是讓系統程式和應用程式公用一套計算機系統資源,因而并發性必然會産生資源共享的需要。資源共享的方式有以下兩種:
-
-
- 透明資源共享
-
-
-
-
- 作業系統采用複用、虛拟和抽象技術建立虛拟機,每個應用程式在各自的虛拟機上運作,虛拟機是實體計算機的仿真,系統通過共享硬體方式來實作這種抽象。
-
-
-
-
- 獨占資源共享
-
-
-
-
- 采用複用和虛拟技術能夠擴充某些資源的數量,應用程式不可能再因為競争這些資源而造成阻塞,但系統中還有其他資源,如錄音帶機,掃描器等,由于這些實體特性所決定,在同一時間内隻允許一個應用程式通路,即要求排它地使用這類資源。
- 共享性和并發性是作業系統的兩個基本特性,他們互為依存,一方面,資源共享是由程式并發執行而引起的,若系統不允許程式并發執行,也就不存在資源共享問題;另一方面,資源共享是支援并發性的基礎,若系統不能對資源共享實施有效管理,必然會影響程式的并發執行,甚至導緻程式無法并發執行,整個系統就會喪失并發性,進而使得系統效率低下。
-
-
- 異步性(asynchronism)
-
- 也稱不确定性,随機性。由于程式并發執行,其執行過程以不可預知的速度向前推進。程序何時執行?何時暫停?以怎樣的速度向前推進?都是異步(随機)的。
- 在多道程式環境中允許多個程式并發執行,并發活動會導緻随機事件的發生,由于資源有限而程式衆多,每個程式的執行并非連貫,而是“走走停停”。
- 随機性并不意味着作業系統無法控制資源的使用和程式的執行,系統内部産生的事件序列有許多可能性,作業系統的一項重要任務是確定捕捉任何随機事件,正确地處理可能發生的随機事件及其序列,否則會導緻嚴重後果。
- 虛拟性
-
- 虛拟系統、虛拟處理機、虛拟記憶體、虛拟裝置、虛拟檔案系統。
1.5 作業系統的發展和分類
1.5.1 作業系統的發展
1.5.1.1 人工階段
- 使用者上機獨占全機資源,造成資源使用率不高,系統效率低下。
- 浪費CPU時間,也極易發生差錯。
- 資料的輸入,程式的執行、結果的輸出均聯機進行,占用機器時間非常長。
- 主要沖突
-
- “人機沖突”:人工操作方式與機器使用率的沖突;
- CPU與I/O之間速度不比對的沖突。
1.5.1.2 監控程式階段
- 由監控程式将作業輸入到錄音帶上,當一批作業輸入完成後,監控程式自動把的第一個作業裝入主存,并把控制權交給作業。當該作業執行完成後,把控制權交回管理程式,監控程式再調入第二個作業到主存執行。
- 單道程式設計: 任一時刻隻允許一個程式在系統中執行。一個程式執行結束後才能執行下一個程式。
1.5.1.3 多道程式設計與作業系統形成
- 多道程式設計:任何時刻都允許多道程式在系統中同時執行。
- 特性:
-
- 從宏觀上看并行;
- 從微觀上看串行,各程式輪流占用CPU交替地執行。
- 目的:提高CPU的使用率,充分發揮計算機硬體的并行性。
多道程式設計舉例:
多道程式的優缺點:
- 優點
-
- 提高了CPU使用率;
- 提高了主存和I/O裝置使用率;
- 改進了系統吞吐率;
- 充分發揮了系統并行性。
- 缺點
-
- 作業周轉時間延長;資源管理複雜。
實作多道程式必須妥善解決三個問題:
- 存儲保護和程式浮動
- 處理器管理和配置設定
- 資源管理和排程
1.5.2 作業系統的分類
主要分類有:
- 批處理作業系統
- 分時作業系統
- 實時作業系統
- 個人作業系統
- 網絡作業系統
- 分布式作業系統
- 嵌入式作業系統
1.5.2.1 批處理作業系統
批處理作業系統服務于一系列成為批(batch)的作業。
批處理作業系統是最先采用多道程式設計技術的系統,他根據預先設定的排程政策選擇若幹作業并發地執行,系統資源使用率高,作業吞吐量打。
批處理作業系統的缺點是作業周期延長,不具備互動式計算能力,不利于程式的開發和調試。
運作于 IBM 43xx 系列機上的 IBM DOS/VS 是典型的早期批處理作業系統。
- 批處理系統的主要特征:
-
- 作業脫機工作
- 批量集中處理作業
- 多道程式運作
- 作業周轉時間長
1.5.2.2 分時作業系統
分時作業系統将CPU的時間劃分成若幹個片段,稱為時間片。作業系統以時間片為機關,輪流為每個終端使用者服務。
1961年,美國麻省理工學院(Massachusetts Institude of Technology,MIT)開發了第一個相容分時系統(Compatible Time - Sharing System,CTSS),成功地運作在IBM 7094 等計算機上,支援32個互動式使用者同時工作。
分時作業系統的特點:
- 同時性:多個程式并發執行
- 獨立性:使使用者感覺上獨占CPU
- 互動性:利用系統界面(圖形、指令)實作人機“會話”
批處理作業系統和分時作業系統雖然具有共性,都基于多道程式設計技術,但它們存在以下不同點:
- 追求目标不同
-
- 前者以提高系統資源使用率和作業吞吐率為目标;後者強調公平性,對聯機使用者的立即型指令要快速反應。
- 适應作業不同
-
- 前者适應已調試好的大型作業;而後者适應正在調試的小型作業。
- 資源使用率不同
-
- 前者可以合理安排不同負載的作業,是資源使用率達到最佳;後者讓多個終端作業使用相同類型的編譯系統、運作系統時,系統排程開銷小,能夠公平地調用 CPU 和記憶體資源。
1.5.2.3 實時作業系統
實時作業系統(real - time operating system)是指外部時間或資料産生時,能夠對其予接受并以足夠快的速度進行處理,所得結果能夠在規定時間内控制生産過程或對控制對象作出快速響應,并控制所有實時任務協調運作的作業系統。
主要特點:
- 響應及時和可靠性高。
- 設計目标是能對特定的輸入作出及時響應,并在規定的時間内完成對該事件的處理。
三種典型的實時作業系統
- 過程控制系統(生産過程控制)
- 資訊查詢系統(情報檢索)
- 民航票務系統等
1.6 使用者接口
1.6.1 程式接口與系統調用
- 程式接口又稱為API,使用者程式隻能使用這個接口調用作業系統的服務和功能。
- 它由一組系統調用組成,每一個系統調用都是一個完成特定功能的子程式。
- 每當應用程式要求OS提供某種服務(功能)時,便調用具有相應功能的系統調用,而不必了解系統内部結構和硬體細節。
系統調用是一種中介角色,把使用者與硬體隔離開來,應用程式通過系統調用才能請求系統服務和使用系統資源。
作用有:
- 是核心可基于權限和規則對資源通路進行裁決,保證系統的安全性;
- 是系統調用封裝資源抽象,提供一緻性接口,避免使用者使用資源時可能發生的錯誤,且使程式設計友善效率高。
系統調用分類:
- 程序管理
-
- 包括建立和撤銷程序、終止或異常終止程序、阻塞和喚醒程序、挂起和激活程序、監視和追蹤程序、擷取和設定程序屬性
-
- 包括建立檔案、删除檔案、打開檔案、關閉檔案、讀寫檔案、連結檔案、控制檔案、顯示檔案和目錄内容、顯示和設定檔案屬性。
-
- 包括申請裝置、釋放裝置、裝置 I/O 操作和重定向、獲得和設定裝置屬性、控制和檢查裝置狀态。
-
- 包括申請和釋放記憶體
- 程序通信
-
- 包括建立和斷開通信連接配接、發送和接收消息、來連結和斷開共享記憶體、套接字操作、傳送狀态資訊。
- 資訊維護
-
- 包括擷取和設定日期及時間、擷取和設定系統資料、生成診斷和統計資料。
系統調用和函數調用之間的差別:
- 調用形式和實作方式的不同
- 被調用代碼的位置不同
- 提供方式不同
1.6.2 操作接口與操作指令
指令行方式:以指令為機關完成預定的工作任務。
批指令方式:預先将一系列指令組織在.bat檔案中,一次建立,多次執行。
圖形化方式:通過選擇視窗、菜單、對話框和滾動條來完成對作業和檔案的控制和操作。
1.7 作業系統結構
1.7.1 作業系統結構分類
1.7.1.1 單體式結構
作業系統單體式結構采用子產品組合法,是基于結構化程式設計的一種軟體結構設計方法。子產品按照功能需求自由組合。
主要設計思想和步驟:
把子產品作為作業系統的基本機關,按照功能需要而不是根據程式和資料的特性,首先把整個系統分為若幹子產品,每個子產品具有一定的獨立功能,若幹個關聯子產品協作完成某個功能,明确各個子產品之間的接口關系,各個子產品間可以不加控制自由調用,是以又叫無序調用法;資料多數作為全程量使用;子產品之間需要傳遞參數或傳回結果時,其個數和方式也可以根據需要随意約定;然後分别設計、編碼、調試各個子產品;最後吧所有子產品連接配接成一個完成的單體系統。
優點:
- 結構緊密、組合友善
- 靈活性大
- 系統效率高
缺點:
- 子產品獨立性差,子產品之間牽連甚多;造成系統結構不清晰,正确性難保證,可靠性降低,系統功能增、删、改困難。
1.7.1.2 層次式結構
将OS劃分為若幹子產品,這些子產品按照調用次序排成若幹層次。
1.7.1.3 虛拟機結構
實體計算機資源通過多重化和共享技術可改造成多個虛拟機。這種技術的基本做法是:通過一類實體裝置來模拟另一類實體裝置,或通過實體是實際存在的,而邏輯上的對應物是虛幻的、感覺上的。
1.7.1.4 微核心結構(micro-kernel)
- 隻給核心配置設定一些最基本的功能,運作在核心模式。如:記憶體管理、程序間通信、基本排程等。
- 其他OS服務都是由運作在使用者模式下程序完成,可作為獨立應用程序,稱為服務程序。
- 微核心提供客戶程式和運作在使用者空間的各種服務之間的通信能力。
1.8 小結
- 什麼是作業系統?
答:作業系統是控制和管理計算機系統内各種硬體和軟體資源、有效地組織多道程式運作的系統軟體(或程式集合),使使用者和計算機之間的接口。
- OS種基本類型、性質、五個功能?
答:基本類型:
性質:
- 并發性
- 共享性
- 異步性
- 虛拟性。
五個功能:
- 什麼是多道程式設計?
答:多道程式設計技術就是在系統(記憶體)中同時存放并運作多道互相獨立的程式(作業),主機以交替的方式同時處理多道程式。他是一種宏觀上并行,微觀上串行的運作方式。
- 什麼是并發,為什麼要并發?
答:在作業系統中,是指一個時間段中有幾個程式都處于已啟動運作到運作完畢之間,且這幾個程式都是在同一個處理機上運作。
并發其實是一種解耦合的政策,它幫助我們把做什麼(目标)和什麼時候做(時機)分開。這樣做可以明顯改進應用程式的吞吐量(獲得更多的CPU排程時間)和結構(程式有多個部分在協同工作)。