操作系統(tǒng)導論復習要點(張不同版)_第1頁
操作系統(tǒng)導論復習要點(張不同版)_第2頁
操作系統(tǒng)導論復習要點(張不同版)_第3頁
操作系統(tǒng)導論復習要點(張不同版)_第4頁
操作系統(tǒng)導論復習要點(張不同版)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、操作系統(tǒng)導論復習要點課程內容第一章 操作系統(tǒng)概述(3)第二章 進程和處理機管理(2+9)第三章 存儲管理(6)第四章 設備管理(4)第五章 文件管理(2)第六章 Windows操作系統(tǒng)第七章 Unix操作系統(tǒng)第一章 操作系統(tǒng)概述本章要點操作系統(tǒng)的地位:從計算機系統(tǒng)結構的角度操作系統(tǒng)的定義:研究操作系統(tǒng)的四種視角現代操作系統(tǒng)的特征、功能、類型基本概念:批處理、多道程序設計、作業(yè)、任務、進程和線程、接口、虛擬存儲、文件講課順序的一些調整1.1 計算機系統(tǒng)概述1.2 操作系統(tǒng)的概念1.3 操作系統(tǒng)的功能1.4 操作系統(tǒng)的用戶接口1.5 操作系統(tǒng)的發(fā)展史1.6 操作系統(tǒng)的分類1.7 研究操作系統(tǒng)的幾種

2、視角操作系統(tǒng):管理物理設備。實用程序:支持其他軟件編制和維護的軟件。應用程序:特定應用領域的專用軟件。操作系統(tǒng)在計算機系統(tǒng)中的地位1.1 操作系統(tǒng)的地位1.2 操作系統(tǒng)四種視角用戶接口資源管理虛擬機作業(yè)組織軟件的視角 操作系統(tǒng)-軟件的視角操作系統(tǒng)作為軟件的外在特性和內在特性外在特性:命令、調用、語法等等內在特性:結構特點 操作系統(tǒng)用戶接口的視角操作系統(tǒng)為用戶提供不同的服務,不同的用戶提供不同的接口。最終用戶系統(tǒng)用戶(用戶)命令:指計算機用戶要求計算機為其工作的指示。命令的表現形式:字符形式:比較靈活,但是繁瑣而難記菜單形式圖形形式:直觀易記,不夠靈活命令的使用方式:脫機使用方式(off-lin

3、e) 聯(lián)機使用方式(on-line) 操作系統(tǒng)資源管理的視角操作系統(tǒng)是計算機系統(tǒng)中各類資源的管理者,它負責分配、回收以及控制系統(tǒng)中的各種軟硬件資源。跟蹤資源的使用狀況,滿足資源請求,提高資源利用率,以及協(xié)調各程序和用戶對資源的使用沖突。監(jiān)視資源分配/回收資源保護資源 操作系統(tǒng)虛擬機的視角操作系統(tǒng)是建立在計算機硬件平臺上的虛擬機器,它為應用軟件提供了許多比計算機硬件功能更強或者計算機硬件所沒有的功能。操作系統(tǒng)在虛擬機種充當管理員和協(xié)調員的角色,管理計算機的軟硬件資源,并協(xié)調多任務、多進程的運行。擴充:功能、計算機的數量 操作系統(tǒng)作業(yè)組織的視角操作系統(tǒng)是計算機系統(tǒng)工作流程的組織者,它負責協(xié)調在系統(tǒng)

4、中運行的各個軟件的運行次序。用于巨型機和大型機上,以批文件方式提交作業(yè),請求主機逐個運行。主機操作系統(tǒng)負責組織、協(xié)調各個作業(yè)的運行,并報告執(zhí)行結果或者錯誤消息。減少了人工干預,提高了系統(tǒng)的效率。這種工作方式有利于有效利用造價高且性能強大的主機資源。操作系統(tǒng)的定義操作系統(tǒng)是計算機系統(tǒng)中的一個系統(tǒng)軟件,管理和控制計算機系統(tǒng)中的軟件和硬件資源,合理地組織計算機的工作流程,以便有效利用這些資源為用戶提供一個功能強大的、使用方便的工作環(huán)境,從而在計算機與用戶之間起到接口的作用。1.3 操作系統(tǒng)的形成和發(fā)展操作系統(tǒng)簡歷推動操作系統(tǒng)發(fā)展的因素操作系統(tǒng)的發(fā)展歷史手工操作操作系統(tǒng)的史前文明單道批處理(早期批處理

5、)操作系統(tǒng)的雛形多道批處理系統(tǒng)現代意義上的操作系統(tǒng)的出現分時系統(tǒng)實時系統(tǒng)操作系統(tǒng)的進一步發(fā)展 操作系統(tǒng)的簡歷50年代中期,第一個簡單批處理系統(tǒng)60年代中期,多道程序批處理系統(tǒng)不久,分時系統(tǒng),實時系統(tǒng)80年代,微機及網絡操作系統(tǒng)。分布式操作系統(tǒng),嵌入式操作系統(tǒng)。 操作系統(tǒng)發(fā)展的推動因素計算機硬件的升級以及新的硬件的出現新的服務,方便使用提高計算機資源利用效率更正軟件錯誤計算機體系結構的發(fā)展 操作系統(tǒng)的發(fā)展史手工操作早期的計算機是由n多個晶體管組成的操作和編程完全靠手工進行,直接和硬件打交道獨占資源,效率低下手工操作,易出差錯串行作業(yè),周期很長 操作系統(tǒng)的發(fā)展史-單道批處理系統(tǒng)批處理程序(監(jiān)督程序

6、)常駐內存操作步驟:1、收集一批作業(yè)卡,使用專用的I/O計算機將作業(yè)逐個讀到磁帶上保存起來;2、批處理程序將磁帶上的第一作業(yè)讀入計算機,運算結束后將結果輸出到輸出磁帶上;3、自動讀入下一個作業(yè),依次循環(huán);4、當一批作業(yè)全部執(zhí)行結束之后,取下輸入磁帶和輸出磁帶,輸入磁帶輸入下一批作業(yè),輸出磁帶送到專用輸出計算機進行脫機打印。單道批處理系統(tǒng)評價解決了作業(yè)間自動轉接問題,減少了機器時間浪費串行運行獨占資源,資源利用率低對短作業(yè)不公平交互性差 操作系統(tǒng)的發(fā)展史多道批處理系統(tǒng)單道批處理系統(tǒng)中,任意時刻任意時刻只允許一個作業(yè)在內存中運行,資源利用率低。為了提高資源利用率和系統(tǒng)吞吐量,發(fā)展了多道批處理系統(tǒng)多

7、道批處理系統(tǒng)是真正現代意義的操作系統(tǒng)多道:指允許多個程序同時存在于內存中,按照某種原則分派處理機,逐個執(zhí)行這個程序。批處理:用戶提交的作業(yè)首先在外存中排成一個隊列,然后由作業(yè)調度程序按照一定的算法從該隊列中依次選取一個或者幾個作業(yè)轉入內存中執(zhí)行。處理機自動切換當某個程序占用處理機執(zhí)行過程中遇到了輸入/輸出語句,可以啟動專門負責輸入/輸出的系統(tǒng)服務程序完成輸入/輸出操作,而處理機切換到另外一個程序執(zhí)行。多道批處理多道程序設計技術(multiprogramming)為了提高系統(tǒng)吞吐量和資源利用率,允許多個程序同時駐留內存,使處理機在這些程序之間進行切換,在一段時間內執(zhí)行完多個程序的處理技術稱為多道

8、程序設計技術。現代操作系統(tǒng)大都采用了多道程序處理技術。資源利用率:指在給定時間內,系統(tǒng)中某一資源(如CPU、存儲器、外部設備等)實際使用時間所占比率。吞吐量(Throughput):指單位時間內系統(tǒng)所處理的信息量。它通常是以每小時或每天所處理的作業(yè)個數來度量。一個例子的具體使用情況如下表所示:假設一個計算機系統(tǒng)有256k主存(不包含操作系統(tǒng)),一個磁盤、一個終端和一臺打印機。 三個作業(yè)分別被命名為JOB1、JOB2、JOB3。各作業(yè)運行時間分別為5分鐘、15分鐘和10分鐘。它們對資源的具體使用情況如下: 作業(yè)1主要使用CPU; 作業(yè)2主要使用終端(鍵盤和顯示器); 作業(yè)3主要使用磁盤和打印機。

9、多道程序設計引發(fā)的問題處理機的分配與回收內存的分配與保護I/O設備的共享與效率文件的有效組織作業(yè)的組織 操作系統(tǒng)的發(fā)展史分時系統(tǒng)與實時系統(tǒng)多道批處理系統(tǒng)的資源利用率和吞吐量提高了,但是交互性很差,作業(yè)周轉時間比較長。為了改進響應時間和性能,提供交互式工作環(huán)境,分時系統(tǒng)出現。分時系統(tǒng)的實質是,在多道程序設計技術的基礎上,為多個用戶配置一個聯(lián)機終端。分時系統(tǒng)的工作方式:一臺主機連接有若干個終端。用戶交互式地向系統(tǒng)提出命令請求,系統(tǒng)接受命令,采用時間片輪轉方式處理請求,并在終端上顯示結果。分時:是指多個用戶分時使用CPU的時間。將CPU 的單位時間(比如5ms)劃分成若干個時間段(時間片)。批處理系

10、統(tǒng):目標是提高機器的使用效率。適用于比較成熟的大型作業(yè)。用作業(yè)控制語言。分時系統(tǒng):目標是對用戶請求的快速響應,提供交互性工作環(huán)境。適用于短小作業(yè)。終端鍵入命令。實時系統(tǒng)當對處理機操作或數據流動有嚴格時間要求時,就需要使用實時系統(tǒng)。實時系統(tǒng):實時控制系統(tǒng):工業(yè)生產中的自動控制,軍事上的飛機運行、導彈發(fā)射等。實時信息處理系統(tǒng):民航機票的預訂、查詢,銀行系統(tǒng)的借貸,情報信息檢索等系統(tǒng)。實時操作系統(tǒng)的特點(1)實時性。計算機對隨機發(fā)生的外部事件能夠及時地響應和處理。(2)可靠性。實時系統(tǒng)控制和處理的對象往往是重要的經濟和軍事目標,而且又是現場直接控制處理。重要的實時控制系統(tǒng),采用雙工機制。(3)可確定

11、性。是指系統(tǒng)按照固定的、預先確定的時間或時間間隔執(zhí)行指定的操作。其可確定性取決于系統(tǒng)響應中斷的速度和處理能力。 操作系統(tǒng)的發(fā)展史操作系統(tǒng)的進一步發(fā)展個人計算機操作系統(tǒng)網絡操作系統(tǒng)分布式操作系統(tǒng)嵌入式操作系統(tǒng)網絡操作系統(tǒng)計算機網絡環(huán)境中提供網絡管理、通信、安全、資源共享和各種網絡應用等功能的操作系統(tǒng)。目標:為了實現網絡中各個計算機之間的通信和網絡資源共享,提高網絡資源的利用率和網絡的吞吐量。分布式操作系統(tǒng)分布式系統(tǒng)是指多個處理機通過通信線路相互連接而成的系統(tǒng),系統(tǒng)地處理和控制功能分布在各個處理機上。配置在分布式系統(tǒng)上的操作系統(tǒng)成為分布式操作系統(tǒng),它負責分布式系統(tǒng)中的任務分配、資源管理等功能服務。

12、嵌入式系統(tǒng)嵌入式系統(tǒng)在控制設備的計算機中運行。 電視機、微波爐、移動電話、汽車、儀器嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟件、硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。1.4 操作系統(tǒng)的功能及特征操作系統(tǒng)功能處理機管理存儲器管理設備管理(輸入輸出設備)文件管理提供接口服務操作系統(tǒng)的特征并發(fā)性共享性隨機性可重構性虛擬性 操作系統(tǒng)的功能 操作系統(tǒng)的特征現代操作系統(tǒng)特征隨機性(randomicity)可重構性(reconstruction)虛擬性物理實體轉化為若干邏輯上的對應物1.5 一些基本概念多道程序設計進程與線程作業(yè)任務接口系統(tǒng)調用虛擬存儲文件

13、多道程序設計系統(tǒng)中允許多道程序同時準備運行,當正在運行的那道程序因為某種原因(比如等待輸入輸出數據)暫時不能繼續(xù)運行時,系統(tǒng)將自動地啟動另一道程序運行;一旦原因消除(比如數據已經到達或者數據已經傳輸完畢),暫時停止運行的那道程序在將來的某個時候還可以被系統(tǒng)重新啟動繼續(xù)運行。問題協(xié)調因爭奪處理機或者輸入輸出設備而產生的沖突,解決同步、互斥和死鎖問題。防止各道程序之間的交叉和沖突,防止作業(yè)被有意無意地破壞。必須有高效可靠和方便的文件系統(tǒng),有效地管理和存取系統(tǒng)中的軟件資源和輔存空間。進程與線程進程是指,程序的一次執(zhí)行,包括可執(zhí)行的程序、程序所需的數據和相關狀態(tài)信息。進程是擁有資源的最小實體,在傳統(tǒng)o

14、s中,進程同時也是系統(tǒng)調度的最小單位。線程是指,程序的一次相對獨立的運行過程;在現代os中,線程是系統(tǒng)調度的最小單位。作業(yè)作業(yè)是指,計算機用戶在一次上機過程中要求計算機系統(tǒng)為其所做工作的集合;作業(yè)中的每項相對獨立的工作稱為作業(yè)步。通常,人們用一組命令來描述作業(yè);其中,每個命令定義一個作業(yè)步。作業(yè)的基本類型脫機作業(yè)聯(lián)機作業(yè)任務在經典的多任務操作系統(tǒng)環(huán)境下,任務與進程是等同的,都被認為是系統(tǒng)的最小工作單位任務是從系統(tǒng)資源分配的角度描述程序在系統(tǒng)中的運行進程則從處理器利用和工作流程控制的角度描述程序的執(zhí)行程序員習慣稱呼進程,而工程師則習慣稱呼為任務系統(tǒng)調用系統(tǒng)調用是操作系統(tǒng)提供的最基本的一級服務,供

15、用戶程序調用。系統(tǒng)調用只能在程序中作為程序語句使用,不能單獨使用。接口英文Interface在操作系統(tǒng)中具有接口和界面兩種含義。接口多用于描述系統(tǒng)硬件之間的連接關系,以及軟件和程序模塊之間的調用關系。如總線接口、打印機接口等。界面多用于描述用戶與系統(tǒng)之間的操作環(huán)境,以及人機之間的交互方式和過程,如字符界面、圖形用戶界面等。虛擬存儲定義:為了能在有限的內存空間中運行更大、更多的進程(程序),可以將一部分磁盤空間虛擬為邏輯內存,使用戶感覺到一個比物理內存空間更大的邏輯內存空間,即實際物理內存空間與虛擬的那部分邏輯內存空間的總和,統(tǒng)稱為虛擬內存空間。文件文件是若干相關數據的集合,有的操作系統(tǒng)將程序、

16、數據以及各種外部設備統(tǒng)統(tǒng)稱為文件。唯一的文件名對文件的操作:建立、修改、刪除、重命名、設置訪問權限等概括地說,文件就是命名了的字節(jié)流,它是現代操作系統(tǒng)對計算機系統(tǒng)中種類繁多的外部設備進行高度抽象的結果。1.6 操作系統(tǒng)的分類1.6 操作系統(tǒng)分類重點總結第二章 用戶接口與作業(yè)管理幾個問題?主要內容2.1 作業(yè)的基本概念定義作業(yè)步作業(yè)作業(yè)流作業(yè)控制方式:批處理和交互式2.2 批處理作業(yè)的管理作業(yè)的組織I/O調度控制2.3 交互式作業(yè)管理常用操作使用接口2.4 用戶和操作系統(tǒng)之間的接口程序一級接口(系統(tǒng)調用)作業(yè)控制一級接口2.1作業(yè)的概念作業(yè)步:每一個相對獨立的加工步驟作業(yè):用戶要求計算機處理的問

17、題作業(yè)流:若干作業(yè)按照次序合成一批作業(yè)的控制方式2.2批處理作業(yè)的管理2.2批處理作業(yè)的管理:組織-I/O-調度-控制2.2批處理作業(yè)的管理:組織-I/O-調度-控制2.2批處理作業(yè)的管理:組織-I/O-調度-控制SPOOLing系統(tǒng)工作原理Simultaneous Peripheral Operations On-Line含義:同時的外圍設備聯(lián)機操作(假脫機技術)包括:輸入程序模塊輸出程序模塊作業(yè)調度程序SPOOLing系統(tǒng)工作原理(續(xù)2)作業(yè)執(zhí)行前用慢速設備將作業(yè)預先輸入到后援存儲器(如磁盤、磁鼓,稱為輸入井)中,稱為預輸入作業(yè)運行后,使用數據時,從輸入井中取出作業(yè)執(zhí)行不必直接啟動外設輸出

18、數據,只需將這些數據寫入輸出井中作業(yè)全部運行完畢,再由外設輸出全部數據和信息,稱為緩輸出實現了對作業(yè)輸入、組織調度和輸出的統(tǒng)一管理使外設在CPU直接控制下,與CPU并行工作作業(yè)調度的主要功能審查系統(tǒng)是否能滿足用戶作業(yè)的資源要求按照一定的算法選取作業(yè)設計調度算法應考慮的原則選擇調度算法考慮的因素單道批處理系統(tǒng)的作業(yè)調度算法調度算法評價調度實質上是一個策略問題設定的目標往往是相互沖突的 目標:單位時間內運行盡可能多的作業(yè)使處理機盡可能保持忙碌使各種I/O設備得以充分利用對所有的作業(yè)都是公平合理的設計調度算法時應考慮的因素:調度算法應與系統(tǒng)設計目標保持一致注意系統(tǒng)資源均衡使用保證提交的作業(yè)在截止時間

19、內完成設法縮短作業(yè)平均周轉時間大多數操作系統(tǒng)都采用比較簡單的調度算法作業(yè)平均周轉時間=作業(yè)流中作業(yè)周轉時間之和/作業(yè)流中作業(yè)的個數作業(yè)的周轉時間=作業(yè)的結束時間-作業(yè)的提交時間 T( ) 作業(yè)平均帶權周轉時間 調度算法先來先服務算法(FCFS:First Come First Serve)最短作業(yè)優(yōu)先算法(SJF:Shortest Job First)最高響應比優(yōu)先算法(HRN:Highest Response Ratio Next) 響應比R = 作業(yè)周轉時間 / 作業(yè)運行時間 =(作業(yè)運行時間+作業(yè)等待時間)/ 作業(yè)運行時間 = 1 +(作業(yè)等待時間 / 作業(yè)運行時間)單道批處理系統(tǒng)作業(yè)調

20、度算法先來先服務(FCFS):按照作業(yè)提交的先后次序進行調度,先進入系統(tǒng)者先調度;即啟動等待時間最長的作業(yè)。優(yōu)點:實現簡單、公平缺點:沒考慮資源利用率和作業(yè)的特殊性(短作業(yè))先來先服務算法已很少作主要的調度策略,常被結合在其它的調度策略中使用。調度算法基于優(yōu)先數調度算法 (HPF:Highest Priority First) (a)由用戶規(guī)定優(yōu)先數(外部優(yōu)先數) 用戶提交作業(yè)時,根據急迫程度規(guī)定適當的優(yōu)先數 作業(yè)調度程序根據JCB優(yōu)先數決定進入內存的次序 (b)由系統(tǒng)計算優(yōu)先數(內部優(yōu)先數)均衡調度算法算例假設在單道批處理環(huán)境下有四個作業(yè),已知它們進入系統(tǒng)的時間、估計運行時間 應用先來先服務

21、、最短作業(yè)優(yōu)先和最高響應比優(yōu)先作業(yè)調度算法,分別計算出作業(yè)的平均周轉時間和帶權的平均周轉時間先來先服務調度算法最短作業(yè)優(yōu)先作業(yè)算法最高響應比優(yōu)先作業(yè)算法算例FCFS112.54.975SJF 953.25HRN87.54.075前情回顧:操作系統(tǒng)概述菜單技術窗口技術操作命令的執(zhí)行過程交互式系統(tǒng)實例分時系統(tǒng)分時系統(tǒng)中的用戶控制作業(yè)的執(zhí)行大致有四個階段:終端的連接用戶登錄控制作業(yè)執(zhí)行用戶退出主要內容2.1 作業(yè)的基本概念定義作業(yè)步作業(yè)作業(yè)流作業(yè)控制方式:批處理和交互式2.2 批處理作業(yè)的管理作業(yè)的組織I/O控制(調度)2.3 交互式作業(yè)管理常用操作使用接口2.4 用戶和操作系統(tǒng)之間的接口程序一級接

22、口(系統(tǒng)調用)作業(yè)控制一級接口2.4用戶與操作系統(tǒng)之間的接口2.4用戶與操作系統(tǒng)之間的接口主要內容2.1 作業(yè)的基本概念定義作業(yè)步作業(yè)作業(yè)流作業(yè)控制方式:批處理和交互式2.2 批處理作業(yè)的管理作業(yè)的組織I/O調度控制2.3 交互式作業(yè)管理常用操作使用接口2.4 用戶和操作系統(tǒng)之間的接口程序一級接口(系統(tǒng)調用)作業(yè)控制一級接口重點總結作業(yè)P421.(1)(2)(3)(5)(7)2.操作系統(tǒng)原理Principles of Operating System第三章 進程和處理機管理本章內容要點進程的描述及控制進程調度互斥與同步進程通信死鎖3.1進程的概念程序傳統(tǒng)的程序是一組指令的集合,是靜態(tài)概念,無法

23、描述程序在內存中的執(zhí)行情況,即我們無法從程序的字面上看出它何時執(zhí)行,何時停頓,也無法看出它與其它執(zhí)行程序的關系,因此,程序這個靜態(tài)概念已不能如實反映程序并發(fā)執(zhí)行過程的特征。為了深刻描述程序動態(tài)執(zhí)行過程的性質,人們引入進程(Process)概念。因此應該采取措施來制約、控制各并發(fā)程序段的執(zhí)行速度 反映程序的運行過程程序在執(zhí)行過程中是不斷申請資源 ,程序作為共享資源的基本單位是不合適的所以需要引入一個概念,它能動態(tài)描述程序的執(zhí)行過程而且可以作為擁有資源的基本單位,這個概念就是進程 。思考?為什么引入進程?1.為了開發(fā)同一作業(yè)中不同作業(yè)步之間的并發(fā),作業(yè)機制已不能滿足需要,引入了進程機制。2.動態(tài)描

24、述程序的執(zhí)行過程,制約、控制各并發(fā)程序段的執(zhí)行速度 3.作為擁有資源的基本單位4.3.1 進程的概念和定義1. 進程的定義2. 進程和程序的主要區(qū)別3. 進程的特征進程的定義進程與程序的關系進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調度的一個獨立單位。 進程是操作系統(tǒng)中最基本、重要的概念。是多道程序系統(tǒng)出現后,為了刻畫系統(tǒng)內部出現的動態(tài)情況,描述系統(tǒng)內部各道程序的活動規(guī)律引進的一個概念,所有多道程序設計操作系統(tǒng)都建立在進程的基礎上。進程的特征引入進程帶來的問題增加了空間開銷:為進程建立數據結構額外的時間開銷:管理和協(xié)調、跟蹤、填寫和更新有關數據結構、切換進程、保護現場更難控制:競爭和共享資

25、源、協(xié)調3.1 進程的概念和定義3.2 進程的狀態(tài)和進程控制塊 進程的狀態(tài) 進程的狀態(tài)演變 進程控制塊3.2進程的狀態(tài)和進程控制塊進程的狀態(tài)演變思考?1如果系統(tǒng)中有N個進程,運行的進程最多幾個,最少幾個;就緒進程最多幾個最少幾個;等待進程最多幾個,最少幾個? 2. 有沒有這樣的狀態(tài)轉換,為什么? (1) 等待運行 (2) 就緒等待前情回顧為什么引入進程?進程的定義進程和程序的區(qū)別同一程序同時運行于若干個數據集合上,它將屬于若干個不同的進程。也就是說同一程序可以對應多個進程。 進程的特征動態(tài)性、并行性、獨立性、異步性、結構特征進程的狀態(tài)及狀態(tài)演變思考?為什么引入進程?1.為了開發(fā)同一作業(yè)中不同作

26、業(yè)步之間的并發(fā),作業(yè)機制已不能滿足需要,引入了進程機制。2.動態(tài)描述程序的執(zhí)行過程,制約、控制各并發(fā)程序段的執(zhí)行速度 3.作為擁有資源的基本單位4.進程的狀態(tài)演變多個進程競爭內存資源內存資源緊張無就緒狀態(tài),處理機空閑:I/O速度比較慢,全部進程都處于阻塞狀態(tài)交換技術(swapping):換出一部分虛擬存儲技術掛起狀態(tài)阻塞:等待事件掛起:換出內存就緒狀態(tài)阻塞狀態(tài)就緒/掛起(靜止就緒)阻塞/掛起(靜止阻塞)進程控制塊進程控制塊的組成3.1 進程的概念和定義3.2 進程的狀態(tài)和進程控制塊3.3 進程控制 進程家族及分類補充 操作系統(tǒng)內核 進程控制的基本操作 3.3進程控制補充操作系統(tǒng)內核(kerne

27、l)操作系統(tǒng)的核心,是基于硬件的第一層軟件擴充,提供操作系統(tǒng)最基本的功能,是OS的基礎?,F代OS設計中,為減少系統(tǒng)本身的開銷,往往將一些與硬件緊密相關的(如中斷處理程序、設備驅動程序等)、基本的、公共的、運行頻率較高的模塊(如時鐘管理、進程調度等)以及關鍵性數據結構獨立開來,使之常駐內存,并對他們進行特殊保護,通常把這一部份成為OS內核。補充操作系統(tǒng)內核(kernel)用戶通過系統(tǒng)調用訪問操作系統(tǒng)的功能,這些功能都通過操作系統(tǒng)內核實現。一般地,操作系統(tǒng)內核的功能可以概括地劃分為資源管理功能和支撐功能。資源管理:進程管理、存儲管理、I/O設備管理支撐功能:中斷處理、統(tǒng)計、監(jiān)測、時鐘管理、原語操作

28、等進程控制的基本操作進程控制原語進程創(chuàng)建與撤銷進程切換進程的阻塞與喚醒進程的掛起與激活進程控制的基本操作3.1 進程的概念和定義3.2 進程的狀態(tài)和進程控制塊3.3 進程控制3.4 進程的互斥與同步 臨界區(qū) 進程互斥 進程同步多道程序設計技術允許多個進程同時駐留內存并發(fā)執(zhí)行。問題如何協(xié)調多個進程對系統(tǒng)資源(內存、外部設備等)的競爭和共享?如何解決多個進程因競爭資源而出現結果異常,甚至導致系統(tǒng)不穩(wěn)定、失效等問題?多個進程同時申請文件打印,如何有效分配?例子存折和銀行卡ATM和柜臺存款(1000,2000元)余額5000兩個進程同時讀余額并進行修改多個進程同時修改一數據,必須進行控制在多道程序設計

29、技術的OS中對諸多進程的并發(fā)控制是非常重要和必須的。 臨界區(qū)進程競爭資源首先必須解決互斥問題。某些共享資源必須互斥使用,如打印機、共享變量、表格、文件等。這類資源又稱為臨界資源,訪問臨界資源的那段代碼稱為臨界區(qū)。任何時刻,只允許一個進程進入臨界區(qū),以此實現進程對臨界資源的互斥訪問。臨界資源輸入機、打印機、磁盤機變量、數據、表格、棧。進程互斥進入臨界區(qū)當進程需要使用臨界資源時,通過獲得臨界區(qū)的使用權實現。首先在進入區(qū)判斷是否可以進入臨界區(qū),如果可以,則必須設置臨界區(qū)使用標志,阻止其他后來的進程進入臨界區(qū)。后來的進程通過查看臨界區(qū)的使用標志,知道自己不能進入臨界區(qū),就進入阻塞隊列,將自己阻塞。當臨

30、界區(qū)內的進程使用完畢,退出臨界區(qū)時,即在退出區(qū)修改臨界區(qū)使用標志,并負責喚醒阻塞隊列中的一個進程,讓其進入臨界區(qū)。臨界區(qū)的使用原則(調度原則)當無進程訪問臨界區(qū)時,允許一個進程立即訪問其臨界區(qū)。(空閑讓進)當某一進程已訪問了它的臨界區(qū)時,其他試圖訪問臨界區(qū)的進程必須等待。(忙則等待)當某一進程離開臨界區(qū)時,若有等待訪問臨界區(qū)的進程,則允許其中的一個進程進入臨界區(qū)訪問。(空閑讓進)進程只能在臨界區(qū)內等待有限時間,不能使其他進程在臨界區(qū)外無限等待。(有限等待)進入臨界區(qū)的進程不能在臨界區(qū)內長時間阻塞等待某事件,必須在一定期限內退出臨界區(qū)。(讓權等待) 進程互斥實現方法軟件方法硬件方法信號量方法管程

31、方法消息傳遞方法軟件的方法是指由進程自己,通過執(zhí)行相應的程序指令,實現與別的進程的同步與互斥,無需專門的程序設計語言或者操作系統(tǒng)的支持實踐證明,該方法很那正確控制進程間的同步與互斥,而且可能會大大地增加系統(tǒng)的額外開銷。為了解決軟件方法的不足,有人提出了硬件解決方法,通過屏蔽中斷或采用專門的機器指令控制同步與互斥。減少了系統(tǒng)額外開銷硬件約束條件太強,可能導致進程饑餓與死鎖現象一直沒能成為通用的解決方法。進程互斥-有如千軍萬馬過獨木橋。資源只能互斥地使用,而不能同步使用。利用加鎖實現進程互斥當某個進程進入臨界區(qū)后,為了阻止其他進程進入臨界區(qū),它將鎖上臨界區(qū),直到退出臨界區(qū)為止。并發(fā)進程在申請進入臨

32、界區(qū)時,首先測試該臨界區(qū)是否是上鎖,若是,則該進程要等到臨界區(qū)開鎖之后才能進入臨界區(qū)。缺點:系統(tǒng)開銷大、不公平。前情回顧進程控制塊(PCB)操作系統(tǒng)內核原語操作臨界資源與臨界區(qū)進程互斥實現方法互斥的加鎖實現信號量和P、V操作紅綠燈阻塞,死鎖紅燈阻塞等待綠燈進入臨界區(qū)基本原理兩個或者多個進程可以通過傳遞信號進行合作,可以迫使進程在某個位置暫時停止執(zhí)行(阻塞等待),直到它收到一個可以向前推進的信號(被喚醒)實現信號燈作用的變量稱為信號量,常被定義為記錄型變量s,其中一個域為整型,另一個域為隊列,其元素為等待該信號量的阻塞進程。利用信號量實現進程互斥信號量:表示資源的物理實體,是一個與隊列有關的整數

33、變量,OS系統(tǒng)利用它的狀態(tài)對進程和資源進行管理。原語操作:P操作和V操作wait(s)signal(s)公用信號量:聯(lián)系著一組并行進程,初始值為1,每個進程都可以對它進行P和V操作,通常它為實現進程的互斥而設置。(互斥信號量)私用信號量:聯(lián)系著一組共行進程,初始值為0或者某個整數,僅允許擁有它的進程對他進行P和V操作,通常用來實現進程的同步。(資源信號量)Procedure P(S)Begin Lock out interrupts; 關中斷 S:=S-1; 信號量的值減1 If S0 then begin 如果S0,說明已經沒有此類資源 Status(q):=block; q的申請得不到滿足

34、,將其阻賽 Insert(Q,q); 將q插入到該資源的等待隊列中 end Unlock interrupts; 開中斷End;P原語-P(S)-申請一個單位的資源,執(zhí)行一次P操作,信號量的值就減1。Procedure V(S)Begin Lock out interrupts; 關中斷 S:=S+1; 信號量的值加1 If S=0 then begin 如果S=0,說明有等待該資源的進程 Remove(Q,r); 則將進程r從等待隊列中移出 Status(r):=ready; 并將其狀態(tài)改為就緒 Insert(RL,r); 插入到就緒隊列 end; Unlock interrupts; 開中

35、斷End;V原語-V(S)-釋放一個單位的資源,執(zhí)行一次V操作,信號量的值就加1進程互斥進入臨界區(qū)信號量的特征信號量的特征信號量的值=信號量的初始值-P操作的次數+V操作的次數執(zhí)行V操作表示釋放一個單位的資源。若S1 P(S) 多個讀者共享的計數器rc互斥使用!前情回顧信號量表示資源的實體,變量公用信號量、私用信號量互斥信號量、資源信號量P(s)、V(s)信號量的特征讀者寫者問題進程互斥進入臨界區(qū)進程的同步-不同進程之間的協(xié)作過程進程同步的規(guī)則:計算進程計算出數據后,打印進程才能執(zhí)行打印進程取走數據后,計算進程才能執(zhí)行單緩沖區(qū)兩個私有信號量:Sc:是否有可供打印的結果Sp:緩沖區(qū)的計算結果是否

36、取走初始值: Sc:=0; Sp:=0同步和互斥計算進程:結果輸入緩沖區(qū)計算進程:喚醒打印進程計算進程:數據未取走,阻塞自己打印進程:申請數據打印進程:打印,喚醒計算進程Begin semaphore Sc,Sp; Sc:=0;Sp:=0;Cobegin CP:begin LA:computer next number; Add to buffer; V(Sc); P(Sp); Goto LA end 生產者和消費者問題多緩沖區(qū)同步規(guī)則:生產者企圖將一個消息放入一個已經滿的緩沖區(qū)時要等消費者取走一個消息消費者企圖從空的緩沖區(qū)取走消息時,要等生產者放入一個消息之后互斥:緩沖區(qū)生產者和消費者問題多

37、緩沖區(qū)生產者進程:有空輸入,滿時等待 empty消費者進程:有數消費,空時等待fullfull:消息數量empty:空緩沖區(qū)數量初始值:empty:=n;full:=0對緩沖區(qū)的互斥使用:mutex:=1互斥信號量生產者和消費者問題生產者進程:先看緩沖區(qū)是否有空,P(empty)如果有空,申請互斥使用緩沖區(qū)P(mutex)如果獲得緩沖區(qū)使用權,將數據輸入緩沖區(qū)釋放緩沖區(qū)使用權,V(mutex)發(fā)送消息,有新的數據輸入,V(full)生產者和消費者問題消費者進程:先看緩沖區(qū)是否有數據,P(full)如果有數據,申請互斥使用緩沖區(qū)P(mutex)如果獲得緩沖區(qū)使用權,將數據消費釋放緩沖區(qū)使用權,V

38、(mutex)有新的空間,V(empty)begin semaphore mutex,empty,full; mutext:=1;empty:=n;full:=0;Cobegin producer:begin L1:produce next message; P(empty); P(mutext); add to buffer; V(mutex); V(full); goto L1; end利用信號量實現進程同步分析:司機和售票員要互通消息:是否啟動車輛?能否開車門?分別用S1,S2表示。假設初始狀態(tài)車停在始發(fā)站,車門關著,則S1=0,S2=1,售票員工作流程的起點是開車門。3.5 進程通信進

39、程通信互斥與同步信號通信和信件通信低級通信原語:開鎖、關鎖、P、V操作原語高級通信原語:較高的傳輸效率傳輸大批量的信息消息緩沖和信箱實例幼兒園小朋友喂飯喂飯方法設計的目標?原則?調度在一個隊列中,按照某種方法或者算法,選擇一個適合的個體的過程。關鍵算法如何設計一個好的算法?調度目標公平性處理機利用率提高系統(tǒng)吞吐量盡量減少響應時間3.6進程調度為什么引進進程調度?引起進程調度的原因引起進程調度的原因在分時系統(tǒng)中,分配給該進程運行的時間片已經用完在執(zhí)行完系統(tǒng)調用,當系統(tǒng)程序返回用戶進程時,可認為系統(tǒng)進程執(zhí)行完畢,從而可以調度選擇一個新的用戶進程執(zhí)行在可剝奪方式下,就緒隊列中的某進程的優(yōu)先級變得高于

40、當前執(zhí)行進程的優(yōu)先級時會引起進程調度進程調度的方式長程調度作業(yè)調度短程調度進程調度 進程調度算法先來先服務(FCFS)按照作業(yè)來到的先后順序排隊,每次調度隊首的作業(yè)(進程)。非搶占(剝奪),實現簡單,看似公平對于后進入隊列,運行時間較短的作業(yè)或I/O型的作業(yè)要長時間等待。先來先服務(FCFS)對短作業(yè)不公平。如果長作業(yè)排在隊首,那么后邊的短作業(yè)就會等待很長時間,增加了平均周轉時間。不利于I/O型作業(yè)混合使用,例如加入優(yōu)先級 進程調度算法短作業(yè)(進程)優(yōu)先通過計算判斷就緒隊列中哪個作業(yè)的預期執(zhí)行時間最短,就調度誰。非搶占(剝奪)短作業(yè)(進程)優(yōu)先與FCFS算法相比,改善的系統(tǒng)性能,降低了平均等待

41、時間,提高了系統(tǒng)的吞吐量。也可能讓長作業(yè)長時間等待如何預測執(zhí)行時間?最高優(yōu)先級優(yōu)先(HPF)調度算法優(yōu)先級調度算法(priority-scheduling algorithm)是指每個進程都有一個優(yōu)先級與其相關聯(lián),具有最高優(yōu)先級的就緒進程會被分派到CPU。具有相同優(yōu)先級的進程按FCFS順序調度。作業(yè)調度、進程調度搶占式和非搶占式優(yōu)先級的確定考慮因素進程的類型(性質)系統(tǒng)進程、用戶進程I/O繁忙CPU繁忙:充分利用資源交互性批量性:響應時間進程要求的資源短作業(yè)優(yōu)先外部優(yōu)先級和作業(yè)到達時間進程完成功能的重要性和急迫性優(yōu)先級的確定方法靜態(tài)優(yōu)先級進程創(chuàng)建初給他一個優(yōu)先級,不再改變。調度方法簡單,但是隨

42、著進程的推進,原來確定優(yōu)先級的特性可能在改變。那么為了改善調度性能動態(tài)優(yōu)先級動態(tài)優(yōu)先級典型的動態(tài)優(yōu)先級變化方式為:優(yōu)先級隨著進程運行的剩余時間的減少而上升,使將要執(zhí)行結束的進程盡快完成;或者隨著進程排隊等待時間的增長而上升,使等待時間越長的進程優(yōu)先得到調度,不至于長時間饑餓。具體實現方法,在每個時鐘中斷時,或者需要進程切換時,重新計算隊列中各進程的優(yōu)先級,并優(yōu)先調度優(yōu)先級高的進程。剩余時間最短者優(yōu)先,響應比高者優(yōu)先 進程調度算法響應比高者優(yōu)先作業(yè)(進程)的響應時間=作業(yè)(進程)等待時間+運行時間作業(yè)(進程)的響應比=作業(yè)的響應時間/運行時間既考慮了等待時間,又考慮了運行時間非搶占(剝奪)作業(yè)雖

43、然長,但是隨著等待時間的增加,其響應比增加運行時間越短,響應比越高很難預估作業(yè)的運行時間增加了系統(tǒng)開銷前情回顧進程同步進程調度調度目標調度的原因調度的方式:搶占式和非搶占式調度算法:FCFS、短進程優(yōu)先、最高優(yōu)先級優(yōu)先(動態(tài)優(yōu)先級,響應比高者優(yōu)先)輪轉法實例:在一個分時聯(lián)機系統(tǒng)中,同時有n個人通過各自的終端共享一臺主機(服務器)。終端完成輸入/輸出操作,主機負責處理從終端發(fā)來的請求,為之建立進程并協(xié)調各進程的運行、調度各個進程等,并盡量滿足每個終端用戶對響應時間的要求。在分時系統(tǒng)中,n個進程循環(huán)地獲得時間片而執(zhí)行。從系統(tǒng)中來看他們是交替執(zhí)行的,但每個終端用戶而言,都感覺是在獨占主機,不受其他用

44、戶的影響,這是通過進程并發(fā)執(zhí)行實現的。如果用戶數太多,進程急劇增加,進程的響應時間也可能增長,用戶將明顯感覺到主機的速度慢而不滿意。時間片的大小也會影響到進程的響應時間。1、簡單輪轉法調度程序每次把CPU分配給就緒隊列首進程使用一個時間片,例如100ms,就緒隊列中的每個進程輪流地運行一個時間片。當這個時間片結束時,強迫一個進程讓出處理器,讓它排列到就緒隊列的尾部,等候下一輪調度。搶占式(剝奪式)循環(huán)得為每個進程分配時間片,對每個進程都是公平的。對于短進程和大量I/O操作的進程不利交互對于時間要求緊迫的進程不能及時處理時間片可變優(yōu)先級多隊列2、可變時間片輪轉法時間片設置響應時間就緒隊列中進程數

45、目(最大用戶數)進程轉換時間系統(tǒng)效率等2、可變時間片輪轉法時間片進程數響應時間3、多隊列輪轉法建立多個就緒隊列每個隊列有不同的優(yōu)先級每個隊列又分別采用時間片輪轉法調度調度算法小結先來先服務短進程(作業(yè))優(yōu)先最高優(yōu)先級優(yōu)先剩余時間最短者優(yōu)先響應比高者優(yōu)先輪轉調度法簡單輪轉法可變時間片輪轉法多隊列輪轉法如何選擇進程調度算法跟系統(tǒng)設計的目標有關交互式多任務系統(tǒng),主要考慮聯(lián)機用戶對響應時間的要求,一般采用基于時間片輪轉調度算法,同時根據進程性質設置不同的優(yōu)先級批處理系統(tǒng)往往以作業(yè)的平均周轉時間來衡量調度性能,常選用基于優(yōu)先級的短進程(作業(yè))優(yōu)先調度算法。3.7 死鎖銀行家算法假設某銀行擬將一定數量的資

46、金供給一定數量的顧客共享使用。規(guī)定:每個顧客必須預先 申請對資金的最大需求量,但不得超過銀行共享資金的總和; 每個顧客的借款方式是以一個資金單位為單位銀行對顧客提出的每次交易,將根據當時的資金數量,依照一定的原則,或立即成交或推遲成交,但必須保證客戶等待的時間是有限的,每個顧客的借款總額不得超過其最大申請量當且僅當每個顧客的借款總額達到最大申請量后,才能且必須在有限時間內歸還其全部借款假設銀行有10個資金單位,有甲、乙、丙三個顧客與銀行進行交易,三個顧客的最大申請額分別為8、3、9個資金單位。死鎖并發(fā)控制中出現的問題多個進程競爭系統(tǒng)資源進程的并發(fā)控制不僅要控制若干進程的同步與互斥,確保進程之間

47、的正常通信,還需要解決進程死鎖的問題。一旦出現進程死鎖,相應的進程將無法向前推進。如果系統(tǒng)內的絕大多數進程或全部進程死鎖,那么,整個系統(tǒng)將處于癱瘓狀態(tài),造成系統(tǒng)的死機。交通中的死鎖現象進程競爭引起死鎖改進(推進順序)死鎖定義當某進程提出資源申請后,使得若干進程在無外力作用下,永遠不能再繼續(xù)前進,稱這種情況為系統(tǒng)發(fā)生了死鎖或僵局。競爭資源推進順序不當相互通信而永久阻塞Eg:兩個進程都在等待著對方占有的而不不能為自己使用的資源,這時就發(fā)生了死鎖。若系統(tǒng)出現死鎖,必須有相應的措施進行解除。當然,如果能提前預防和避免死鎖的出現,將能夠提高系統(tǒng)的運行效率。引起死鎖的原因主要原因,競爭資源。而進程對資源的

48、總需求量超過系統(tǒng)能提供的最大資源量。永久性資源(可重用資源)消耗型資源永久性資源,某一時刻僅允許一個進程使用、不能被進程消耗的、釋放以后還可以被其他進程使用的資源。處理機、I/O通道和設備、存儲器、文件、數據庫、信號量之類的競爭永久性資源可能引起死鎖消耗性資源,可以創(chuàng)造(生產)和撤銷(消耗)的資源,其數量不限。中斷、信號、消息、Buffer中的數據進程競爭消耗性資源也可能產生死鎖。程序設計引起死鎖:預防或者解除什么情況造成出現死鎖死鎖產生的條件產生死鎖的條件互斥:競爭的資源一次只能被一個進程使用請求和保持:當一個進程占有一些資源,同時又申請新的資源。如果新資源申請失敗,進程將占有資源且阻塞等待

49、。非剝奪:進程已經占有的資源不能被其他進程強行剝奪。循環(huán)等待:在系統(tǒng)中存在一個由若干進程形成的循環(huán)請求鏈,其中的每一個進程均占有一些資源,同時又申請環(huán)形請求鏈中下一個進程所占有的資源。四個條件-必要條件第四個條件實際上是前三個條件的可能導致的結果,即只有存在互斥、請求和保持、非剝奪條件,就可能出現循環(huán)等待。只要系統(tǒng)出現循環(huán)等待,一定出現死鎖。解決死鎖的方法按照解決死鎖的時機:預防死鎖死鎖檢測(避免死鎖)死鎖恢復(死鎖檢測與恢復)解決死鎖的方法預防死鎖:進程申請資源時必須遵守某些預先制定的限制條件,以破壞產生死鎖的四個必要條件中的一個或幾個,防止死鎖發(fā)生。該方法嚴格限制了系統(tǒng)資源的分配和使用,會

50、降低系統(tǒng)資源的利用率。避免死鎖:當進程申請資源時,需要首先判斷(預測),如果滿足這次資源的請求可能導致死鎖,拒絕請求,阻塞進程,直到其所需的資源可分配為止。類似于下棋該方法并不嚴格限制產生死鎖的四個必要條件,以提高系統(tǒng)資源利用率。安全狀態(tài)和不安全狀態(tài)指系統(tǒng)能按某種進程順序,如,分別為這n個進程分配其所需的資源,直至最大需求,使每個進程都能順利完成。就稱為安全序列如果系統(tǒng)中不存在這樣的安全序列,則稱系統(tǒng)處于不安全狀態(tài),可能出現死鎖。若系統(tǒng)處于安全狀態(tài),且按照某個安全序列分配資源,可以保證系統(tǒng)不會出現死鎖。并非所有不安全狀態(tài)都會出現死鎖。不安全狀態(tài)可能進入死鎖狀態(tài)避免死鎖。避免系統(tǒng)進入不安全狀態(tài)。

51、銀行家算法T0時刻系統(tǒng)是安全的,存在一個安全序列。檢測并解除死鎖:進程申請資源不進行限制,定時的檢測,發(fā)現了就解除死鎖。實踐證明,該方法可進一步提高資源利用率。解除死鎖資源剝奪撤銷進程銀行家算法假設某銀行擬將一定數量的資金供給一定數量的顧客共享使用。規(guī)定:每個顧客必須預先 申請對資金的最大需求量,但不得超過銀行共享資金的總和; 每個顧客的借款方式是以一個資金單位為單位銀行對顧客提出的每次交易,將根據當時的資金數量,依照一定的原則,或立即成交或推遲成交,但必須保證客戶等待的時間是有限的,每個顧客的借款總額不得超過其最大申請量當且僅當每個顧客的借款總額達到最大申請量后,才能且必須在有限時間內歸還其

52、全部借款銀行家算法:分配資源的原則當一個進程對資源的最大需求量不超過系統(tǒng)中的資源數時可以接納該進程進程可以分期請求資源,但請求的總數不能超過最大需求量當系統(tǒng)現有的資源不能滿足進程尚需資源數時,對進程的請求可以推遲分配,但總能使進程在優(yōu)先的時間里得到資源當系統(tǒng)現有的資源能滿足進程尚需資源數時,必須測試系統(tǒng)現存的資源能否滿足該進程尚需的最大資源數,若能滿足則按當前的申請量分配資源,否則也要推遲分配例題:銀行家算法。若系統(tǒng)有同類資源16個,由4個進程P1、P2、P3、P4共享該資源。已知其所需的資源總數分別為8、5、9、6。各進程請求資源的次序如表。若采用銀行家算法為他們分配資源,那么第幾次申請分配

53、會使系統(tǒng)進入不安全狀態(tài)?線程3.8 線程OS引入進程的目的是為了描述和實現多程序的并發(fā)執(zhí)行,改善資源利用率以及系統(tǒng)吞吐量。引入線程?減少程序并發(fā)執(zhí)行時系統(tǒng)所付出的額外開銷,使系統(tǒng)具有更好的并發(fā)性。進程的兩個基本屬性:擁有資源的獨立單位可以獨立調度的基本單位進程作為資源的擁有者和系統(tǒng)的調度對象,需要花費系統(tǒng)較大的額外開銷。因此系統(tǒng)中同時存在的進程數不宜過多,進程切換的頻率也不宜過高,而這限制了并發(fā)度的進一步提高。如何既提高并發(fā)度,又減少額外開銷?資源申請和調度分開進程申請資源,但不作為調度單位線程。線程是進程中的一個實體,是進程內的一個可獨立執(zhí)行的子任務。線程基本上不擁有系統(tǒng)資源,只擁有少許必須

54、的私有資源進程創(chuàng)建線程線程應用舉例線程的屬性每個線程都有唯一的標識和線程描述表不同的線程可以執(zhí)行相同的程序進程中的各個線程共享進程的資源獨立調度單位,多線程并發(fā)有生命周期,有不同的狀態(tài) 輕型進程多線程技術的優(yōu)越性創(chuàng)建線程不需要另行分配資源,創(chuàng)建速度快,而且系統(tǒng)的開銷小線程間的通信在同一存儲空間上進行,不需要額外的通信機制線程能夠獨立執(zhí)行,能充分利用和發(fā)揮處理器和外圍設備并行工作能力重點總結操作系統(tǒng)原理Principles of Operating System第四章 存儲管理存儲器分類:緩存、內存、外存本章主要討論主存儲器空間的用戶區(qū)的管理,即內存的分配方法存儲器主存儲器:主存或內存輔助存儲器

55、:輔存或外存虛擬存儲器(虛擬內存)外存的一部分緩存:內存和處理器之間的高速小容量存儲器本章要點存儲管理的任務內存的劃分與分配實存管理技術虛擬存儲管理技術本章主要研究的問題4.1 存儲管理的目的和功能P91系統(tǒng)區(qū)OS和硬件的接口信息、OS的管理信息、程序等用戶區(qū)用戶程序和數據目的和功能對內存空間進行分配和管理(4點)實現存儲保護擴充內存容量實現地址的變換使存儲管理的軟件簡單、靈活性大、系統(tǒng)的資源利用率高而且成本較低4.2 存儲分配P92基本任務:管理內存空間的分配與回收分配基本內存空間增加新的內存空間動態(tài)申請和釋放內存空間回收內存空間4.2 存儲分配P92存儲分配的步驟首先,根據系統(tǒng)的內存分配算

56、法,在空閑的內存分區(qū)中尋找一塊滿足進程需要的內存空間,將其分配給進程。然后,更新進程的資源分配清單、內存分配情況等數據結構。內存的回收標記空閑可用是否可以回收,有沒有共享,合并4.2 存儲分配P92存儲分配的方式直接方式靜態(tài)分配動態(tài)分配4.3 重定位P934.3 重定位P93邏輯地址,相對地址:一般從0開始編址高級語言使用符號地址:變量名或標號等源程序經過編譯、鏈接以后其中的符號地址就會變成邏輯地址物理地址,絕對地址:標識內存中的每個存儲單元重定位技術地址變換將地址空間中使用的邏輯地址變換成主存中的物理地址的過程。4.3 重定位P93優(yōu)點:管理簡單(軟件實現)無需硬件支持缺點:程序不能移動占用

57、連續(xù)的存儲空間,使內存不能充分利用動態(tài)重定位是在程序執(zhí)行過程中,訪問存儲器之前實現地址轉換。必須借助于硬件、軟件共同實現,即重定位寄存器和加法器。動態(tài)重定位1. 目標程序裝入內存時無需任何修改,不影響正確運行2. 一個程序由若干相對獨立的目標模塊組成時,每個目標模塊各裝入一個存儲區(qū),主存的使用更加靈活硬件支持重定位寄存器和加法器4.4 實存管理技術P96單一連續(xù)分區(qū)分配方式早期的單道批處理系統(tǒng)系統(tǒng)區(qū):OS使用,用戶區(qū):單個用戶,只有一個作業(yè)保護措施:界限寄存器CPU管理方式(管態(tài))、用戶管理方式(目態(tài))優(yōu)點:管理簡單使用安全不需要任何附加的硬件設備缺點:存儲器沒有充分利用處理器利用率較低作業(yè)周

58、轉時間長缺乏靈活性:作業(yè)的地址空間大于主存空用空間?單一連續(xù)分區(qū)分配單道單用戶分區(qū)分配多用戶多道程序多個作業(yè)共享主存空間分區(qū)分配固定式分區(qū)可變式分區(qū)可重定位分區(qū)分配多重分區(qū)分配固定式分區(qū)P97處理作業(yè)之前把主存劃分成若干個分區(qū),每個分區(qū)大小可以相同,也可以不同。除了操作系統(tǒng)占用區(qū)外,其余的各個分區(qū)存放各用戶程序。管理方式數據結構:分區(qū)說明表(分區(qū)表)固定式分區(qū)P97硬件支持:界限寄存器保護鎖優(yōu)點:簡單。缺點:作業(yè)大小受到最大分區(qū)大小的限制主存利用不充分。存在內零頭。前情回顧一組概念:邏輯地址、物理地址重定位技術:邏輯地址物理地址實存管理技術單一連續(xù)分區(qū)分配方式分區(qū)式分配固定式分區(qū):原理、數據結

59、構(分區(qū)說明表)可變式分區(qū):原理、數據結構(已分配區(qū)狀態(tài)表、空閑區(qū)表)可變式分區(qū)P98根據作業(yè)的大小動態(tài)地劃分分區(qū),使分區(qū)的大小正好等于作業(yè)大小。各分區(qū)的大小不定;內存中分區(qū)的數目不定。數據結構已分配區(qū)狀態(tài)表空閑區(qū)狀態(tài)表分配步驟首先根據進程大小從空閑區(qū)表中找一個足以容納該作業(yè)的空閑區(qū)。若這個分區(qū)比較大,則一分為二。一部分分配給作業(yè),另一部分仍作為空閑區(qū)留在表中。再在已分配區(qū)表中找一個空表目,填入新分配作業(yè)的信息。當作業(yè)運行完成撤離系統(tǒng)時:回收作業(yè)占用區(qū)(如何進行?)。將該作業(yè)占用的已分配區(qū)表目置為空??勺兪椒謪^(qū)P98優(yōu)點:比較直觀、簡單。與固定分區(qū)相比,解決了內零頭問題,存儲器的利用率較高。缺

60、點:由于主存分區(qū)個數不定,表格長度不好控制;存在外零頭(現在有一個19K作業(yè)無法運行。但可采用拼接技術解決)??勺兪椒謪^(qū)P98如何分配合適的空閑區(qū)?已分配區(qū)表和空閑區(qū)表如何組織?回收?分配算法首次適應算法(最先適應算法)每次分配分區(qū)時,順序查找空閑區(qū)表,把最先能夠滿足要求的空閑區(qū)進行分割,一部分分為配給作業(yè),另一部分仍為空閑區(qū)。實現簡單、不連續(xù)的空閑區(qū)碎片改進按照地址順序從小到大對空閑區(qū)進行排列最佳適應算法將空閑區(qū)按從小到大的順序在空閑區(qū)表中排列,每次分配分區(qū)時,順序查找空閑區(qū)表,把最先能夠滿足要求的空閑區(qū)進行分割,一部分分為配給作業(yè),另一部分仍為空閑區(qū)。碎片、效率低最佳適應算法實際上并不佳最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論