操作系統概念與主要功能
操作系統的概念
在信息化時代,軟件是計算機系統的靈魂,而作為軟件核心的操作系統,已與現代計算機系統密不可分、融為一體。計算機系統自下而上大致分為4部分:硬件、操作系統、應用程序和用戶
操作系統管理各種計算機硬件,微應用程序提供基礎,并從當計算機硬件與用戶之間的中介。
硬件如中央處理器、內存、輸入\輸出設備等,提供基本的計算資源
應用程序規定按何種方式使用這些資源來解決用戶的計算問題,操作系統控制和協調各用戶的應用程序對硬件的分配與使用
操作系統是控制和管理整個計算機系統的硬件與軟件資源,合理地組織、調度計算機的工作與資源的分配,進而為用戶和其他軟件提供方便接口和環境的程序集合。操作系統是計算機系統中最基本的系統軟件。
總結:操作系統是資源的管理者,向上提供方便易用的服務。
操作系統的功能與目標
1.操作系統作為計算機系統資源的管理者(主要功能)
-
處理機管理功能
-
存儲器管理功能
-
文件管理功能
-
設備管理功能
2.操作系統作為用戶與計算機硬件系統之間的接口
操作系統提供的接口分為兩類:
-
命令接口,用戶使用
-
程序接口(系統調用),編程人員使用
3.操作系統作為擴充機器
操作系統的特性與主要類型
操作系統特征
-
并發:指兩個或多個事件在同一時間間隔內發生。
操作系統的并發性是指計算機系統中同時存在多個運行的程序,因此它具有處理和調度多個程序同時執行的能力。在操作系統中,引入進程的目的是使進程能并發執行。
注意事項:并發與并行的區別:并發是在同一時間間隔內多個時間發生,并行是指同一時刻多個事件發生。并發是假裝并行
在多道程序環境下,一段時間內,宏觀上由多道程序在同時執行,而在每個時刻,單處理機環境下實際僅能有一道程序執行,因此微觀上這些程序認識分時交替執行的,操作系統的并法性是通過分時得以實現的
-
共享:共享是指系統中的資源可供內存中多個并發執行的進程共同使用。
共享分為如下兩種資源共享方式:
互斥分享方式:系統中的某些資源,雖然可供多個多個進程使用,但為使得所打印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個進程訪問該資源。
僅當進程A訪問完并釋放完該資源后,才允許另一個進程對該資源進行訪問,這種資源共享方式稱為互斥式共享,而把在一段時間內只允許一個進程訪問的資源稱為臨界資源或獨占資源。
同時訪問方式:這類資源允許一段時間內有多個進程“同時”訪問,這里說的同時是宏觀上的,而在微觀上,這些進程可能是交替地該資源進行訪問,即“分時共享”的。
注意事項:并發性和共享性互為存在條件
-
虛擬:是指把一個物理上的實體變為若干邏輯上的對應物。物理實體是實的,即實際存在的,而后者是虛的,使用戶感覺上的事物。用來實現虛擬的技術,稱為虛擬技術。
-
異步:是指多道程序環境下,由于資源有限,程序的執行并不是一貫到底的,而是走走停停的,他以不可預知的速度向前推進
操作系統的發展與分類
-
手工操作階段(此階段無操作系統)用戶在計算機上算題的所有工作都要人工干預。
缺點:
用戶獨占全機,不會出現資源被其他用戶占用而等待的現象,但資源利用率低,
CPU等待手工操作,CPU利用不充分
總結:人機矛盾大
-
批處理階段(操作系統開始)為了解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾
分為:單道批處理系統、多道批處理系統
單道批處理系統:對作業的處理是成批進行的,但內存中始終保持一道作業
多道批處理系統:允許多個程序同時進入內存并允許它們在CPU中交替進行,這些程序共享程序中的各種硬件或軟件資源
缺點:用戶響應時間較長,不提供人機交互能力,用戶既不能了解自己的程序運行情況,又不能控制計算機。
總結:無人機交互能力
-
分時操作系統
分時技術是指把處理器的運行時間分成最短的時間片,按時間片輪流把處理器分配給聯機作業使用。
若某個作業在分配給他的時間片內不能完成其計算,則該作業暫時停止運行,把處理器讓給其他作業使用,等待下一輪再繼續運行。
即:多個用戶通過終端同時共享一臺主機,這些終端連接在主機上,用戶可以同時與主機進行交互操作而互不干擾。
缺點:不能優先的處理一些緊急的任務,操作系統對每個用戶作業都是完全公平的,是循環的為每個用戶服務一個時間線的,并沒有去分任務的緊急性。
-
實時操作系統
為了能在某個時間限制內完成某些緊急任務而不需要時間片排隊,誕生了實時操作系統。
實時操作系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,并控制所有實時任務協調一致的運行
特點:及時性、可靠性
-
網絡操作系統和分布式計算機系統以及個人計算機操作系統
網絡操作系統
網絡操作系統把計算機網絡中的各臺計算機有機的結合起來,提供一種統一、經濟有效的使用各臺計算機的方法,實現各臺計算機之間數據的互相傳送。
特點:網絡中各種資源及各臺計算機之間的通信。
分布式計算機系統
用于管理分布式計算機系統的操作系統
個人計算機操作系統是目前最廣泛的操作系統
發展歷程圖:
解答題例題1:批處理操作系統、分時操作系統和實時操作系統各有什么特點?
答案:
批處理操作系統的用戶脫機使用計算機,作業是成批處理的,系統內多道程序并發執行,交互能力差。
分時操作系統可讓多個用戶同時適用計算機,人機交互性強,具有每個用戶獨立使用計算機的獨占性,系統響應及時。
實時操作系統能對控制對象做出及時反應,可靠性高,響應及時,但資源利用率低。
例題2:有兩個程序,程序A依次使用CPU計10s,設備甲計5s,CPU計5S、設備乙10S、CPU計10S;程序B依次使用設備甲計10s,CPU計10s、設備乙5S、CPU計5S,設備乙10S。在單道程序環境下先執行程序A在執行程序B,CPU的利用率是多少?再多道程序環境下,CPU利用率是多少?
解答:
單道程序環境: (A運行總時間+B運行總時間)/CPU調用時間 = 40/(40+40)= 50%
多道程序環境:可以利用甘特圖來做題
CPU占用40秒,CPU利用率 = 40/45 = 88.9%
注意事項:一些打印設備只能互斥性共享
進程與線程
進程的概念與特征
程序與進程的區別:
程序是指令與數據的有序集合,是靜態的,進程有自己的生命周期,是動態的
程序的順序執行:
程序或程序段之間嚴格按照某種先后次序執行
特征:
-
順序性:處理機嚴格按照程序所規定的順序執行
-
封閉性:程序在執行時獨占系統的全部資源,不受外界程序干擾
-
可再現性:只要初始條件相同,一個程序的多次重復執行將得到相同的結果
程序的并發執行:
兩個或兩個以上的程序或程序段可在同一時間間隔內同時執行
特征:
-
間斷性:由于資源共享和相互合作,并發執行的程序間形成了相互制約關系,導致程序的運行過程出現 執行-暫停-執行的現象
-
失去封閉性:程序在執行時與其他并發執行的程序共享系統的資源,因此,資源狀態的改變還與其他程序有關,即:程序本身的執行環境要受到外界程序的影響。
-
不可再現性:同樣的初始條件,一個程序的多次重復執行可能會得到不同的結果。
進程的概念
為什幺要引入進程?
程序并發執行時產生的不可再現性,決定了通常的程序不能參與并發執行的,為了使程序能夠并發執行,并且可以對并發執行的程序加以描述和控制,引進了進程的概念,實現操作系統的并發行和共享性(兩個最基本的特征)。為了使參與并發執行的程序(含數據)能獨立運行,必須為之配置一個專門的數據結構,稱為進程數據塊(PCB)
進程是由程序段、相關數據段和進程控制塊共同組成的
注:PCB是進程存在的唯一標志。
PCB內包含的數據結構內容有:進程標志信息、進程控制信息、進程資源信息、CPU現場信息
進程的定義
-
進程是程序一次執行的過程。
-
進程是具有獨立功能的程序在一個數據集合上運行的過程,他是系統進行資源分配和調度的一個獨立單位
-
引入進程后,進程是資源分配的獨立單位,進程具有并發性,可以和其他進程并發執行
-
同一個程序執行在不同的數據集合上,屬于不同的進程
-
進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位
進程的特征
-
動態性:進程是程序的一次執行過程,因此是動態的,動態性是進程最基本的特征。
-
并發性:多個進程實體同存于內存中,且在一段時間內同時執行,只有為程序創建進程后,多個程序才能正確的并發執行。并發性是進程的重要特征。
-
獨立性:進程實體是一個能獨立運行、獨立獲得資源和獨立接收調度的基本單位
-
異步性:進程可按各自獨立的、不可預知的速度往前推進。雖然進程具有異步性,但操作系統必須配置相應的進程同步機制來確保進程并發執行的結果是可再現的。
進程的基本狀態和轉換
通常進程有三種基本狀態。
-
運行態:進程在處理機上運行
-
就緒態:進程獲得了除處理機以外的一切資源,一旦得到處理機,便可立即運行
-
阻塞態:也稱等待態,正在執行的進程由于某些事件的發生而暫時無法繼續執行,只能等相應時間完成后,才能去競爭CPU
注意事項:就緒態是指進程僅缺少處理機,只要獲得處理機資源就立即運行;堵塞態是指進程需要除處理機以外的其他資源或者等待某一事件
狀態轉換圖:
文字敘述:
就緒態->運行態:處于就緒態的進程被調度后,獲得處理機資源(分配處理機時間片),于是進程就有就緒態轉換成運行態
運行態->就緒態:處于運行態的進程在時間片用完后,不得不讓出處理機,從而進程由運行態轉換成就緒態。或在可剝奪的操作系統中,當有更高優先級的進程就緒時,調度程序將正在執行的進程剝奪成就緒態,讓更高優先級的進程執行。
運行態->阻塞態:進程請求某一資源的使用或分配或等待某一事件的發生(或IO操作的完成)
阻塞態->就緒態:進程等待的事件到來時,如IO操作操作結束或中斷結束時,中斷處理程序必須把相應進程的狀態由阻塞態轉化成就緒態
進程控制與通信
進程控制的主要功能
進程控制的主要功能是創建新進程,終止進程以及負責進程運行中的狀態轉換。
總結:進程控制是對系統的所有進程進行有效的管理。
一般把進程控制用的程序段稱為原語
原語的特點是執行期間不允許中斷(原子性)
進程的創建:允許一個進程創建另一個進程。
進程的終止:引起進程終止的事件有正常結束、異常結束(出現異常事件,例如存儲區越界,非法指令,算數運算錯等)、外界干預。
進程的阻塞和喚醒:正在執行的的進程,由于期待的某些事件沒有發生,如請求系統資源失敗、等待某種操作的完成、新數據尚未到達或無心工作可做等,有系統自動執行阻塞原語(Block)使自己由運行態轉化成阻塞態。
當被阻塞進程所期待的事件出現時,如IO操作完成或者期待的數據已經到達,有有關進程調用喚醒原語(Wakeup),將等待該事件的進程喚醒。
進程通信
進程通信指進程之間的信息交換,各進程擁有的內存空間相互獨立,為了進行信息交換,保證安全通信,操作系統就提供了一些繼承通信的方法:
PV操作是低級通信方式,高級通信方式是指以較高的效率傳輸大量數據的通信方式;
主要有三大類:共享存儲,消息傳遞,管道通信
共享存儲:進程通信通過對共享空間進行讀/寫操作實現信息交換,共享某些數據結構或共享存儲區。
消息傳遞:進程間的數據交換以格式化的消息為單位。通過發送消息和接收消息原語進行數據交換。有兩種消息傳遞的方式:
-
直接通信方式
-
間接通信方式
管道通信:利用一種特殊的pipe文件連接兩個進程
線程概念
基本概念
引入進程的目的是為了更多的程序并發執行,提高資源利用率和系統吞吐量。而引入線程的目的是為了減少程序在并發執行時所付出的時空開銷,提高操作系統的并發性能。
-
調度:進程是擁有系統資源的基本單位,線程是調度和分派的基本單位
-
擁有資源:進程是擁有資源的基本單位,線程不擁有系統資源
-
并發性:進程可以并發執行,多個線程之間也能并發執行。
-
系統開銷
-
地址空間和其他資源(如打開的文件):進程的地址空間之間相互獨立,同一線程的個線程間共享進程的資源,某進程內的線程對其他線程不可見。
-
通信方面:進程間通信需要進程同步和互斥手段的輔助,以保證數據的一致性,而線程間可以直接讀寫進程數據段來進行通信。
剩下的還在整理,希望對大家有所幫助