您當前的位置:首頁 > 體育

Linux核心:詳解作業系統原理與概述(流程圖)

作者:由 玩轉Linux核心 發表于 體育時間:2021-12-17

一、作業系統是什麼

作業系統(Operating System,OS)是控制應用程式執行和充當硬體系統和應用程式之間的介面的軟體。

計算機系統由硬體和軟體兩部分組成。作業系統(OS,Operating System)是配置在計算機硬體上的第一層軟體,是對硬體系統的首次擴充。它在計算機系統中佔據了特別重要的地位;

而其它的諸如彙編程式、編譯程式、資料庫管理系統等系統軟體,以及大量的應用軟體,都將依賴於作業系統的支援,取得它的服務。作業系統已成為現代計算機系統(大、中、小及微型機)、多處理機系統、計算機網路、多媒體系統以及嵌入式系統中都必須配置的、最重要的系統軟體。

Linux核心:詳解作業系統原理與概述(流程圖)

1。1、初步認識作業系統及其功能

當前比較流行的作業系統有:

Linux核心:詳解作業系統原理與概述(流程圖)

作業系統具體能做什麼?毫無疑問,我們都知道的有 執行程式、控制多個程式併發執行、管理系統資源、監控系統狀態、 提供圖形化互動介面、 儲存檔案,讀取檔案

官方點說,作業系統應該具備的功能:Linux核心原始碼/記憶體調優/檔案系統/程序管理/裝置驅動/網路協議棧-學習影片教程-騰訊課堂

程序管理

程序控制:建立、暫停、喚醒、撤銷等;

程序排程:排程策略、優先順序;

程序通訊:程序之間怎麼通訊。

裝置管理

裝置的分配和排程;

裝置的無關性動作;

裝置的傳輸控制;

裝置的驅動管理

記憶體管理

記憶體分配;

記憶體共享;

記憶體保護;

虛擬記憶體——我們執行程式從來因為記憶體過小而失敗,只會變慢、卡。

檔案管理

儲存的空間管理;

檔案的操作;

目錄的操作;

檔案和目錄的存取許可權管理等

1。2、作業系統的地位

Linux核心:詳解作業系統原理與概述(流程圖)

【文章福利

】小編推薦自己的Linux核心技術交流群:【

865977150

】整理了一些個人覺得比較好的學習書籍、影片資料共享在群檔案裡面,有需要的可以自行新增哦!!!

Linux核心:詳解作業系統原理與概述(流程圖)

核心學習網站:

二,為什麼需要作業系統

一般地說,在計算機硬體上配置的 OS,其目標有以下幾點:

1.有效性

在早期(20 世紀 50~60 年代),由於計算機系統非常昂貴,作業系統最重要的目標無疑是有效性。事實上,那時有效性是推動作業系統發展最主要的動力。作業系統的有效性可包含如下兩方面的含義:

(1) 提高系統資源利用率。在未配置 OS 的計算機系統中,諸如 CPU、I/O 裝置等各種資源,都會因它們經常處於空閒狀態而得不到充分利用;記憶體及外存中所存放的資料太少或者無序而浪費了大量的儲存空間。配置了 OS 之後,可使 CPU 和 I/O 裝置由於能保持穩定的狀態而得到有效的利用,且可使記憶體和外存中存放的資料因有序而節省了儲存空間。

(2) 提高系統的吞吐量。作業系統還可以透過合理地組織計算機的工作流程,而進一步改善資源的利用率,加速程式的執行,縮短程式的執行週期,從而提高系統的吞吐量。

2.方便性

配置 OS 後者可使計算機系統更容易使用。一個未配置 OS 計算機系統是極難使用的,因為計算機硬體只能識別 0 和 1 這樣的機器程式碼。使用者要直接在計算機硬體上執行自己所編寫的程式,就必須用機器語言書寫程式;如果我們在計算機硬體上配置了 OS,使用者便可透過 OS 所提供的各種命令來使用計算機系統。比如,用編譯命令可方便地把使用者用高階語言書寫的程式翻譯成機器程式碼,大大地方便了使用者,從而使計算機變得易學易用。方便性和有效性是設計作業系統時最重要的兩個目標。

3.可擴充性

隨著 VLSI 技術和計算機技術的迅速發展,計算機硬體和體系結構也隨之得到迅速發展,相應地,它們也對 OS 提出了更高的功能和效能要求。此外,多處理機系統、計算機網路,特別是 Internet 的發展,又對 OS 提出了一系列更新的要求。因此,OS 必須具有很好的可擴充性,方能適應計算機硬體、體系結構以及應用發展的要求。這就是說,現代 OS 應採用新的 OS 結構,如微核心結構和客戶伺服器模式,以便於方便地增加新的功能和模組,並能修改老的功能和模組。

4.開放性

自 20 世紀 80 年代以來,由於計算機網路的迅速發展,特別是 Internet 的應用的日益普及,使計算機作業系統的應用環境已由單機封閉環境轉向開放的網路環境。為使來自不同廠家的計算機和裝置能透過網路加以整合化,並能正確、有效地協同工作,實現應用的可移植性和互操作性,要求作業系統必須提供統一的開放環境,進而要求 OS 具有開放性。開放性是指系統能遵循世界標準規範,特別是遵循開放系統互連(OSI)國際標準。凡遵循國際標準所開發的硬體和軟體,均能彼此相容,可方便地實現互連。開放性已成為20世紀 90 年代以後計算機技術的一個核心問題,也是一個新推出的系統或軟體能否被廣泛應用的至關重要的因素。

Linux核心:詳解作業系統原理與概述(流程圖)

硬體發展時代劃分:

Linux核心:詳解作業系統原理與概述(流程圖)

三,作業系統的發展史

3。1、手工操作時代

Linux核心:詳解作業系統原理與概述(流程圖)

3。2 單批道處理系統

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

3。3 多批道處理系統

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

3。4、分時技術和分時作業系統

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

分時系統例項

Linux核心:詳解作業系統原理與概述(流程圖)

Linux核心:詳解作業系統原理與概述(流程圖)

四,典型的作業系統

Linux核心:詳解作業系統原理與概述(流程圖)

4。1、 微機作業系統

Linux核心:詳解作業系統原理與概述(流程圖)

4。2、 實時作業系統

Linux核心:詳解作業系統原理與概述(流程圖)

所謂“實時”,是表示“及時”,而實時系統(Real Time System)是指系統能及時(或即時)響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行。

1、需求:

雖然多道批處理系統和分時系統已能獲得較為令人滿意的資源利用率和響應時間,從而使計算機的應用範圍日益擴大,但它們仍然不能滿足以下某些應用領域的需要。

(1) 實時控制。當把計算機用於生產過程的控制,以形成以計算機為中心的控制系統時,系統要求能實時採集現場資料,並對所採集的資料進行及時處理,進而自動地控制相應的執行機構,使某些(個)引數(如溫度、壓力、方位等)能按預定的規律變化,以保證產品的質量量和提高產量。類似地,也可將計算機用於對武器的控制,如火炮的自動控制系統、飛機自動駕駛系統,以及導彈的制導系統等。此外,隨著大規模積體電路的發展,已製作出各種型別的晶片,並可將這些晶片嵌入到各種儀器和裝置中,用來對裝置的工作進行實施控制,這就構成了所謂的智慧儀器和裝置。在這些裝置中也需要配置某種型別的、能進行實時控制的系統。通常把用於進行實時控制的系統稱為實時系統。

(2) 實時資訊處理。通常,人們把用於對資訊進行實時處理的系統稱為實時資訊處理系統統。該系統由一臺或多臺主機透過通訊線路連線到成百上千個遠端終端上,計算機接收從遠端終端上發來的服務請求,根據使用者提出的請求對資訊進行檢索和處理,並在很短的時間內為使用者做出正確的響應。典型的實時資訊處理系統有早期的飛機或火車的訂票系統、情報檢索系統等。

2、實時任務

在實時系統中必然存在著若干個實時任務,這些任務通常與某個(些)外部裝置相關,能反應或控制相應的外部裝置,因而帶有某種程度的緊迫性。可以從不同的角度對實時任務加以分類。

按任務執行時是否呈現週期性來劃分

(1) 週期性實時任務。外部裝置週期性地發出激勵訊號給計算機,要求它按指定週期迴圈執行,以便週期性地控制某外部裝置。

(2) 非週期性實時任務。外部裝置所發出的激勵訊號並無明顯的週期性,但都必須聯絡著一個截止時間(Deadline)。它又可分為開始截止時間(某任務在某時間以前必須開始執行)和完成截止時間(某任務在某時間以前必須完成)兩部分。

根據對截止時間的要求來劃分

(1) 硬實時任務(Hard real-time Task)。系統必須滿足任務對截止時間的要求,否則可能出現難以預測的結果。

(2) 軟實時任務(Soft real-time Task)。它也聯絡著一個截止時間,但並不嚴格,若偶爾錯過了任務的截止時間,對系統產生的影響也不會太大。

3、實時系統與分時系統特徵的比較

實時系統有著與分時系統相似但並不完全相同的特點,下面從五個方面對這兩種系統

加以比較。

(1) 多路性。實時資訊處理系統也按分時原則為多個終端使用者服務。實時控制系統得多路性則主要表現在系統週期性地對多路現場資訊進行採集,以及對多個物件或多個執行機構進行控制。而分時系統中的多路性則與使用者情況有關,時多時少。

(2) 獨立性。實時資訊處理系統中的每個終端使用者在向實時系統提出服務請求時,是彼此獨立地操作,互不干擾;而實時控制系統中,對資訊的採集和對物件的控制也都是彼此互不干擾。

(3) 及時性。實時資訊處理系統對實時性的要求與分時系統類似,都是所有人所能接受的等待時間來確定的;而實時控制系統的及時性,則是以控制物件所要求的開始截止時間為準完成截止時間來確定的,一般為秒級到毫秒級,甚至有的要低於 100 微秒。

(4) 互動性。實時資訊處理系統雖然也具有互動性,但這裡人與系統的互動僅限於訪問系統中某些特定的專用服務程式。它不像分時系統那樣能向終端使用者提供資料處理和資源共享等服務。

(5) 可靠性。分時系統雖然也要求系統可靠,但相比之下,實時系統則要求系統更高度的可靠性。因為任何差錯都可能帶來巨大的經濟損失,甚至是無法預料的災難性後果,所以在實時系統中,往往都採取了多級容錯措施來保障系統的安全性及資料的安全性。

Linux核心:詳解作業系統原理與概述(流程圖)

4。3、嵌入式系統

Linux核心:詳解作業系統原理與概述(流程圖)

4。4、網路系統

Linux核心:詳解作業系統原理與概述(流程圖)

五,作業系統的功能

4.1、OS 作為使用者與計算機硬體系統之間的介面

OS 作為使用者與計算機硬體系統之間介面的含義是:OS 處於使用者與計算機硬體系統之間間,使用者透過 OS 來使用計算機系統。或者說,使用者在 OS 幫助下,能夠方便、快捷、安全、可靠地操縱計算機硬體和執行自己的程式。應注意,OS 是一個系統軟體,因而這種介面是軟體介面。圖 1-1 是 OS 作為介面的示意圖。由圖可看出,使用者可透過以下三種方式使用計算機。

1、命令方式。這是指由 OS 提供了一組聯機命令介面,以允許使用者透過鍵盤輸入有關命令來取得作業系統的服務,並控制使用者程式的執行。

2、系統呼叫方式。OS提供了一組系統呼叫,使用者可在自己的應用程式中透過相應的系統呼叫,來實現與作業系統的通訊,並取得它的服務。

3、 圖形、視窗等方式。這是當前使用最為方便、最為廣泛的介面,它允許使用者透過螢幕上的視窗和圖示來實現與作業系統的通訊,並取得它的服務。

Linux核心:詳解作業系統原理與概述(流程圖)

4.2、OS 作為計算機系統資源的管理者

在一個計算機系統中,通常都含有各種各樣的硬體和軟體資源。歸納起來可將資源分為四類:處理器、儲存器、I/O 裝置以及資訊(資料和程式)。相應地,OS 的主要功能也正是針對這四類資源進行有效的管理,即:

處理機管理,用於分配和控制處理機;

儲存器管理,主要負責記憶體的分配與回收;

I/O 裝置管理,負責 I/O 裝置的分配與操縱;

檔案管理,負責檔案的存取、共享和保護。

可見,OS 的確是計算機系統資源的管理者。事實上,當今世界上廣為流行的一個關於 OS 作用的觀點,正是把 OS 作為計算機系統的資源管理者。值得進一步說明的是,當一個計算機系統同時供多個使用者使用時,使用者對系統中共享資源的需求(包括數量和時間)可能發生衝突,為了管理好這些共享資源(包括硬體和資訊)的使用,作業系統必須記錄下各種資源的使用情況,對使用資源的請求進行授權,協調諸使用者對共享資源的使用,避免發生衝突,並計算使用資源的費用等

4.3、OS 實現了對計算機資源的抽象

對於一個完全無軟體的計算機系統(即裸機),它向用戶提供的是實際硬體介面(物理介面),使用者必須對物理介面的實現細節有充分的瞭解,並利用機器指令進行程式設計,因此該物理機器必定是難以使用的。為了方便使用者使用 I/O 裝置,人們在裸機上覆蓋上一層 I/O 裝置管理軟體,如圖 1-2 所示,由它來實現對 I/O 裝置操作的細節,並向上提供一組 I/O 操作命令,如 Read 和 Write 命令,使用者可利用它來進行資料輸入或輸出,而無需關心 I/O 是如何實現的。

Linux核心:詳解作業系統原理與概述(流程圖)

六、作業系統的基本特性

6.1、併發性

併發性是指同一時間間隔內發生兩個或多個事件。並行性是指同一時刻內發生兩個或多個事件

1.並行與併發:並行性和併發性 (Concurrence) 是既相似又有區別的兩個概念,並行性是指兩個或多個事件在同一時刻發生;而併發性是指兩個或多個事件在同一時間間隔內發生。在多道程式環境下,併發性是指在一段時間內宏觀上有多個程式在同時執行,但在單處理機系統中每一時刻卻僅能有一道程式執行,故微觀上這些程式只能是分時地交替執行。倘若在計算機系統中有多個處理機,則這些可以併發執行的程式便可被分配到多個處理機上,實現並行執行,即利用每個處理機來處理一個可併發執行的程式,這樣,多個程式便可同時執行。

2.引入程序:應當指出,通常的程式是靜態實體(Passive Entity),在多道程式系統中,它們是不能獨立執行的,更不能和其它程式併發執行。在作業系統中引入程序的目的,就是為了使多個程式能併發執行。例如,在一個未引入程序的系統中,在屬於同一個應用程式的計算程式和 I/O 程式之間,兩者只能是順序執行,即只有在計算程式執行告一段落後,才允許 I/O 程式執行;反之,該程式執行 I/O 操作時,計算程式也不能執行,這意味著處理機處於空閒狀態 。但在引入程序後,若分別為計算程式和 I/O 程式各建立一個程序,則這兩個程序便可併發執行。由於在系統中具備計算程式和 I/O 程式同時執行的硬體條件,因而可將系統中的 CPU 和 I/O 裝置同時開動起來,實現並行工作,從而有效地提高了系統資源的利用率和系統吞吐量,並改善了系統的效能。引入程序的好處遠不止於此,事實上可以在記憶體中存放多個使用者程式,分別為它們建立程序後,這些程序可以併發執行,亦即實現前面所說的多道程式執行。這樣便能極大地提高系統資源的利用率,增加系統的吞吐量。為使多個程式能併發執行,系統必須分別為每個程式建立程序(Process)。簡單說來,程序是指在系統中能獨立執行並作為資源分配的基本單位,它是由一組機器指令、資料和堆疊等組成的,是一個能獨立執行的活動實體。多個程序之間可以併發執行和交換資訊。一個程序在執行時需要一定的資源,如 CPU、儲存空間及 I/O 裝置等。OS 中程式的併發執行將使系統複雜化,以致在系統中必須增設若干新的功能模組,分別用於對處理機、記憶體、I/O 裝置以及檔案系統等資源進行管理,並控制系統中所有作業的執行。事實上,程序和併發是現代作業系統中最重要的基本概念,也是作業系統執行的基礎

3.引入執行緒:長期以來,程序都是作業系統中可以擁有資源並作為獨立執行的基本單位。當一個程序因故不能繼續執行時,作業系統便排程另一個程序執行。由於程序擁有自己的資源,故使排程付出的開銷較大。直到 20 世紀 80 年代中期,人們才又提出了比程序更小的單位——執行緒(Threads)。通常在一個程序中可以包含若干個執行緒,它們可以利用程序所擁有的資源。在引入執行緒的 OS 中,通常都是把程序作為分配資源的基本單位,而把執行緒作為獨立執行和獨立排程的基本單位。由於執行緒比程序更小,基本上不擁有系統資源,故對它的排程所付出的開銷就會小得多,能更高效地提高系統內多個程式間併發執行的程度。因而近年來推出的通用作業系統都引入了執行緒,以便進一步提高系統的併發性,並把它視作現代作業系統的一個重要標緻。

6.2、共享性

在作業系統環境下,所謂共享 (Sharing), 是指系統中的資源可供記憶體中多個併發執行的程序(執行緒)共同使用,相應地,把這種資源共同使用稱為資源共享,或稱為資源複用。由於各種資源的屬性不同,程序對資源複用的方式也不同,目前主要實現資源共享的方式有如下兩種。

1.互斥共享方式:系統中的某些資源,如印表機、磁帶機,雖然它們可以提供給多個程序(執行緒)使用,但為使所列印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個程序(執行緒)訪問該資源。為此,系統中應建立一種機制,以保證對這類資源的互斥訪問。當一個程序 A 要訪問某資源時,必須先提出請求。如果此時該資源空閒,系統便可將之分配給請求程序 A 使用。此後若再有其它程序也要訪問該資源時(只要 A 未用完),則必須等待。僅當 A 程序訪問完並釋放該資源後,才允許另一方程序對該資源進行訪問。我們把這種資源共享方式稱為互斥式共享,而把在一段時間內只允許一個程序訪問的資源稱為臨界資源或獨佔資源。計算機系統中的大多數物理裝置,以及某些軟體中所用的棧、變數和表格,都屬於臨界資源,它們要求被互斥地共享。為此,在系統中必須配置某種機制來保證諸程序互斥地使用獨佔資源。

2.同時訪問方式:系統中還有另一類資源,允許在一段時間內由多個程序“同時”對它們進行訪問。這裡所謂的“同時”,在單處理機環境下往往是宏觀上的,而在微觀上,這些程序可能是交替地對該資源進行訪問。典型的可供多個程序“同時”訪問的資源是磁碟裝置,一些用重入碼編寫的檔案也可以被“同時”共享,即若干個使用者同時訪問該檔案。併發和共享是作業系統的兩個最基本的特徵,它們又是互為存在的條件。一方面,資源共享是以程式(程序)的併發執行為條件的,若系統不允許程式併發執行,自然不存在資源共享問題;另一方面,若系統不能對資源共享實施有效管理,協調好諸程序對共享資源的訪問,也必然影響到程式併發執行的程度,甚至根本無法併發執行。

6.3、虛擬技術

作業系統中的所謂“虛擬” (Virtual) ,是指透過某種技術把一個物理實體變為若干個邏輯上的對應物。物理實體(前者)是實的,即實際存在的,而後者是虛的,僅是使用者感覺上的東西。相應地,用於實現擬的技術稱為虛擬技術。在作業系統中利用了兩種方式實現虛擬技術,即時分複用技術和空分複用技術。

1、時分複用技術

時分複用,亦即分時使用方式,它最早用於電信業中。為了提高通道的利用率,人們利用時分複用方式,將一條物理通道虛擬為多條邏輯通道,將每條通道供一對使用者通話。在計算機領域中,廣泛利用該技術來實現虛擬處理機、虛擬裝置等,以提高資源的利用率。

虛擬處理機技術

虛擬裝置技術

2.空分複用技術

早在上世紀初,電信業中就使用頻分複用技術來提高通道的利用率。它是將一個頻率範圍非常寬的通道,劃分成多個頻率範圍較窄的通道,其中的任何一個頻道都只供一對使用者通話。早期的頻分複用只能將一條物理通道劃分為十幾條到幾十條話路,後來又很快發展成上萬條話路,每條話路也只供一對使用者通話。之後,在計算機中也使用了空分複用技術來提高儲存空間的利用率。

虛擬磁碟技術

虛擬儲存器技術

應當著重指出:如果虛擬的實現是透過時分複用的方法來實現的,即對某一物理裝置進行分時使用,設 N 是某物理裝置所對應的虛擬的邏輯裝置數,則每臺虛擬裝置的平均速度必然等於或低於物理裝置速度的 1/N。類似地,如果是利用空分複用方法來實現虛擬,此時一臺虛擬裝置平均佔用的空間必然也等於或低於物理裝置所擁有空間的 1/N。

6.4、非同步性

在多道程式環境下允許多個程序併發執行,但只有程序在獲得所需的資源後方能執行。在單處理機環境下,由於系統中只有一臺處理機,因而每次只允許一個程序執行,其餘程序只能等待。當正在執行的程序提出某種資源要求時,如列印請求,而此時印表機正在為其它某程序列印,由於印表機屬於臨界資源,因此正在執行的程序必須等待,且放棄處理機,直到印表機空閒,並再次把處理機分配給該程序時,該程序方能繼續執行。可見,由於資源等因素的限制,使程序的執行通常都不是“一氣呵成”,而是以“停停走走”的方式執行。

記憶體中的每個程序在何時能獲得處理機執行,何時又因提出某種資源請求而暫停,以及程序以怎樣的速度向前推進,每道程式總共需多少時間才能完成,等等,這些都是不可預知的。由於各使用者程式效能的不同,比如,有的側重於計算而較少需要 I/O,而有的程式其計算少而 I/O 多,這樣,很可能是先進入記憶體的作業後完成,而後進入記憶體的作業先完成。或者說,程序是以人們不可預知的速度向前推進,此即程序的非同步性(Asynchronism)。儘管如此,但只要在作業系統中配置有完善的程序同步機制,且執行環境相同,作業經多次執行都會獲得完全相同的結果。因此,非同步執行方式是允許的,而且是作業系統的一個重要特徵。

原文連結:https://blog。csdn。net/qq_44861675/article/details/107721920

Linux核心:詳解作業系統原理與概述(流程圖)

標簽: 程序  os  作業系統  系統  併發