作業系統基礎

來源:互聯網
上載者:User

這周在看作業系統原理的視頻,主要包括進程管理、儲存管理、外部裝置管理和檔案管理。

整理如下:

一、什麼是作業系統?作業系統可以從三個方面理解,虛擬機器的觀點、資源管理者(監視資源使用方式,分配回收資源、保護資源的使用)、工作群組織觀點(協調應用軟體的執行次序)。總之,作業系統電腦中的系統軟體,管理和控制電腦系統中的硬體和軟體資源,合理的組織電腦的工作流程,以便有效利用這些資源為使用者提供一個功能強,使用方便的工作環境,從而在電腦和使用者之間起到介面作用。二、進程管理1、進程:程式的一次執行(動態概念),包括可執行程式、程式所需的資料、相關狀態資訊。進程是擁有資源的最小單位。  進程的結構:程式、資料集合、進程式控制制塊PCB(進城存在的唯一標識)。PCB組織方式可以是鏈表、表格結構、多級隊列等。進程的狀態:執行、就緒、阻塞、建立、終止、就緒/掛起、阻塞/掛起。交換技術是將記憶體中暫時不能啟動並執行進程或暫時不用的資料和程式,換出到外存(通常PCB不換出記憶體),騰出記憶體空間,把已經具備運行條件的進程或進程所需資料和程式換入記憶體。進程被交換到外存,此時進程為掛起狀態。2、作業系統的核心:基於硬體的第一層軟體擴充,提供作業系統功能,是作業系統工作的基礎。將與硬體緊密相關的(如中斷處理、裝置驅動程式)、基本的、公用的、運行頻率較高的模組(如時鐘管理、進程調度等)以及關鍵性資料結構獨立開來,使之常駐記憶體,並對他們進行特殊保護,著一些部分成為作業系統核心。3、進程的互斥與同步     實現並發控制,各個進程互相競爭資源,某一時刻只允許一個進程使用的資源叫做臨界資源,訪問臨界資源的那段代碼為臨界區,任何時刻只允許一個進程進入臨界區。各個進程之間也要共同協作,這就要求必須保證資料的一致性。並發控制還要求各個進程之間通訊協作,進程通訊的方式主要有:訊息傳遞、管道、共用儲存區等。互斥與同步的解決方案策略:①軟體方法,很難控制進程間的同步於互斥,太過於複雜,並且效率很低。②硬體方法,通過屏蔽中斷或採用專門的機器指令控制互斥與同步,但是會造成進程的忙等待。③訊號量方法,已經成為控制進程同步與互斥的通用方法。       兩個或多個進程通過訊號量進行合作,可以迫使進程在某個位置阻塞等待,直到他收到一個可以向前推進的訊號(被喚醒),實現號誌作用的變數稱為訊號量,定義為記錄型變數s,其中一個域為整形,另一域為隊列,隊列的元素為等待訊號量的阻塞進程。對訊號量的兩個原子操作為wait(s)、signal(s)。訊號量有互斥訊號量(用於申請或釋放資源的使用權,s.count初始化為1)和資源訊號量(用於申請或歸還資源,s.count初始化為可用資源的數量)。      進入臨界區之前,先執行wait(s)原語,若s.count<0,則進成調用阻塞原語將自己阻塞,並插入到s.queue隊列中。一旦其他某個進程執行了signal(s)原語中的s.count+1,發現s.count小於等於0(即阻塞隊列中又被阻塞的進程),調用喚醒原語,將阻塞隊列中的第一個進程喚醒。電腦系統中的兩個經典問題,生產者和消費者問題,讀者和寫者問題都可以用訊號量方法實現。④管程方法,管程是管理進程間同步的機制,他保證進程互斥的訪問共用變數,提供了一個方便的阻塞和喚醒進程的機構,更容易使用和控制。管程是由局部於管程的資料和一個或多個內部過程所組成的模組(有點像對象),局部於管程的資料只能被局部於管程內的過程所訪問,管程外的過程不能對其進行操作;相反地,局部於管程內的過程只能訪問管程內的資料結構。管程本身被作為一種臨界區,進程可以在任何需要的地方調用管程中的過程,任何時刻管程中只有一個活躍的進程,其他進程必須等待。管程是一個語言成分,對他的互斥訪問通常由編譯器在編譯時間自動添加,不需要編程者關心。⑤訊息傳遞的方法進程之間通訊方式有三種:基於共用儲存區(不需資料移動,適用本地通訊)、訊息傳遞、郵箱機制。訊息傳遞方式,訊息中包含的資訊有:訊息類型、目的地址、源地址、訊息長度、控制資訊和訊息內容實現進程間的通訊,需要send(目的地址,訊息)和receive(源地址,訊息)兩個通訊原語。只有當一個發送進程發送出訊息厚,接收進程才能接收。訊息傳遞的三種同步方式:①阻塞發送,阻塞接收(使進程間緊密同步)②不阻塞發送,阻塞接收(通常用於服務進程為其他進程提供服務)③不阻塞發送,不阻塞接收(常用於分布式系統)若發送進程與接收進程共用一個資料結構,在其中進行中轉,該資料結構通常稱為郵箱。多個並發執行的發送進程和接收進程共用一個郵箱mutex,郵箱中訊息可以為一條(對應互斥訊號量),也可以為多條(對應資源訊號量)。如果進程希望進入臨界區,必須先從郵箱中接收一條訊息,若郵箱為空白,則該進程被阻塞;若進程收到郵箱中的一條訊息,則進入臨界區,執行完畢退出臨界區後,將該訊息發送回郵箱。4、死結問題多個進程因為競爭資源,或執行時推進的順序不當,或相互連信而永久阻塞的現象稱為死結。如果沒有外力作用,死結將永遠保持下去。死結產生的條件有:互斥、佔有且等待、非剝奪、迴圈等待。解決死結問題的方法:①預防死結,破壞死結產生的條件。②避免死結,在資源分派之前預測是否會導致死結,決定是否進行資源分派。但是這個方法有很多限制條件,必須預先聲明每個進程所需資源總量;進程之間相互獨立,他們的執行順序取決於系統安全而不是進程間的同步要求;系統必提供固定數量資源供進程使用;若進程佔有系統資源,則不能讓其退出系統。③檢測並解決死結死結定理:若且唯若系統某狀態s所對應的資源分派圖是不可完全簡化的,稱s是死結狀態。解除死結:①撤銷所有死結進程。②把死結進程恢複到前一個檢查點。③按某個原則逐個選擇死結進程進行撤銷,直到解除死結。④按某原則逐個剝奪進程資源。三、儲存管理1、儲存管理的任務     ①儲存分配,記憶體空間的分配與回收。     ②地址映射,邏輯地址到物理地址的映射,有靜態映射和動態映射。     ③儲存保護,防止地址越界,防止操作越權。     ④儲存共用,代碼共用(為了節省儲存空間)和資料共用(為了處理序間通訊)     ⑤儲存擴充,       虛擬儲存技術,將部分外存虛擬為記憶體,並將內外存有機結合,得到一個容量相當於外存,速度接近記憶體,價格便宜的虛擬儲存系統。2、記憶體劃分與分配技術        1)、 記憶體劃分可以分為靜態劃分(預先劃分)和動態劃分。         靜態劃分包括分頁(一個進程可以分到多個頁)和分區(有固定分區和異長分區,一個進程分入一個區)。對於頁的控制有位示圖、空閑頁框表、空閑頁框鏈表。         動態劃分,不用考慮存在內零頭問題。系統必須維護一張空閑分區表。         動態劃分的演算法有①首次適應演算法;從低位址區段開始尋找一個滿足要求的的記憶體地區。                                      ②下次適應演算法;該演算法記錄上次分配分區的位置,從上次分配分區處開始尋找。                                      ③最佳適應演算法;選擇滿足要求並且長度最小的分區。                                      ④最差適應演算法;選擇滿足要求並且長度最大的分區。        2)、簡單儲存管理技術   (有連續儲存和非連續儲存)非連續儲存包括分頁儲存技術,分段儲存技術,段頁式儲存技術。①簡單分頁儲存管理         將記憶體分成相同大小的儲存塊,稱為頁框。將使用者的邏輯地址空間劃分成若干與頁框大小相等的部分,每部分稱為頁。系統以頁框為單位將記憶體分給進程,分給一個進程的頁框不一定是連續的,進程的一個頁對應記憶體的一個頁框。         邏輯地址為頁號+頁內位移量,地址轉換過程為:將邏輯地址中的頁號取出作為索引尋找頁表,找到對應頁框號,根據頁框號和頁內位移量得到物理地址。②簡單分段儲存管理         程式由若干邏輯段組成,分段儲存是動態劃分技術,將實體記憶體動態劃分成許多尺寸不等的分區,進程的每一段獨立分配一個分區。一個進程的各個段分到的分區不一定是連續的分區。           邏輯地址為段號+段內地址,地址轉換:邏輯地址中的段號取出作為索引,尋找進程的段表,將段內地址與段的長度比較,如果大與段的長度,為越界訪問,引起中斷。若是合法訪問,將段的起始地址與段內地址相加,得到物理地址。          分頁與分段儲存技術比較:1、都是非連續儲存,由地址映射實現地址變換。                                                     2、頁是資訊的物理單位,大小固定;段是資訊的邏輯單位,各段長度不定,每一段都有一定的邏輯含義。                                          3、分頁的地址空間是一維的,邏輯地址的劃分由機器硬體實現,對使用者透明;分段的地址空間是二維或多維的,編程者知道段名和段內位移量。                                                     4、分頁源於系統管理實體記憶體的需要,在系統內部進行,由系統實現。分段源於使用者進行模組化程式設計的需要,在系統外部進行,由使用者實施。③段頁式儲存管理            記憶體空間分成大小相等的頁框;進程的地址空間採用分段方式,按照程式的邏輯關係分成若干段;進程的每一段採用分頁方法,按照頁框大小把每一段分成若干頁。          邏輯地址為:段號+段內頁號+頁內位移量。地址轉換:邏輯地址中的段號取出作為索引尋找段表,找到對應頁表首地址,根據頁表首地址和段內頁號得到對應頁框號,頁框號和頁內位移量得到對應物理地址。3、虛擬儲存技術            簡單儲存要求將一個進程所需的程式和資料全部裝入記憶體方可執行。虛擬儲存可以實現只裝入一部分程式的進程到記憶體也能執行,當訪問到不在記憶體的指令和資料時,系統要將該頁或段裝入記憶體,這需要消耗磁碟的I/O操作時間。            虛擬儲存依賴的技術:缺頁/段中斷、交換技術。         虛擬儲存可能會有抖動問題,如果系統花費大量時間把程式和資料頻繁的裝入和移出記憶體,而不是執行使用者指令,那麼稱系統出現抖動。抖動的出現是因為分頁或者分段的不恰當。      虛擬儲存管理技術有虛擬儲存分頁技術、虛擬儲存分段技術、虛擬儲存段頁式技術。邏輯地址到物理地址的轉換同簡單儲存管理一樣,只是在訪問頁表、段表時增加判斷所訪問的頁、段是否在記憶體中,若不在記憶體則先將其裝入記憶體再執行下去。                     虛擬儲存系統的軟體策略:1、駐留集管理。駐留集是進程分到的物理頁框的集合。他解決系統為每個活躍進程分配多少頁框的問題。2、頁面放置策略。系統應該在記憶體什麼位置為活躍進程分配頁框。3、頁面擷取策略。何時把一個頁面裝入記憶體。4、頁面置換策略。解決當系統欲把一個頁面裝入記憶體時,應在什麼範圍判斷有沒有空閑頁框供分配;當指定範圍沒有空閑頁框時,應從指定範圍選取哪個頁面移出記憶體。5、頁面清除策略。將由頁面置換演算法選擇的被修改的置換頁面儲存到外存。6、負載控制。解決系統應當保持多少個活躍進程駐留在記憶體的問題。四、裝置管理1、裝置管理的主要功能:裝置分配:作業系統統一調度和控制,裝置分配程式按照一定策略為申請裝置的使用者進程分配裝置,記錄裝置的使用方式。                裝置映射:邏輯裝置到物理裝置的映射。                                        裝置驅動:對物理裝置進行控制,以實現真正地I/O操作。                                        I/O緩衝區管理:處理器和外設速度不匹配。2、I/O系統結構:匯流排型I/O系統、通道型I/O系統、具有控制器的I/O系統。對裝置的控制,從處理機的角度,各種外設可以看成由一組寄存器組成的。每一裝置都能通過寄存器的地址唯一確定。    I/O控制方式:程式I/O方式,忙等待或迴圈測試方式。                           中斷I/O方式                           DMA方式,直接儲存空間訪問方式。資料直接從裝置送入記憶體,或直接從記憶體送入裝置。                           I/O通道方式,通道相當於一個功能單純的處理機,專門用於處理I/O操作。3、I/O緩衝技術提前讀:使用者進程從I/O緩衝區取走一個資料後,立即發送出對下一個資料的輸入請求。延後寫:作業系統很快將使用者請求的輸出資料從使用者進程工作區寫到I/O緩衝區。4、虛擬設備虛擬設備技術類似於緩衝區技術,可以認為是為裝置提供了多個更大的,甚至在實際工作中是無限長度的緩衝區,進一步提高系統效率。在進程空間和外設之間加入共用型裝置。五、檔案管理1、檔案系統的功能有:管理檔案儲存體空間,檔案目錄、完成檔案讀/寫,實現檔案分享權限設定與保護;為使用者提供互動式命令介面和程式調用介面。檔案是一種具有符號名的、相關聯元素的有序集合。資料結構有欄位和記錄。檔案類型,按照邏輯結構分類分為有結構檔案(檔案的元素是記錄,檔案有若干條記錄組成。按結構可分為對檔案、循序檔、索引循序檔、索引檔案和直接檔案)和無結構檔案(檔案看成一個位元組流)。按照物理組織圖可分為連續檔案(檔案中資訊連續儲存到若干相鄰的儲存塊)和非連續檔案(連結檔案和索引檔案)。2、檔案目錄目錄的設計對檔案系統效能的影響是至關重要的。目錄設計包括目錄內容和目錄結構兩方面。檔案目錄中應包含的資訊有基本資料(檔案名稱、檔案類型、檔案組織)、地址資訊(卷、起始地址、檔案的大小、分配的大小)和存取控制資訊(檔案主、保護資訊、表急位、建立日期、上一次讀日期和閱讀者、上一次修改日期和修改者、備份日期、當前使用計數)。檔案目錄結構要考慮使用整體目錄結構(目錄中的每個檔案有一個表目,在每個檔案表目中包含該檔案目錄的全部內容)還是分體式目錄結構(檔案目錄只包括檔案名稱和一個指向另一資料區塊的指標,該資料區塊中包含了檔案目錄內容以外的全部內容),是否採用層次的樹形目錄結構(單級目錄結構、兩級目錄結構和層次目錄結構)。3、檔案的實體儲存體將儲存空間分成大小相等的資料區塊,一個分區等於一個資料區塊或者是一個分區為若干連續的資料區塊。檔案儲存體空間分配技術,連續分配(使用可變大小的連續分區,預分配)                                        連結分配(將檔案分區設定為若干連續的資料區塊,每個檔案的各個分區通過指標相連)                                        索引分配(可以是基於資料區塊的分區的索引分配,也可以是基於可變分區的索引分配)空閑空間管理:空閑分區表(儲存空間中各個空閑分區登記在一張表中,一個分區對應一個表項,將所有空閑分區按起始儲存塊號遞增的順序依次排列);空閑分區鏈表(用指標將各個空閑分區串連起來,並記載各個空閑分區的大小);索引(將空閑分區看成檔案,按檔案儲存體空間分配方法為空白閑分區建立索引);位示圖(用二進位0和1表示儲存空間中儲存塊的使用狀態)4、邏輯檔案與物理資料區塊之間的轉換無結構位元組檔案,需要“流-塊轉換器”,一個資料區塊可儲存若干位元組。有結構檔案,需要“記錄-塊轉換器”,記錄組塊方法有:①固定組塊法,資料區塊由若干條固定長度的記錄組成,一條記錄完整儲存在一個塊中。②可變長跨快組塊法,允許紀錄被劃分儲存在不同的塊,用指標連結一條跨Block Storage記錄所在的兩個資料區塊。③可變長非跨塊組塊法,不允許記錄儲存在兩個塊。5、檔案分享權限設定(同時存取、存取許可權)檔案分享權限設定就是可以從不同地方開啟同一個檔案。可以用連結目錄項、基本檔案目錄、索引節點、URL實現檔案分享權限設定。6、檔案的保護與安全影響檔案安全的主要因素是資料丟失(系統容錯技術和備份技術)和非法入侵。安全性管理有以下幾方面       ①系統級安全,防止未核准使用者進入系統。       ②使用者級管理,根據不同使用者,設定不同檔案存取權限。       ③目錄級安全管理,與使用者權限無關,是為保護系統中的各種目錄而設計的,只有系統核心才具有寫目錄的權利。       ④檔案及安全管理,檔案的訪問屬性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.