第二章操作系統(tǒng)
軟件是為了使用戶使用并充分發(fā)揮計算機(jī)性能和效率的各種程序和數(shù)據(jù)的統(tǒng)稱。
軟件又分為系統(tǒng)軟件和應(yīng)用軟件。
系統(tǒng)軟件是所有用戶使用的為了解決用戶使用計算機(jī)而編制的程序。
應(yīng)用軟件是為解決某特定的問題而編制的程序。
操作系統(tǒng)是硬件與所有其他軟件之間的接口,而且是整個計算機(jī)系統(tǒng)的控制和管理中心。
操作系統(tǒng)兩個重要作用:
1.管理系統(tǒng)中各種資源。
所有硬件部分稱為硬件資源。而程序和數(shù)據(jù)等信息成為軟件資源。
2 為用戶提供良好的界面。
操作系統(tǒng)的特征:
1 并發(fā)性。
是在計算機(jī)系統(tǒng)中同時存在多個程序,宏觀上看,這些程序是同時向前推進(jìn)的。
在單CPU上,這些并發(fā)執(zhí)行的程序是交替在CPU上運(yùn)行的。
程序并發(fā)性體現(xiàn)在兩個方面:
用戶程序與用戶程序之間的并發(fā)執(zhí)行。
用戶程序與操作系統(tǒng)程序之間的并發(fā)。
2 共享性。
資源共享是操作系統(tǒng)程序和多個用戶程序共用系統(tǒng)中的資源。
3 隨機(jī)性。
隨機(jī)性指:操作系統(tǒng)的運(yùn)行是在一個隨機(jī)的環(huán)境中,一個設(shè)備可能在任何時間向處理機(jī)發(fā)出中斷請求,系統(tǒng)無法知道運(yùn)行著的程序會在什么時候做什么事情。
沒有任何軟件支持的計算機(jī)稱為*機(jī)。
操作系統(tǒng)是硬件的第一層軟件擴(kuò)充。
操作系統(tǒng)的功能:
1 進(jìn)程管理:主要是對處理機(jī)進(jìn)行處理。
隨著系統(tǒng)對處理機(jī)管理方法不同,其提供的作業(yè)處理方式也不同,例如有批處理方式,分時方式和實(shí)時方式。
2 存儲管理:主要是管理內(nèi)存資源。
當(dāng)內(nèi)存不夠的時候,解決內(nèi)存擴(kuò)充問題,就是內(nèi)存和外存結(jié)合起來的管理,為用戶提供一個容量比實(shí)際內(nèi)存大的多的虛擬存儲器,這是操作系統(tǒng)的存儲功能的重要任務(wù)。
3 文件管理。系統(tǒng)中的信息資源是以文件的形式存放在外存儲器上的。
4 設(shè)備管理。設(shè)備管理是計算機(jī)系統(tǒng)中除了CPU和內(nèi)存外的所有輸入,輸出設(shè)備的管理。
5 用戶和操作系統(tǒng)的接口。
操作系統(tǒng)的分類:
1 批處理操作系統(tǒng)。
兩個特點(diǎn):一是多道,一是成批。多道是系統(tǒng)內(nèi)同時容納多個作業(yè),這些作業(yè)存放在外存中,組成一個后備作業(yè)序列,系統(tǒng)按一定的調(diào)度原則每次從后備作業(yè)中選取一個或多個作業(yè)放入內(nèi)存中運(yùn)行,運(yùn)行作業(yè)結(jié)束并退出運(yùn)行和后備作業(yè)進(jìn)行運(yùn)行均由系統(tǒng)自動實(shí)現(xiàn),從而在系統(tǒng)中形成一個自動轉(zhuǎn)接的連續(xù)的作業(yè)流。而成批是系統(tǒng)運(yùn)行中不允許用戶和他的作業(yè)發(fā)生交互關(guān)系。
批處理系統(tǒng)追求的目標(biāo)是提高系統(tǒng)資源利用率和大作業(yè)吞吐量以及作業(yè)流程的自動化。
2 分時系統(tǒng)。
分時系統(tǒng)允許多個用戶同時連機(jī)使用計算機(jī)。
操作系統(tǒng)采用時間片輪轉(zhuǎn)的方式處理每個用戶的服務(wù)請求。
特點(diǎn):
多路性。
交互性。又叫交互操作系統(tǒng)。
獨(dú)立性。
及時性。分時系統(tǒng)性能的主要指標(biāo)之一的是響應(yīng)時間,是從終端發(fā)出命令到系統(tǒng)與應(yīng)答的時間。
通常計算機(jī)系統(tǒng)采用批處理和分時處理方式來為用戶服務(wù)。時間要求不強(qiáng)的作業(yè)放入后臺批處理處理,需要頻繁交互的作業(yè)在前臺分時處理。
3 實(shí)時系統(tǒng)。
系統(tǒng)能夠及時響應(yīng)隨機(jī)發(fā)生的外部事件,并在嚴(yán)格的時間范圍內(nèi)完成對該事件的處理。實(shí)時系統(tǒng)作為一個特定應(yīng)用中的控制設(shè)備來使用。
分為兩類:
1. 時控制系統(tǒng)。
2. 時信息處理系統(tǒng)。
特點(diǎn):及時響應(yīng)和高可靠性。
4 個人計算機(jī)操作系統(tǒng)。
個人計算機(jī)操作系統(tǒng)是一個聯(lián)機(jī)交互的單用戶操作系統(tǒng),它提供的聯(lián)機(jī)交互功能與分時系統(tǒng)所提供的功能很相似。
5 網(wǎng)絡(luò)操作系統(tǒng)。
計算機(jī)網(wǎng)絡(luò)是通過通信設(shè)施將地理上分散的具有自治功能的多個計算機(jī)系統(tǒng)互連起來,實(shí)現(xiàn)信息交換,資源共享,互操作和協(xié)作處理的系統(tǒng)。網(wǎng)絡(luò)操作系統(tǒng)就是在原來的各自計算機(jī)系統(tǒng)操作上,按照網(wǎng)絡(luò)體系結(jié)構(gòu)的各個協(xié)議標(biāo)準(zhǔn)進(jìn)行開發(fā),使之包括網(wǎng)絡(luò)管理,通信,資源共享,系統(tǒng)安全和多種網(wǎng)絡(luò)應(yīng)用服務(wù)的操作系統(tǒng)。
6 分布式操作系統(tǒng)。
從資源管理觀點(diǎn):
把操作系統(tǒng)分為處理機(jī)管理,存儲管理,設(shè)備管理,文件管理,用戶與操作系統(tǒng)的接口等5個主要部分。
虛機(jī)器觀點(diǎn)。
用戶不再直接使用硬件機(jī)器,而是通過操作系統(tǒng)來控制和使用計算機(jī),從而把計算機(jī)擴(kuò)充為功能更強(qiáng),使用更加方便的計算機(jī)系統(tǒng)。操作系統(tǒng)的全部功能,稱為操作系統(tǒng)虛機(jī)器。
操作系統(tǒng)所涉及的硬件環(huán)境:2 特權(quán)指令與處理機(jī)狀態(tài)。
特權(quán)指令和非特權(quán)指令。
特權(quán)指令是只允許操作系統(tǒng)使用,而不允許一般用戶使用的指令。
非特權(quán)指令之處的指令稱為非特權(quán)指令,非特權(quán)指令的執(zhí)行不影響其他用戶以及系統(tǒng)。
3 CPU狀態(tài)。
CPU交替執(zhí)行操作系統(tǒng)程序和用戶程序。
CPU的狀態(tài)屬于程序狀態(tài)字PSW的一位。大多數(shù)計算機(jī)系統(tǒng)將CPU執(zhí)行狀態(tài)分為管態(tài)和目態(tài)。
管態(tài)又叫特權(quán)態(tài),系統(tǒng)態(tài)或核心態(tài)。CPU在管態(tài)下可以執(zhí)行指令系統(tǒng)的全集。通常,操作系統(tǒng)在管態(tài)下運(yùn)行。
目態(tài)又叫常態(tài)或用戶態(tài)。機(jī)器處于目態(tài)時,程序只能執(zhí)行非特權(quán)指令。用戶程序只能在目態(tài)下運(yùn)行,如果用戶程序在目態(tài)下執(zhí)行特權(quán)指令,硬件將發(fā)生中斷,由操作系統(tǒng)獲得控制,特權(quán)指令執(zhí)行被禁止,這樣可以防止用戶程序有意或無意的破壞系統(tǒng)。
從目態(tài)轉(zhuǎn)換為管態(tài)的途徑是中斷。
從管態(tài)到目態(tài)可以通過修改程序狀態(tài)字來實(shí)現(xiàn),這將伴隨這由操作系統(tǒng)程序到用戶程序的轉(zhuǎn)換。
4 中斷機(jī)制。
中斷機(jī)制是現(xiàn)代計算機(jī)系統(tǒng)中的基礎(chǔ)設(shè)施之一,它在系統(tǒng)中起著通信網(wǎng)絡(luò)作用,以協(xié)調(diào)系統(tǒng)對各種外部事件的響應(yīng)和處理。
中斷是實(shí)現(xiàn)多道程序設(shè)計的必要條件。
中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)。
引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發(fā)生中斷時被打斷程序的暫停點(diǎn)成為斷點(diǎn)。CPU暫?,F(xiàn)行程序而轉(zhuǎn)為響應(yīng)中斷請求的過程稱為中斷響應(yīng)。處理中斷源的程序稱為中斷處理程序。CPU執(zhí)行有關(guān)的中斷處理程序稱為中斷處理。而返回斷點(diǎn)的過程稱為中斷返回。
中斷的實(shí)現(xiàn)實(shí)行軟件和硬件綜合完成,硬件部分叫做硬件裝置,軟件部分成為軟件處理程序。
中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。
一般將中斷源分為兩大類:強(qiáng)迫性中斷和自愿性中斷。
強(qiáng)迫性中斷是正在運(yùn)行的程序所不期望的,它們是或發(fā)生,何時發(fā)生事先無法預(yù)料,因而運(yùn)行程序可以在任意位置處被打斷。
2 輸入輸出中斷::這是來自通道或外部設(shè)備的中斷。
3 硬件故障中斷
4 時鐘中斷
5 控制臺中斷
6 程序性中斷
自愿性中斷是正在運(yùn)行的程序有意識安排的,通常是由于程序員在編制程序時,因要求操作
系統(tǒng)提供服務(wù)而有意使用訪管指令或系統(tǒng)調(diào)用,從而導(dǎo)致中斷的,所以又稱其為訪管中斷。
系統(tǒng)為每類中斷設(shè)置一個中斷處理程序。每個中斷處理程序都有一個入口地址PC及其運(yùn)行
環(huán)境PSW,它們被稱為中斷向量,保存在內(nèi)存中固定的單元。
中斷響應(yīng)是解決中斷的發(fā)現(xiàn)和接受問題,是由中斷裝置完成的。中斷響應(yīng)是硬件對中斷請求
作出響應(yīng)的過程,包括識別中斷源,保留現(xiàn)場,引出中斷處理程序等過程。
CPU每執(zhí)行完一條指令,便去掃描中斷寄存器,查詢有無中斷請求。若有中斷請求,則通過交換中斷向量進(jìn)入中斷處理程序,這就是中斷響應(yīng)。
系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,由硬件將中斷源分為若干個級別,稱為中斷優(yōu)先級。
中斷屏蔽是指在提出中斷請求之后,CPU不予響應(yīng)的狀態(tài)。它常常用來在處理某一中斷時防止同級中斷的干擾或在處理一段不可分割,必須連續(xù)執(zhí)行的程序時防止任何中斷事件的干擾。
CPU是否允許某類中斷,由當(dāng)前程序狀態(tài)字中的中斷屏蔽位決定。
屏蔽中斷源相當(dāng)于關(guān)中斷,處于關(guān)中斷狀態(tài)下執(zhí)行的程序段因盡量短,否則可能會丟失信息
,也會影響系統(tǒng)的并發(fā)性。
中斷反應(yīng)過程:
1保存被中斷程序的現(xiàn)場。
2分析中斷源,確定中斷原因。
3轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序。
4恢復(fù)被中斷程序現(xiàn)場,繼續(xù)執(zhí)行被中斷程序。
操作系統(tǒng)向用戶提供兩類接口:一類是用于程序級的,另一類是用于作業(yè)控制一級的。
1 程序級接口。
它由一組系統(tǒng)調(diào)用命令組成。與機(jī)器指令不同之處在于系統(tǒng)調(diào)用命令由操作系統(tǒng)核心解釋執(zhí)行。
系統(tǒng)調(diào)用是操作系統(tǒng)向用戶提供的程序一級的服務(wù),用戶程序借助與系統(tǒng)調(diào)用命令來向操作系統(tǒng)提出各種資源要求和服務(wù)請求。
一般系統(tǒng)調(diào)用可分為幾類:設(shè)備管理類,文件管理類,進(jìn)程控制類,進(jìn)程通信類,存儲管理類。
2 作業(yè)級接口。
這類接口是系統(tǒng)為用戶在作業(yè)一級請求系統(tǒng)服務(wù)而設(shè)置的,用戶可利用這組接口組織作業(yè)的工作流程和控制作業(yè)的運(yùn)行。這類接口分為聯(lián)機(jī)接口和脫機(jī)接口。
1 聯(lián)機(jī)接口。
聯(lián)機(jī)接口由一組鍵盤操作命令組成,是用戶以交互方式請求操作系統(tǒng)服務(wù)的手段。
鍵盤操作命令的作業(yè)控制方式靈活方便,用戶可以根據(jù)運(yùn)行情況隨時干預(yù)自己的作業(yè),但是系統(tǒng)利用率不高。
2 脫機(jī)接口。
由一組作業(yè)控制命令組成,供脫機(jī)用戶使用。
這種接口主要是用于批處理方式操作系統(tǒng),其優(yōu)點(diǎn)是作業(yè)的操作過程由系統(tǒng)自動調(diào)度或系統(tǒng)操作員干預(yù),因而系統(tǒng)利用率高。
處理機(jī)是計算機(jī)系統(tǒng)中最重要的資源。
多道程序設(shè)計是操作系統(tǒng)所采用的最基本,最重要的技術(shù)。其根本目的是提高整個系統(tǒng)的效率。
衡量系統(tǒng)效率的尺度是系統(tǒng)吞吐量。所謂吞吐量是單位時間內(nèi)系統(tǒng)所處理作業(yè)的道數(shù)。
進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行運(yùn)動,進(jìn)程是系統(tǒng)核心資源分配和調(diào)度的一個獨(dú)立單位。
進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)程兩類。
系統(tǒng)進(jìn)程的優(yōu)先級通常高與一般用戶進(jìn)程的優(yōu)先級。
從靜態(tài)的角度看,進(jìn)程是程序,數(shù)據(jù)和進(jìn)程控制塊PCB三部分組成。
進(jìn)程和程序的區(qū)別是程序是靜態(tài)的,而進(jìn)程是動態(tài)的。
一個進(jìn)程可以執(zhí)行一個或幾個程序,一個程序也可以構(gòu)成多個進(jìn)程。
被創(chuàng)建的進(jìn)程成為子進(jìn)程,創(chuàng)建者稱為父進(jìn)程,從而構(gòu)成進(jìn)程家族。
操作系統(tǒng)的并發(fā)性和共享性正是通過進(jìn)程的活動體現(xiàn)出來的。
1 并發(fā)性。
2 動態(tài)性。
3 獨(dú)立性。
4 交往性。
5 異步性。
進(jìn)行中的進(jìn)程可以處于以下三種之一:運(yùn)行,就緒,等待。
運(yùn)行狀態(tài)是進(jìn)程已經(jīng)獲得CPU,并且在CPU上執(zhí)行的狀態(tài)。顯然,在一個單CPU系統(tǒng)上,最多只有一個進(jìn)程處于運(yùn)行狀態(tài)。
就緒狀態(tài),是一個進(jìn)程已經(jīng)具備運(yùn)行條件,但是由于沒有獲得CPU而不能運(yùn)行所處的狀態(tài)。
等待狀態(tài),也叫阻塞狀態(tài)或封鎖狀態(tài)。是進(jìn)程因等待某種事件發(fā)生而暫時不能運(yùn)行的狀態(tài)。
在任何時刻,任何進(jìn)程都處于且僅處于以上3種狀態(tài)之一。
為了便于系統(tǒng)控制和描述進(jìn)程的活動進(jìn)程,在操作系統(tǒng)核心中為進(jìn)程定義為一個專門的數(shù)據(jù)結(jié)構(gòu),成為進(jìn)程控制塊PCB。
PCB信息可以分成為調(diào)度信息和現(xiàn)場信息兩部分。
每個進(jìn)程都有自己專用的工作存儲區(qū),其他進(jìn)程運(yùn)行時不會改變它的內(nèi)容。
進(jìn)程是程序,數(shù)據(jù)和進(jìn)程控制塊PCB三部分組成。
系統(tǒng)中進(jìn)程隊列分為3類:
1 就緒隊列。
2 等待隊列。
3 運(yùn)行隊列。在單機(jī)系統(tǒng)中整個系統(tǒng)只有一個。實(shí)際上,一個運(yùn)行隊列中只有一個進(jìn)程。
進(jìn)程同步是進(jìn)程之間一種直接的協(xié)同工作關(guān)系,是一些進(jìn)程相互合作,共同完成一項任務(wù)。進(jìn)程之間間接相互作用構(gòu)成進(jìn)程同步。
各個進(jìn)程互相排斥使用這些資源,進(jìn)程之間的這種關(guān)系是進(jìn)程的互斥。
進(jìn)程之間的間接相互作用叫做進(jìn)程的互斥。
系統(tǒng)中一些資源一次只允許一個進(jìn)程使用,這個資源稱為臨界資源。而在進(jìn)程中訪問臨界資源的那一段程序稱為臨界區(qū)。
系統(tǒng)對臨界區(qū)的調(diào)度原則歸納為:當(dāng)沒有進(jìn)程在臨界區(qū)時,允許一個進(jìn)程立即進(jìn)入臨界區(qū);若有一個進(jìn)程已經(jīng)在臨界區(qū),其他要求進(jìn)入臨界區(qū)的進(jìn)程必須等待,進(jìn)程進(jìn)入臨界區(qū)的要求必須在有間里得到滿足。
信號量。被P和V操作使用。
原語是由若干條機(jī)器指令構(gòu)成的一段程序,用以完成特定功能。
原語在執(zhí)行過程中不可分割。
高級通信原語,解決大量信息交換問題。
目前高級通信機(jī)制有1消息緩沖通信,2管道通信和3信箱通信。
2 實(shí)現(xiàn)信息緩沖通信,要利用發(fā)送原語和接受原語。
3 管道通信以文件系統(tǒng)為基礎(chǔ)。
實(shí)質(zhì)是利用外存來進(jìn)行數(shù)據(jù)通信,故具有傳送數(shù)據(jù)大的優(yōu)點(diǎn)。
4 信箱通信。
分為單向信箱和雙向信箱兩種通信方式。
進(jìn)程控制通過原語來實(shí)現(xiàn)。 1.創(chuàng)建原語。
進(jìn)程的控制是通過原語實(shí)現(xiàn)的。
創(chuàng)建一個進(jìn)程的主要任務(wù)是建立進(jìn)程控制塊PCB。
撤消進(jìn)程的實(shí)質(zhì)是撤消進(jìn)程控制塊PCB。
3 撤消原語。
4 阻塞原語。
5 喚醒原語。
進(jìn)程調(diào)度是處理機(jī)調(diào)度。
1 記錄系統(tǒng)中所有進(jìn)程的執(zhí)行狀態(tài)。
2 根據(jù)一定調(diào)度算法,從就緒隊列中選出一個進(jìn)程來,準(zhǔn)備把CPU分給它。
3 把CPU分給進(jìn)程。
進(jìn)程調(diào)度一般在下面的情況下發(fā)生的:
1 正在執(zhí)行的進(jìn)程執(zhí)行完畢。
2 正在執(zhí)行的進(jìn)程調(diào)用阻塞原語將自己阻塞起來進(jìn)入等待狀態(tài)。
3 正在執(zhí)行的進(jìn)程調(diào)用了P原語操作,從而因?yàn)橘Y源不足而被阻塞,或調(diào)用了V原語操作擊活了等待資源的進(jìn)程。
4 在分時系統(tǒng)中時間片用完。
在CPU方式是可以剝奪的時候,還有:
12 就緒隊列中的某個進(jìn)程的優(yōu)先級邊的高與當(dāng)前進(jìn)程的優(yōu)先級,從而引起進(jìn)進(jìn)程調(diào)度。
進(jìn)程調(diào)度算法解決以何種次序?qū)Ω骶途w進(jìn)程進(jìn)行處理機(jī)的分配以及按何種時間比例讓進(jìn)程占用處理機(jī)。
1 先進(jìn)先出算法。
2 時間片輪轉(zhuǎn)算法。
3 優(yōu)先數(shù)算法。
靜態(tài)優(yōu)先數(shù)。動態(tài)優(yōu)先數(shù)。
在多道程序系統(tǒng)中,一組進(jìn)程中的每個進(jìn)程均無限期的等待被該組進(jìn)程中的另一個進(jìn)程所占有且永遠(yuǎn)不會釋放的資源,這種現(xiàn)象處于死鎖狀態(tài)。處于死瑣狀態(tài)的進(jìn)程稱為死瑣進(jìn)程。發(fā)生死瑣時,死瑣進(jìn)程至少有兩個。所有死瑣進(jìn)程都有等待資源,其中,至少有兩個死瑣進(jìn)程占用了資源。
永久性資源和臨時性資源。
產(chǎn)生死瑣的原因是:
3 系統(tǒng)提供的資源數(shù)量有限,不能滿足每個進(jìn)程的使用。
4 多道程序設(shè)計時,進(jìn)程推進(jìn)次序不合理。
產(chǎn)生死瑣的4個必要條件:
1 互斥條件。
2 不可剝奪條件。
3 部分分配。
4 循環(huán)等待。
資源分配圖(注意40頁B圖有問題)
三種預(yù)防措施:
2 采用靜態(tài)資源預(yù)分配,破壞“部分分配”條件。
3 允許進(jìn)程剝奪其他進(jìn)程占用的資源,從而破壞“不可剝奪”條件。
4 采用資源有序分配法,破壞“環(huán)路”條件。
安全狀態(tài)是沒有死瑣的狀態(tài)。
什么時候進(jìn)行死瑣檢測主要取決于死瑣發(fā)生的頻率和死瑣所涉及的進(jìn)程個數(shù)。
死瑣的解除:
1 資源剝奪法。
2 撤消進(jìn)程法。
比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位:線程。
每個線程有一個的標(biāo)識符和一張線程描述表。
不同的線程可以執(zhí)行相同的程序。
同一個進(jìn)程中的線程共享該進(jìn)程的內(nèi)存地址空間。
線程是處理機(jī)的獨(dú)立調(diào)度單位,多個線程是可以并發(fā)執(zhí)行的。
引入線程的好處:
1 創(chuàng)建一個新線程花費(fèi)的時間少。
2 兩個線程的切換時間少。
3 由于同一個進(jìn)程內(nèi)的現(xiàn)成共享內(nèi)存和文件,所以線程之間互相通信必須調(diào)用內(nèi)核。
4 線程能獨(dú)立執(zhí)行,能充分利用和發(fā)揮處理機(jī)與外圍設(shè)備并行工作的能力。
存儲管理主要是對內(nèi)存空間的管理。
內(nèi)存空間分為:系統(tǒng)區(qū);用戶區(qū)。
內(nèi)存共享是兩個或多個線程共用內(nèi)存中相同的區(qū)域,其目的是節(jié)省內(nèi)存空間,實(shí)現(xiàn)進(jìn)程之間的通信,提高內(nèi)存空間的利用率。
存儲共享的內(nèi)容可以是程序的代碼,也可是數(shù)據(jù),如果是代碼共享,則必須是純代碼,或叫做“可再入程序”,既它在運(yùn)行過程中不修改自身。代碼共享的目的是節(jié)省內(nèi)存。
存儲保護(hù):
1 防止地址越界。
2 防止操作越權(quán)。
實(shí)存儲器:內(nèi)存,外存,高速緩存。
虛存儲器:1.用戶程序的邏輯地址構(gòu)成的地址空間。
2.當(dāng)內(nèi)存容量不滿足用戶要求時候,采用一種將內(nèi)存空間與外存空間有機(jī)結(jié)合的在一起,利用外存自動調(diào)動的方法構(gòu)成一個大的存儲器。
地址影射:為了保證CPU執(zhí)行程序指令時候能夠正確訪問存儲單元,需要將用戶程序中的邏輯地址轉(zhuǎn)化為運(yùn)行時可由機(jī)器直接尋址的物理地址。
分為:靜態(tài)地址影射和動態(tài)地址影射。
內(nèi)存擴(kuò)充:在硬件支持下,將外存作為內(nèi)存的擴(kuò)充部分供用戶程序使用。
虛擬存儲技術(shù):利用內(nèi)存擴(kuò)充技術(shù),由操作系統(tǒng)處理內(nèi)存與外存的關(guān)系,統(tǒng)一管理內(nèi)外存,向用戶提供一個容量相當(dāng)大的虛擬存儲空間。
1 靜態(tài)等長分區(qū)的分配。
內(nèi)存空間被分為若干個長度相等的區(qū)域,每個區(qū)域叫做一個頁面。
2 動態(tài)異長分區(qū)的分配。
系統(tǒng)用空閑區(qū)表管理這些區(qū)域。
包括:空閑區(qū)首地址和空閑區(qū)長度。
碎片:內(nèi)存中出現(xiàn)的一些零散的小空間區(qū)域。
利用:緊湊。緊湊技術(shù)。
分區(qū)管理是滿足多道程序運(yùn)行的最簡單的存儲管理方案。
分區(qū)分為固定分區(qū)和可變分區(qū)。
基址寄存器用來存放用戶程序在內(nèi)存中的起始地址,限長寄存器用來存放用戶程序的長度。
單一連續(xù)區(qū)存儲管理方案:對單道系統(tǒng)。
頁式存儲管理。
頁式存儲管理將內(nèi)存空間發(fā)分為等長的若干區(qū)域,每個區(qū)域稱為一個物理頁面,有時也稱為內(nèi)存塊或塊。
內(nèi)存的所有物理頁面從0開始編號,稱做物理頁號或內(nèi)存塊號。
每個物理頁面內(nèi)從0開始編址,稱為頁內(nèi)地址。
頁面大小一般為2的整數(shù)次冪。
聯(lián)想寄存器(相聯(lián)存儲器):由高速寄存器組成,成為一張快表。
快表用來存放當(dāng)前訪問最頻繁的少數(shù)活動頁的頁號。
查找快表和查找內(nèi)存頁是同步的。
每個物理段在內(nèi)存中有一個開始位置,稱為段首址。
邏輯上連續(xù)的段在內(nèi)存中不一定連續(xù)存放。
進(jìn)程運(yùn)行時,在一段時間里,程序的執(zhí)行往往呈現(xiàn)高度的局部性,包括時間局部性和空間局部性。
時間局部性是一旦一個指令被執(zhí)行了,則在不久的將來,它可能再被執(zhí)行。
空間局部性是一旦一個指令一個存儲單元被訪問,那么它附近的單元也將很快被訪問。
程序的局部性原理是虛擬存儲技術(shù)引入的前提。
虛擬存儲的實(shí)現(xiàn)原理是,當(dāng)進(jìn)程要求運(yùn)行時,不是將它全部裝入內(nèi)存,而是將其一部分裝入內(nèi)存,另一部分暫時不裝入內(nèi)存。
虛擬存儲管理分為虛擬頁式,虛擬段式,虛擬段頁式。
頁面淘汰:當(dāng)內(nèi)存空間已被占滿而又要掉入新頁面時候,必須把已在內(nèi)存的某個頁面淘汰掉。如果被淘汰的頁面曾經(jīng)被修改過,還要將此頁面寫回外存,再換入新的頁面。
顛簸是由缺頁率高而引入。
系統(tǒng)規(guī)定缺頁率的上界和下界交換技術(shù)是:進(jìn)程在內(nèi)存空間與外存空間之間的動態(tài)調(diào)整,是緩解內(nèi)存空間緊張的一種有效方法。
文件是具有符號名的,在邏輯上具有完整意義的一組相關(guān)信息項的有序序列。
信息項是構(gòu)成文件內(nèi)容的基本單位。
讀指針用來記錄文件當(dāng)前文件之前的讀取位置,它指向下一個將要讀取的信息項。
寫指針用來記錄文件當(dāng)前的寫入位置,下一個將要寫入的信息項被寫到該處。
按性質(zhì)和用途分類:系統(tǒng)文件。用戶文件。
按文件的邏輯結(jié)構(gòu)分為:流式文件。記錄式文件。
按信息的保存期限分類:臨時文件。永久性文件。檔案文件。
按文件的物理結(jié)構(gòu)分類:順序文件。鏈接文件。索引文件。HASH文件。索引順序文件。
按文件的存取方式:順序存取文件。隨機(jī)存取文件。
UNIX系統(tǒng)中文件分類:普通文件。目錄文件。特殊文件。
文件系統(tǒng):操作系統(tǒng)中實(shí)現(xiàn)文件統(tǒng)一管理的一組軟件,被管理的文件以及為實(shí)施文件管理所需要的一些數(shù)據(jù)結(jié)構(gòu)的總稱。
文件的邏輯結(jié)構(gòu)是文件的外部組織形式。
3 流式文件。基本單位是字符。流式文件是有序字符的集合,其長度為該文件所包含的字符個數(shù),所以稱為字符流文件。
4 記錄式文件?;締挝皇怯涗?。分為:定長記錄文件和變長記錄文件。
文件的存取方式是由文件的性質(zhì)和用戶使用文件的情況決定。
1 順序存取。
2 隨機(jī)存取。
磁帶是順序存取。磁盤是隨機(jī)存取。
文件的物理結(jié)構(gòu):
1 順序結(jié)構(gòu)。
2 鏈接結(jié)構(gòu)。
3 索引結(jié)構(gòu)。
如果是三級索引,文件長度為:256*256*256+256*256+256+10
文件系統(tǒng)的一個特點(diǎn)是“按名存取”
文件目錄是文件控制塊的有序集合。
目錄文件是長度固定的記錄式文件。大多數(shù)操作系統(tǒng)如UNIX,DOS采用多級目錄機(jī)構(gòu) ,稱為樹型目錄結(jié)構(gòu)。
從根目錄出發(fā)到任一非葉結(jié)點(diǎn)或樹頁結(jié)點(diǎn)都有且只有一條路徑。
系統(tǒng)為用戶提供一個目前使用的工作目錄,稱為當(dāng)前目錄。
目錄分解法:將目錄項分為:名號目錄項,基本目錄項。
目錄文件也分為名號目錄文件和基本目錄文件。
文件存取控制通過文件的共享,保護(hù)和保密三方面體現(xiàn)。
文件的共享是一個文件可以允許多個用戶共同使用。
文件的存取控制分為兩級:
2 訪問者的識別。文件主。文件主的同組用戶或合作者。其他用戶。
3 存取權(quán)限的識別。
存取控制表一般放在文件控制塊里。
文件的操作:OPEN。CLOSE。READ。WRITE。CREAT 。DELETE。
保證文件系統(tǒng)安全的方法是備份。
1 海量轉(zhuǎn)儲。
2 增量轉(zhuǎn)儲。
設(shè)備管理是計算機(jī)系統(tǒng)中除了CPU和內(nèi)存以外的所有輸入,輸出設(shè)備的管理。
4 按設(shè)備工作特性分為:存儲設(shè)備,輸入輸出設(shè)備。
5 按設(shè)備上數(shù)據(jù)組織方式分類:塊設(shè)備,字符設(shè)備。
6 按資源分配的角度分類:獨(dú)占設(shè)備。共享設(shè)備。虛擬設(shè)備。虛設(shè)備技術(shù)。虛設(shè)備。
SPOOLing技術(shù)是一種典型的虛設(shè)備技術(shù)。
CUP對外部設(shè)備的控制方式分為:
1 中斷處理方式。
每當(dāng)設(shè)備完成I/O操作,已中斷請求方式通知CPU,然后進(jìn)行相應(yīng)處理。
2 循環(huán)測試方式。
3 直接內(nèi)存存取方式DMA。
DMA方式用于高速設(shè)備與內(nèi)存之間批量數(shù)據(jù)的傳輸。
6 通道方式。通道是一個用于控制外部設(shè)備工作的硬件機(jī)制,相當(dāng)與一個功能簡單的處理機(jī)。是實(shí)現(xiàn)計算和傳輸并行的基礎(chǔ)。
主機(jī)對外部設(shè)備的控制三個層次來實(shí)現(xiàn),既通道,控制器和設(shè)備。
一個通道可以控制多個控制器,一個控制器又可以連接若干臺同類型的外部設(shè)備。
一般設(shè)備的連接可以采用交叉連接。好處是:
1 提高系統(tǒng)的可靠性。
2 提高設(shè)備的并行性。
通道分為:
3 字節(jié)多路通道。連接打印機(jī),終端等低速和中速設(shè)備。
4 選擇通道。連接磁盤,磁帶等高速設(shè)備。
5 成組多路通道。
通道的運(yùn)算控制部件包括:
1 通道地址字:CAW。
2 通道命令字:CCW。
3 通道狀態(tài)字:CSW。
通道訪問內(nèi)存采用“周期竊用”方式。
緩沖是計算機(jī)系統(tǒng)中常用的技術(shù)。一般,凡是數(shù)據(jù)到達(dá)速度和離去不匹配的地方都可以采用數(shù)據(jù)緩沖技術(shù)。
緩沖池。
設(shè)備分配的任務(wù)是按照一定的方法為申請設(shè)備的進(jìn)程分配合適的設(shè)備,控制器和通道。
SPOOLing是一種虛擬設(shè)備技術(shù)。其核心思想是在一臺共享設(shè)備上模擬獨(dú)占設(shè)備的操作。
輸入井和輸出井。
在配有通道的系統(tǒng)中,I/O程序稱為通道程序。
活動頭磁盤的存取訪問時間一般有三個部分:
1 尋道時間。
2 旋轉(zhuǎn)延遲時間。
3 傳送時間。
磁盤優(yōu)化調(diào)度算法:
2 先來先服務(wù)磁盤調(diào)度算法FCFS。
3 最短尋道時間優(yōu)先磁盤調(diào)度算法SSTF。
4 掃描算法SCAN。
軟件是為了使用戶使用并充分發(fā)揮計算機(jī)性能和效率的各種程序和數(shù)據(jù)的統(tǒng)稱。
軟件又分為系統(tǒng)軟件和應(yīng)用軟件。
系統(tǒng)軟件是所有用戶使用的為了解決用戶使用計算機(jī)而編制的程序。
應(yīng)用軟件是為解決某特定的問題而編制的程序。
操作系統(tǒng)是硬件與所有其他軟件之間的接口,而且是整個計算機(jī)系統(tǒng)的控制和管理中心。
操作系統(tǒng)兩個重要作用:
1.管理系統(tǒng)中各種資源。
所有硬件部分稱為硬件資源。而程序和數(shù)據(jù)等信息成為軟件資源。
2 為用戶提供良好的界面。
操作系統(tǒng)的特征:
1 并發(fā)性。
是在計算機(jī)系統(tǒng)中同時存在多個程序,宏觀上看,這些程序是同時向前推進(jìn)的。
在單CPU上,這些并發(fā)執(zhí)行的程序是交替在CPU上運(yùn)行的。
程序并發(fā)性體現(xiàn)在兩個方面:
用戶程序與用戶程序之間的并發(fā)執(zhí)行。
用戶程序與操作系統(tǒng)程序之間的并發(fā)。
2 共享性。
資源共享是操作系統(tǒng)程序和多個用戶程序共用系統(tǒng)中的資源。
3 隨機(jī)性。
隨機(jī)性指:操作系統(tǒng)的運(yùn)行是在一個隨機(jī)的環(huán)境中,一個設(shè)備可能在任何時間向處理機(jī)發(fā)出中斷請求,系統(tǒng)無法知道運(yùn)行著的程序會在什么時候做什么事情。
沒有任何軟件支持的計算機(jī)稱為*機(jī)。
操作系統(tǒng)是硬件的第一層軟件擴(kuò)充。
操作系統(tǒng)的功能:
1 進(jìn)程管理:主要是對處理機(jī)進(jìn)行處理。
隨著系統(tǒng)對處理機(jī)管理方法不同,其提供的作業(yè)處理方式也不同,例如有批處理方式,分時方式和實(shí)時方式。
2 存儲管理:主要是管理內(nèi)存資源。
當(dāng)內(nèi)存不夠的時候,解決內(nèi)存擴(kuò)充問題,就是內(nèi)存和外存結(jié)合起來的管理,為用戶提供一個容量比實(shí)際內(nèi)存大的多的虛擬存儲器,這是操作系統(tǒng)的存儲功能的重要任務(wù)。
3 文件管理。系統(tǒng)中的信息資源是以文件的形式存放在外存儲器上的。
4 設(shè)備管理。設(shè)備管理是計算機(jī)系統(tǒng)中除了CPU和內(nèi)存外的所有輸入,輸出設(shè)備的管理。
5 用戶和操作系統(tǒng)的接口。
操作系統(tǒng)的分類:
1 批處理操作系統(tǒng)。
兩個特點(diǎn):一是多道,一是成批。多道是系統(tǒng)內(nèi)同時容納多個作業(yè),這些作業(yè)存放在外存中,組成一個后備作業(yè)序列,系統(tǒng)按一定的調(diào)度原則每次從后備作業(yè)中選取一個或多個作業(yè)放入內(nèi)存中運(yùn)行,運(yùn)行作業(yè)結(jié)束并退出運(yùn)行和后備作業(yè)進(jìn)行運(yùn)行均由系統(tǒng)自動實(shí)現(xiàn),從而在系統(tǒng)中形成一個自動轉(zhuǎn)接的連續(xù)的作業(yè)流。而成批是系統(tǒng)運(yùn)行中不允許用戶和他的作業(yè)發(fā)生交互關(guān)系。
批處理系統(tǒng)追求的目標(biāo)是提高系統(tǒng)資源利用率和大作業(yè)吞吐量以及作業(yè)流程的自動化。
2 分時系統(tǒng)。
分時系統(tǒng)允許多個用戶同時連機(jī)使用計算機(jī)。
操作系統(tǒng)采用時間片輪轉(zhuǎn)的方式處理每個用戶的服務(wù)請求。
特點(diǎn):
多路性。
交互性。又叫交互操作系統(tǒng)。
獨(dú)立性。
及時性。分時系統(tǒng)性能的主要指標(biāo)之一的是響應(yīng)時間,是從終端發(fā)出命令到系統(tǒng)與應(yīng)答的時間。
通常計算機(jī)系統(tǒng)采用批處理和分時處理方式來為用戶服務(wù)。時間要求不強(qiáng)的作業(yè)放入后臺批處理處理,需要頻繁交互的作業(yè)在前臺分時處理。
3 實(shí)時系統(tǒng)。
系統(tǒng)能夠及時響應(yīng)隨機(jī)發(fā)生的外部事件,并在嚴(yán)格的時間范圍內(nèi)完成對該事件的處理。實(shí)時系統(tǒng)作為一個特定應(yīng)用中的控制設(shè)備來使用。
分為兩類:
1. 時控制系統(tǒng)。
2. 時信息處理系統(tǒng)。
特點(diǎn):及時響應(yīng)和高可靠性。
4 個人計算機(jī)操作系統(tǒng)。
個人計算機(jī)操作系統(tǒng)是一個聯(lián)機(jī)交互的單用戶操作系統(tǒng),它提供的聯(lián)機(jī)交互功能與分時系統(tǒng)所提供的功能很相似。
5 網(wǎng)絡(luò)操作系統(tǒng)。
計算機(jī)網(wǎng)絡(luò)是通過通信設(shè)施將地理上分散的具有自治功能的多個計算機(jī)系統(tǒng)互連起來,實(shí)現(xiàn)信息交換,資源共享,互操作和協(xié)作處理的系統(tǒng)。網(wǎng)絡(luò)操作系統(tǒng)就是在原來的各自計算機(jī)系統(tǒng)操作上,按照網(wǎng)絡(luò)體系結(jié)構(gòu)的各個協(xié)議標(biāo)準(zhǔn)進(jìn)行開發(fā),使之包括網(wǎng)絡(luò)管理,通信,資源共享,系統(tǒng)安全和多種網(wǎng)絡(luò)應(yīng)用服務(wù)的操作系統(tǒng)。
6 分布式操作系統(tǒng)。
從資源管理觀點(diǎn):
把操作系統(tǒng)分為處理機(jī)管理,存儲管理,設(shè)備管理,文件管理,用戶與操作系統(tǒng)的接口等5個主要部分。
虛機(jī)器觀點(diǎn)。
用戶不再直接使用硬件機(jī)器,而是通過操作系統(tǒng)來控制和使用計算機(jī),從而把計算機(jī)擴(kuò)充為功能更強(qiáng),使用更加方便的計算機(jī)系統(tǒng)。操作系統(tǒng)的全部功能,稱為操作系統(tǒng)虛機(jī)器。
操作系統(tǒng)所涉及的硬件環(huán)境:2 特權(quán)指令與處理機(jī)狀態(tài)。
特權(quán)指令和非特權(quán)指令。
特權(quán)指令是只允許操作系統(tǒng)使用,而不允許一般用戶使用的指令。
非特權(quán)指令之處的指令稱為非特權(quán)指令,非特權(quán)指令的執(zhí)行不影響其他用戶以及系統(tǒng)。
3 CPU狀態(tài)。
CPU交替執(zhí)行操作系統(tǒng)程序和用戶程序。
CPU的狀態(tài)屬于程序狀態(tài)字PSW的一位。大多數(shù)計算機(jī)系統(tǒng)將CPU執(zhí)行狀態(tài)分為管態(tài)和目態(tài)。
管態(tài)又叫特權(quán)態(tài),系統(tǒng)態(tài)或核心態(tài)。CPU在管態(tài)下可以執(zhí)行指令系統(tǒng)的全集。通常,操作系統(tǒng)在管態(tài)下運(yùn)行。
目態(tài)又叫常態(tài)或用戶態(tài)。機(jī)器處于目態(tài)時,程序只能執(zhí)行非特權(quán)指令。用戶程序只能在目態(tài)下運(yùn)行,如果用戶程序在目態(tài)下執(zhí)行特權(quán)指令,硬件將發(fā)生中斷,由操作系統(tǒng)獲得控制,特權(quán)指令執(zhí)行被禁止,這樣可以防止用戶程序有意或無意的破壞系統(tǒng)。
從目態(tài)轉(zhuǎn)換為管態(tài)的途徑是中斷。
從管態(tài)到目態(tài)可以通過修改程序狀態(tài)字來實(shí)現(xiàn),這將伴隨這由操作系統(tǒng)程序到用戶程序的轉(zhuǎn)換。
4 中斷機(jī)制。
中斷機(jī)制是現(xiàn)代計算機(jī)系統(tǒng)中的基礎(chǔ)設(shè)施之一,它在系統(tǒng)中起著通信網(wǎng)絡(luò)作用,以協(xié)調(diào)系統(tǒng)對各種外部事件的響應(yīng)和處理。
中斷是實(shí)現(xiàn)多道程序設(shè)計的必要條件。
中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)。
引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發(fā)生中斷時被打斷程序的暫停點(diǎn)成為斷點(diǎn)。CPU暫?,F(xiàn)行程序而轉(zhuǎn)為響應(yīng)中斷請求的過程稱為中斷響應(yīng)。處理中斷源的程序稱為中斷處理程序。CPU執(zhí)行有關(guān)的中斷處理程序稱為中斷處理。而返回斷點(diǎn)的過程稱為中斷返回。
中斷的實(shí)現(xiàn)實(shí)行軟件和硬件綜合完成,硬件部分叫做硬件裝置,軟件部分成為軟件處理程序。
中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。
一般將中斷源分為兩大類:強(qiáng)迫性中斷和自愿性中斷。
強(qiáng)迫性中斷是正在運(yùn)行的程序所不期望的,它們是或發(fā)生,何時發(fā)生事先無法預(yù)料,因而運(yùn)行程序可以在任意位置處被打斷。
2 輸入輸出中斷::這是來自通道或外部設(shè)備的中斷。
3 硬件故障中斷
4 時鐘中斷
5 控制臺中斷
6 程序性中斷
自愿性中斷是正在運(yùn)行的程序有意識安排的,通常是由于程序員在編制程序時,因要求操作
系統(tǒng)提供服務(wù)而有意使用訪管指令或系統(tǒng)調(diào)用,從而導(dǎo)致中斷的,所以又稱其為訪管中斷。
系統(tǒng)為每類中斷設(shè)置一個中斷處理程序。每個中斷處理程序都有一個入口地址PC及其運(yùn)行
環(huán)境PSW,它們被稱為中斷向量,保存在內(nèi)存中固定的單元。
中斷響應(yīng)是解決中斷的發(fā)現(xiàn)和接受問題,是由中斷裝置完成的。中斷響應(yīng)是硬件對中斷請求
作出響應(yīng)的過程,包括識別中斷源,保留現(xiàn)場,引出中斷處理程序等過程。
CPU每執(zhí)行完一條指令,便去掃描中斷寄存器,查詢有無中斷請求。若有中斷請求,則通過交換中斷向量進(jìn)入中斷處理程序,這就是中斷響應(yīng)。
系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,由硬件將中斷源分為若干個級別,稱為中斷優(yōu)先級。
中斷屏蔽是指在提出中斷請求之后,CPU不予響應(yīng)的狀態(tài)。它常常用來在處理某一中斷時防止同級中斷的干擾或在處理一段不可分割,必須連續(xù)執(zhí)行的程序時防止任何中斷事件的干擾。
CPU是否允許某類中斷,由當(dāng)前程序狀態(tài)字中的中斷屏蔽位決定。
屏蔽中斷源相當(dāng)于關(guān)中斷,處于關(guān)中斷狀態(tài)下執(zhí)行的程序段因盡量短,否則可能會丟失信息
,也會影響系統(tǒng)的并發(fā)性。
中斷反應(yīng)過程:
1保存被中斷程序的現(xiàn)場。
2分析中斷源,確定中斷原因。
3轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序。
4恢復(fù)被中斷程序現(xiàn)場,繼續(xù)執(zhí)行被中斷程序。
操作系統(tǒng)向用戶提供兩類接口:一類是用于程序級的,另一類是用于作業(yè)控制一級的。
1 程序級接口。
它由一組系統(tǒng)調(diào)用命令組成。與機(jī)器指令不同之處在于系統(tǒng)調(diào)用命令由操作系統(tǒng)核心解釋執(zhí)行。
系統(tǒng)調(diào)用是操作系統(tǒng)向用戶提供的程序一級的服務(wù),用戶程序借助與系統(tǒng)調(diào)用命令來向操作系統(tǒng)提出各種資源要求和服務(wù)請求。
一般系統(tǒng)調(diào)用可分為幾類:設(shè)備管理類,文件管理類,進(jìn)程控制類,進(jìn)程通信類,存儲管理類。
2 作業(yè)級接口。
這類接口是系統(tǒng)為用戶在作業(yè)一級請求系統(tǒng)服務(wù)而設(shè)置的,用戶可利用這組接口組織作業(yè)的工作流程和控制作業(yè)的運(yùn)行。這類接口分為聯(lián)機(jī)接口和脫機(jī)接口。
1 聯(lián)機(jī)接口。
聯(lián)機(jī)接口由一組鍵盤操作命令組成,是用戶以交互方式請求操作系統(tǒng)服務(wù)的手段。
鍵盤操作命令的作業(yè)控制方式靈活方便,用戶可以根據(jù)運(yùn)行情況隨時干預(yù)自己的作業(yè),但是系統(tǒng)利用率不高。
2 脫機(jī)接口。
由一組作業(yè)控制命令組成,供脫機(jī)用戶使用。
這種接口主要是用于批處理方式操作系統(tǒng),其優(yōu)點(diǎn)是作業(yè)的操作過程由系統(tǒng)自動調(diào)度或系統(tǒng)操作員干預(yù),因而系統(tǒng)利用率高。
處理機(jī)是計算機(jī)系統(tǒng)中最重要的資源。
多道程序設(shè)計是操作系統(tǒng)所采用的最基本,最重要的技術(shù)。其根本目的是提高整個系統(tǒng)的效率。
衡量系統(tǒng)效率的尺度是系統(tǒng)吞吐量。所謂吞吐量是單位時間內(nèi)系統(tǒng)所處理作業(yè)的道數(shù)。
進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行運(yùn)動,進(jìn)程是系統(tǒng)核心資源分配和調(diào)度的一個獨(dú)立單位。
進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)程兩類。
系統(tǒng)進(jìn)程的優(yōu)先級通常高與一般用戶進(jìn)程的優(yōu)先級。
從靜態(tài)的角度看,進(jìn)程是程序,數(shù)據(jù)和進(jìn)程控制塊PCB三部分組成。
進(jìn)程和程序的區(qū)別是程序是靜態(tài)的,而進(jìn)程是動態(tài)的。
一個進(jìn)程可以執(zhí)行一個或幾個程序,一個程序也可以構(gòu)成多個進(jìn)程。
被創(chuàng)建的進(jìn)程成為子進(jìn)程,創(chuàng)建者稱為父進(jìn)程,從而構(gòu)成進(jìn)程家族。
操作系統(tǒng)的并發(fā)性和共享性正是通過進(jìn)程的活動體現(xiàn)出來的。
1 并發(fā)性。
2 動態(tài)性。
3 獨(dú)立性。
4 交往性。
5 異步性。
進(jìn)行中的進(jìn)程可以處于以下三種之一:運(yùn)行,就緒,等待。
運(yùn)行狀態(tài)是進(jìn)程已經(jīng)獲得CPU,并且在CPU上執(zhí)行的狀態(tài)。顯然,在一個單CPU系統(tǒng)上,最多只有一個進(jìn)程處于運(yùn)行狀態(tài)。
就緒狀態(tài),是一個進(jìn)程已經(jīng)具備運(yùn)行條件,但是由于沒有獲得CPU而不能運(yùn)行所處的狀態(tài)。
等待狀態(tài),也叫阻塞狀態(tài)或封鎖狀態(tài)。是進(jìn)程因等待某種事件發(fā)生而暫時不能運(yùn)行的狀態(tài)。
在任何時刻,任何進(jìn)程都處于且僅處于以上3種狀態(tài)之一。
為了便于系統(tǒng)控制和描述進(jìn)程的活動進(jìn)程,在操作系統(tǒng)核心中為進(jìn)程定義為一個專門的數(shù)據(jù)結(jié)構(gòu),成為進(jìn)程控制塊PCB。
PCB信息可以分成為調(diào)度信息和現(xiàn)場信息兩部分。
每個進(jìn)程都有自己專用的工作存儲區(qū),其他進(jìn)程運(yùn)行時不會改變它的內(nèi)容。
進(jìn)程是程序,數(shù)據(jù)和進(jìn)程控制塊PCB三部分組成。
系統(tǒng)中進(jìn)程隊列分為3類:
1 就緒隊列。
2 等待隊列。
3 運(yùn)行隊列。在單機(jī)系統(tǒng)中整個系統(tǒng)只有一個。實(shí)際上,一個運(yùn)行隊列中只有一個進(jìn)程。
進(jìn)程同步是進(jìn)程之間一種直接的協(xié)同工作關(guān)系,是一些進(jìn)程相互合作,共同完成一項任務(wù)。進(jìn)程之間間接相互作用構(gòu)成進(jìn)程同步。
各個進(jìn)程互相排斥使用這些資源,進(jìn)程之間的這種關(guān)系是進(jìn)程的互斥。
進(jìn)程之間的間接相互作用叫做進(jìn)程的互斥。
系統(tǒng)中一些資源一次只允許一個進(jìn)程使用,這個資源稱為臨界資源。而在進(jìn)程中訪問臨界資源的那一段程序稱為臨界區(qū)。
系統(tǒng)對臨界區(qū)的調(diào)度原則歸納為:當(dāng)沒有進(jìn)程在臨界區(qū)時,允許一個進(jìn)程立即進(jìn)入臨界區(qū);若有一個進(jìn)程已經(jīng)在臨界區(qū),其他要求進(jìn)入臨界區(qū)的進(jìn)程必須等待,進(jìn)程進(jìn)入臨界區(qū)的要求必須在有間里得到滿足。
信號量。被P和V操作使用。
原語是由若干條機(jī)器指令構(gòu)成的一段程序,用以完成特定功能。
原語在執(zhí)行過程中不可分割。
高級通信原語,解決大量信息交換問題。
目前高級通信機(jī)制有1消息緩沖通信,2管道通信和3信箱通信。
2 實(shí)現(xiàn)信息緩沖通信,要利用發(fā)送原語和接受原語。
3 管道通信以文件系統(tǒng)為基礎(chǔ)。
實(shí)質(zhì)是利用外存來進(jìn)行數(shù)據(jù)通信,故具有傳送數(shù)據(jù)大的優(yōu)點(diǎn)。
4 信箱通信。
分為單向信箱和雙向信箱兩種通信方式。
進(jìn)程控制通過原語來實(shí)現(xiàn)。 1.創(chuàng)建原語。
進(jìn)程的控制是通過原語實(shí)現(xiàn)的。
創(chuàng)建一個進(jìn)程的主要任務(wù)是建立進(jìn)程控制塊PCB。
撤消進(jìn)程的實(shí)質(zhì)是撤消進(jìn)程控制塊PCB。
3 撤消原語。
4 阻塞原語。
5 喚醒原語。
進(jìn)程調(diào)度是處理機(jī)調(diào)度。
1 記錄系統(tǒng)中所有進(jìn)程的執(zhí)行狀態(tài)。
2 根據(jù)一定調(diào)度算法,從就緒隊列中選出一個進(jìn)程來,準(zhǔn)備把CPU分給它。
3 把CPU分給進(jìn)程。
進(jìn)程調(diào)度一般在下面的情況下發(fā)生的:
1 正在執(zhí)行的進(jìn)程執(zhí)行完畢。
2 正在執(zhí)行的進(jìn)程調(diào)用阻塞原語將自己阻塞起來進(jìn)入等待狀態(tài)。
3 正在執(zhí)行的進(jìn)程調(diào)用了P原語操作,從而因?yàn)橘Y源不足而被阻塞,或調(diào)用了V原語操作擊活了等待資源的進(jìn)程。
4 在分時系統(tǒng)中時間片用完。
在CPU方式是可以剝奪的時候,還有:
12 就緒隊列中的某個進(jìn)程的優(yōu)先級邊的高與當(dāng)前進(jìn)程的優(yōu)先級,從而引起進(jìn)進(jìn)程調(diào)度。
進(jìn)程調(diào)度算法解決以何種次序?qū)Ω骶途w進(jìn)程進(jìn)行處理機(jī)的分配以及按何種時間比例讓進(jìn)程占用處理機(jī)。
1 先進(jìn)先出算法。
2 時間片輪轉(zhuǎn)算法。
3 優(yōu)先數(shù)算法。
靜態(tài)優(yōu)先數(shù)。動態(tài)優(yōu)先數(shù)。
在多道程序系統(tǒng)中,一組進(jìn)程中的每個進(jìn)程均無限期的等待被該組進(jìn)程中的另一個進(jìn)程所占有且永遠(yuǎn)不會釋放的資源,這種現(xiàn)象處于死鎖狀態(tài)。處于死瑣狀態(tài)的進(jìn)程稱為死瑣進(jìn)程。發(fā)生死瑣時,死瑣進(jìn)程至少有兩個。所有死瑣進(jìn)程都有等待資源,其中,至少有兩個死瑣進(jìn)程占用了資源。
永久性資源和臨時性資源。
產(chǎn)生死瑣的原因是:
3 系統(tǒng)提供的資源數(shù)量有限,不能滿足每個進(jìn)程的使用。
4 多道程序設(shè)計時,進(jìn)程推進(jìn)次序不合理。
產(chǎn)生死瑣的4個必要條件:
1 互斥條件。
2 不可剝奪條件。
3 部分分配。
4 循環(huán)等待。
資源分配圖(注意40頁B圖有問題)
三種預(yù)防措施:
2 采用靜態(tài)資源預(yù)分配,破壞“部分分配”條件。
3 允許進(jìn)程剝奪其他進(jìn)程占用的資源,從而破壞“不可剝奪”條件。
4 采用資源有序分配法,破壞“環(huán)路”條件。
安全狀態(tài)是沒有死瑣的狀態(tài)。
什么時候進(jìn)行死瑣檢測主要取決于死瑣發(fā)生的頻率和死瑣所涉及的進(jìn)程個數(shù)。
死瑣的解除:
1 資源剝奪法。
2 撤消進(jìn)程法。
比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位:線程。
每個線程有一個的標(biāo)識符和一張線程描述表。
不同的線程可以執(zhí)行相同的程序。
同一個進(jìn)程中的線程共享該進(jìn)程的內(nèi)存地址空間。
線程是處理機(jī)的獨(dú)立調(diào)度單位,多個線程是可以并發(fā)執(zhí)行的。
引入線程的好處:
1 創(chuàng)建一個新線程花費(fèi)的時間少。
2 兩個線程的切換時間少。
3 由于同一個進(jìn)程內(nèi)的現(xiàn)成共享內(nèi)存和文件,所以線程之間互相通信必須調(diào)用內(nèi)核。
4 線程能獨(dú)立執(zhí)行,能充分利用和發(fā)揮處理機(jī)與外圍設(shè)備并行工作的能力。
存儲管理主要是對內(nèi)存空間的管理。
內(nèi)存空間分為:系統(tǒng)區(qū);用戶區(qū)。
內(nèi)存共享是兩個或多個線程共用內(nèi)存中相同的區(qū)域,其目的是節(jié)省內(nèi)存空間,實(shí)現(xiàn)進(jìn)程之間的通信,提高內(nèi)存空間的利用率。
存儲共享的內(nèi)容可以是程序的代碼,也可是數(shù)據(jù),如果是代碼共享,則必須是純代碼,或叫做“可再入程序”,既它在運(yùn)行過程中不修改自身。代碼共享的目的是節(jié)省內(nèi)存。
存儲保護(hù):
1 防止地址越界。
2 防止操作越權(quán)。
實(shí)存儲器:內(nèi)存,外存,高速緩存。
虛存儲器:1.用戶程序的邏輯地址構(gòu)成的地址空間。
2.當(dāng)內(nèi)存容量不滿足用戶要求時候,采用一種將內(nèi)存空間與外存空間有機(jī)結(jié)合的在一起,利用外存自動調(diào)動的方法構(gòu)成一個大的存儲器。
地址影射:為了保證CPU執(zhí)行程序指令時候能夠正確訪問存儲單元,需要將用戶程序中的邏輯地址轉(zhuǎn)化為運(yùn)行時可由機(jī)器直接尋址的物理地址。
分為:靜態(tài)地址影射和動態(tài)地址影射。
內(nèi)存擴(kuò)充:在硬件支持下,將外存作為內(nèi)存的擴(kuò)充部分供用戶程序使用。
虛擬存儲技術(shù):利用內(nèi)存擴(kuò)充技術(shù),由操作系統(tǒng)處理內(nèi)存與外存的關(guān)系,統(tǒng)一管理內(nèi)外存,向用戶提供一個容量相當(dāng)大的虛擬存儲空間。
1 靜態(tài)等長分區(qū)的分配。
內(nèi)存空間被分為若干個長度相等的區(qū)域,每個區(qū)域叫做一個頁面。
2 動態(tài)異長分區(qū)的分配。
系統(tǒng)用空閑區(qū)表管理這些區(qū)域。
包括:空閑區(qū)首地址和空閑區(qū)長度。
碎片:內(nèi)存中出現(xiàn)的一些零散的小空間區(qū)域。
利用:緊湊。緊湊技術(shù)。
分區(qū)管理是滿足多道程序運(yùn)行的最簡單的存儲管理方案。
分區(qū)分為固定分區(qū)和可變分區(qū)。
基址寄存器用來存放用戶程序在內(nèi)存中的起始地址,限長寄存器用來存放用戶程序的長度。
單一連續(xù)區(qū)存儲管理方案:對單道系統(tǒng)。
頁式存儲管理。
頁式存儲管理將內(nèi)存空間發(fā)分為等長的若干區(qū)域,每個區(qū)域稱為一個物理頁面,有時也稱為內(nèi)存塊或塊。
內(nèi)存的所有物理頁面從0開始編號,稱做物理頁號或內(nèi)存塊號。
每個物理頁面內(nèi)從0開始編址,稱為頁內(nèi)地址。
頁面大小一般為2的整數(shù)次冪。
聯(lián)想寄存器(相聯(lián)存儲器):由高速寄存器組成,成為一張快表。
快表用來存放當(dāng)前訪問最頻繁的少數(shù)活動頁的頁號。
查找快表和查找內(nèi)存頁是同步的。
每個物理段在內(nèi)存中有一個開始位置,稱為段首址。
邏輯上連續(xù)的段在內(nèi)存中不一定連續(xù)存放。
進(jìn)程運(yùn)行時,在一段時間里,程序的執(zhí)行往往呈現(xiàn)高度的局部性,包括時間局部性和空間局部性。
時間局部性是一旦一個指令被執(zhí)行了,則在不久的將來,它可能再被執(zhí)行。
空間局部性是一旦一個指令一個存儲單元被訪問,那么它附近的單元也將很快被訪問。
程序的局部性原理是虛擬存儲技術(shù)引入的前提。
虛擬存儲的實(shí)現(xiàn)原理是,當(dāng)進(jìn)程要求運(yùn)行時,不是將它全部裝入內(nèi)存,而是將其一部分裝入內(nèi)存,另一部分暫時不裝入內(nèi)存。
虛擬存儲管理分為虛擬頁式,虛擬段式,虛擬段頁式。
頁面淘汰:當(dāng)內(nèi)存空間已被占滿而又要掉入新頁面時候,必須把已在內(nèi)存的某個頁面淘汰掉。如果被淘汰的頁面曾經(jīng)被修改過,還要將此頁面寫回外存,再換入新的頁面。
顛簸是由缺頁率高而引入。
系統(tǒng)規(guī)定缺頁率的上界和下界交換技術(shù)是:進(jìn)程在內(nèi)存空間與外存空間之間的動態(tài)調(diào)整,是緩解內(nèi)存空間緊張的一種有效方法。
文件是具有符號名的,在邏輯上具有完整意義的一組相關(guān)信息項的有序序列。
信息項是構(gòu)成文件內(nèi)容的基本單位。
讀指針用來記錄文件當(dāng)前文件之前的讀取位置,它指向下一個將要讀取的信息項。
寫指針用來記錄文件當(dāng)前的寫入位置,下一個將要寫入的信息項被寫到該處。
按性質(zhì)和用途分類:系統(tǒng)文件。用戶文件。
按文件的邏輯結(jié)構(gòu)分為:流式文件。記錄式文件。
按信息的保存期限分類:臨時文件。永久性文件。檔案文件。
按文件的物理結(jié)構(gòu)分類:順序文件。鏈接文件。索引文件。HASH文件。索引順序文件。
按文件的存取方式:順序存取文件。隨機(jī)存取文件。
UNIX系統(tǒng)中文件分類:普通文件。目錄文件。特殊文件。
文件系統(tǒng):操作系統(tǒng)中實(shí)現(xiàn)文件統(tǒng)一管理的一組軟件,被管理的文件以及為實(shí)施文件管理所需要的一些數(shù)據(jù)結(jié)構(gòu)的總稱。
文件的邏輯結(jié)構(gòu)是文件的外部組織形式。
3 流式文件。基本單位是字符。流式文件是有序字符的集合,其長度為該文件所包含的字符個數(shù),所以稱為字符流文件。
4 記錄式文件?;締挝皇怯涗?。分為:定長記錄文件和變長記錄文件。
文件的存取方式是由文件的性質(zhì)和用戶使用文件的情況決定。
1 順序存取。
2 隨機(jī)存取。
磁帶是順序存取。磁盤是隨機(jī)存取。
文件的物理結(jié)構(gòu):
1 順序結(jié)構(gòu)。
2 鏈接結(jié)構(gòu)。
3 索引結(jié)構(gòu)。
如果是三級索引,文件長度為:256*256*256+256*256+256+10
文件系統(tǒng)的一個特點(diǎn)是“按名存取”
文件目錄是文件控制塊的有序集合。
目錄文件是長度固定的記錄式文件。大多數(shù)操作系統(tǒng)如UNIX,DOS采用多級目錄機(jī)構(gòu) ,稱為樹型目錄結(jié)構(gòu)。
從根目錄出發(fā)到任一非葉結(jié)點(diǎn)或樹頁結(jié)點(diǎn)都有且只有一條路徑。
系統(tǒng)為用戶提供一個目前使用的工作目錄,稱為當(dāng)前目錄。
目錄分解法:將目錄項分為:名號目錄項,基本目錄項。
目錄文件也分為名號目錄文件和基本目錄文件。
文件存取控制通過文件的共享,保護(hù)和保密三方面體現(xiàn)。
文件的共享是一個文件可以允許多個用戶共同使用。
文件的存取控制分為兩級:
2 訪問者的識別。文件主。文件主的同組用戶或合作者。其他用戶。
3 存取權(quán)限的識別。
存取控制表一般放在文件控制塊里。
文件的操作:OPEN。CLOSE。READ。WRITE。CREAT 。DELETE。
保證文件系統(tǒng)安全的方法是備份。
1 海量轉(zhuǎn)儲。
2 增量轉(zhuǎn)儲。
設(shè)備管理是計算機(jī)系統(tǒng)中除了CPU和內(nèi)存以外的所有輸入,輸出設(shè)備的管理。
4 按設(shè)備工作特性分為:存儲設(shè)備,輸入輸出設(shè)備。
5 按設(shè)備上數(shù)據(jù)組織方式分類:塊設(shè)備,字符設(shè)備。
6 按資源分配的角度分類:獨(dú)占設(shè)備。共享設(shè)備。虛擬設(shè)備。虛設(shè)備技術(shù)。虛設(shè)備。
SPOOLing技術(shù)是一種典型的虛設(shè)備技術(shù)。
CUP對外部設(shè)備的控制方式分為:
1 中斷處理方式。
每當(dāng)設(shè)備完成I/O操作,已中斷請求方式通知CPU,然后進(jìn)行相應(yīng)處理。
2 循環(huán)測試方式。
3 直接內(nèi)存存取方式DMA。
DMA方式用于高速設(shè)備與內(nèi)存之間批量數(shù)據(jù)的傳輸。
6 通道方式。通道是一個用于控制外部設(shè)備工作的硬件機(jī)制,相當(dāng)與一個功能簡單的處理機(jī)。是實(shí)現(xiàn)計算和傳輸并行的基礎(chǔ)。
主機(jī)對外部設(shè)備的控制三個層次來實(shí)現(xiàn),既通道,控制器和設(shè)備。
一個通道可以控制多個控制器,一個控制器又可以連接若干臺同類型的外部設(shè)備。
一般設(shè)備的連接可以采用交叉連接。好處是:
1 提高系統(tǒng)的可靠性。
2 提高設(shè)備的并行性。
通道分為:
3 字節(jié)多路通道。連接打印機(jī),終端等低速和中速設(shè)備。
4 選擇通道。連接磁盤,磁帶等高速設(shè)備。
5 成組多路通道。
通道的運(yùn)算控制部件包括:
1 通道地址字:CAW。
2 通道命令字:CCW。
3 通道狀態(tài)字:CSW。
通道訪問內(nèi)存采用“周期竊用”方式。
緩沖是計算機(jī)系統(tǒng)中常用的技術(shù)。一般,凡是數(shù)據(jù)到達(dá)速度和離去不匹配的地方都可以采用數(shù)據(jù)緩沖技術(shù)。
緩沖池。
設(shè)備分配的任務(wù)是按照一定的方法為申請設(shè)備的進(jìn)程分配合適的設(shè)備,控制器和通道。
SPOOLing是一種虛擬設(shè)備技術(shù)。其核心思想是在一臺共享設(shè)備上模擬獨(dú)占設(shè)備的操作。
輸入井和輸出井。
在配有通道的系統(tǒng)中,I/O程序稱為通道程序。
活動頭磁盤的存取訪問時間一般有三個部分:
1 尋道時間。
2 旋轉(zhuǎn)延遲時間。
3 傳送時間。
磁盤優(yōu)化調(diào)度算法:
2 先來先服務(wù)磁盤調(diào)度算法FCFS。
3 最短尋道時間優(yōu)先磁盤調(diào)度算法SSTF。
4 掃描算法SCAN。