操作系統(tǒng)概述
計(jì)算機(jī)軟件通常分為系統(tǒng)軟件和應(yīng)用軟件,操作系統(tǒng)是系統(tǒng)軟件。
操作系統(tǒng)定義及作用
能有效的組織和管理系統(tǒng)種的各種軟/硬件資源,合理的組織計(jì)算機(jī)系統(tǒng)工作流程,控制程序的執(zhí)行,并且向用戶提供一個(gè)良好的工作環(huán)境和友好的接口。
操作系統(tǒng)有兩個(gè)重要的作用:一是通過資源管理提高計(jì)算機(jī)系統(tǒng)的效率;第二,改善人機(jī)界面向用戶提供友好的工作環(huán)境。
操作系統(tǒng)特征與功能
操作系統(tǒng)的四個(gè)特征是并發(fā)性、共享性、虛擬性和不確定性。
從傳統(tǒng)計(jì)算機(jī)資源管理的觀點(diǎn)來看,操作系統(tǒng)的功能可分為:
· 進(jìn)程管理:多道程序等技術(shù)來分配CPU時(shí)間片
· 文件管理:文件存儲(chǔ)空間管理、目錄管理、文件的讀寫管理和存取控制
· 存儲(chǔ)管理:存儲(chǔ)分配與回收、存儲(chǔ)保護(hù)、地址映射和主存擴(kuò)充
· 設(shè)備管理:對(duì)硬件設(shè)備的管理
· 作業(yè)管理:任務(wù)、界面管理、人機(jī)交互、圖形界面、語音控制和虛擬現(xiàn)實(shí)
操作系統(tǒng)分類與特點(diǎn)
批處理操作系統(tǒng)
分為單道批處理和多道批處理
單道的含義是可以提交多個(gè)作業(yè),但是每次只能有一個(gè)作業(yè)能裝入內(nèi)存執(zhí)行,執(zhí)行完后會(huì)自動(dòng)執(zhí)行下一個(gè)作業(yè),節(jié)省了人工干預(yù)的時(shí)間
多道批處理操作系統(tǒng)允許多個(gè)作業(yè)裝入內(nèi)存執(zhí)行,可以同時(shí)執(zhí)行,需要計(jì)算機(jī)資源會(huì)由CPU進(jìn)行分配,有三個(gè)特點(diǎn):多道,宏觀上并行運(yùn)行,微觀上串行運(yùn)行
分時(shí)操作系統(tǒng)
一個(gè)計(jì)算機(jī)系統(tǒng)與多個(gè)終端連接,將CPU工作時(shí)間劃分成許多小時(shí)間片給每個(gè)終端,這樣就能對(duì)每個(gè)用戶程序做出及時(shí)的應(yīng)對(duì)。有四個(gè)特點(diǎn):多路性、獨(dú)立性、交互性和及時(shí)性
實(shí)時(shí)操作系統(tǒng)
實(shí)時(shí)指對(duì)外來信息能以足夠快的速度進(jìn)行處理,并在被控對(duì)象允許的時(shí)間范圍內(nèi)做出快速反應(yīng),對(duì)于交互能力要求不高。
實(shí)時(shí)系統(tǒng)可以分為實(shí)時(shí)控制系統(tǒng)和實(shí)時(shí)信息處理系統(tǒng),
實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)主要有以下三點(diǎn)區(qū)別:系統(tǒng)的設(shè)計(jì)目標(biāo)不同、交互性的強(qiáng)弱不同、響應(yīng)的敏感時(shí)間不同
網(wǎng)絡(luò)操作系統(tǒng)
網(wǎng)絡(luò)操作系統(tǒng)的主要功能包括:高效可靠的網(wǎng)絡(luò)通信、對(duì)網(wǎng)絡(luò)中共享資源的有效管理、提供電子郵件、文件傳輸、共享硬盤和打印機(jī)服務(wù)、網(wǎng)絡(luò)安全管理、提供互操作能力。
一個(gè)典型的網(wǎng)絡(luò)操作系統(tǒng)的特性包括硬件獨(dú)立性、多用戶支持、提供目錄服務(wù)、多種客戶端支持、支持多種增值服務(wù)
網(wǎng)絡(luò)操作系統(tǒng)可以分為如下三類:集中模式、客戶端/服務(wù)器模式、對(duì)等模式
分布式操作系統(tǒng)
是由多個(gè)分散的計(jì)算機(jī)經(jīng)連接而成的計(jì)算機(jī)系統(tǒng),系統(tǒng)中的計(jì)算機(jī)沒有主次之分,為分布式計(jì)算機(jī)系統(tǒng)配置的系統(tǒng)稱為分布式操作系統(tǒng)。
分布式操作系統(tǒng)能動(dòng)態(tài)分配系統(tǒng)中的各種資源,并為用戶提供一個(gè)統(tǒng)一的界面和接口,操作使系統(tǒng)中若干計(jì)算機(jī)相互協(xié)作完成任務(wù),并向系統(tǒng)提供統(tǒng)計(jì)、有效的接口的軟件。
分布式操作系統(tǒng)是網(wǎng)絡(luò)操作系統(tǒng)的更高級(jí)形式,它保持網(wǎng)絡(luò)系統(tǒng)所擁有的全部功能,同時(shí)又有透明性可靠性和高性能的特點(diǎn)。
微型計(jì)算機(jī)操作系統(tǒng)
簡(jiǎn)稱微機(jī)操作系統(tǒng),常用的有windows、mac os、linux。
嵌入式操作系統(tǒng)
運(yùn)行在嵌入式智能芯片環(huán)境中。
主要特點(diǎn)如下:微型化、可定制、實(shí)時(shí)性、可靠性、易移植性
操作系統(tǒng)的發(fā)展
三個(gè)因素:硬件的升級(jí)以及新的硬件的出現(xiàn)需要操作系統(tǒng)提供更多的支持;新的服務(wù)需求;修補(bǔ)操作系統(tǒng)自身的錯(cuò)誤
進(jìn)程管理
基本概念
程序與進(jìn)程
順序執(zhí)行的主要特點(diǎn):順序性、封閉性和可再現(xiàn)性
并發(fā)執(zhí)行的特征:失去了程序的封閉性、程序和機(jī)器的執(zhí)行程序的活動(dòng)不再一一對(duì)應(yīng)、并發(fā)程序間的相互制約性。
進(jìn)程的組成
進(jìn)程是程序的一次執(zhí)行,進(jìn)程通常是由程序、數(shù)據(jù)和進(jìn)程控制塊(PCB)組成。
PCB是進(jìn)程存在的唯一標(biāo)志,內(nèi)容:進(jìn)程標(biāo)識(shí)符、狀態(tài)、位置信息、控制信息、隊(duì)列指針、優(yōu)先級(jí)、現(xiàn)場(chǎng)保護(hù)區(qū)、其他。
程序描述了進(jìn)程需要完成的功能。
數(shù)據(jù)部分包括程序執(zhí)行時(shí)所需的數(shù)據(jù)及工作區(qū)。
進(jìn)程的狀態(tài)及其狀態(tài)的切換
三態(tài)模型:運(yùn)行——阻塞——就緒
五態(tài)模型:新建——就緒——運(yùn)行——阻塞——終止
掛起狀態(tài):系統(tǒng)資源特別是主存資源已經(jīng)不能滿足進(jìn)程運(yùn)行的要求,就需要將某些進(jìn)程掛起,放到磁盤對(duì)換區(qū),暫時(shí)不參加調(diào)度,以平衡系統(tǒng)負(fù)載。有五個(gè)狀態(tài):活躍狀態(tài)、靜止就緒、活躍阻塞、靜止阻塞
進(jìn)程的控制
為了實(shí)現(xiàn)進(jìn)程間的同步互斥或者避免死鎖等問題,就需要一套控制機(jī)構(gòu)。進(jìn)程是由操作系統(tǒng)內(nèi)核中的原語實(shí)現(xiàn)的。
內(nèi)核是計(jì)算機(jī)系統(tǒng)硬件的首次延伸,是基于硬件的第一層軟件擴(kuò)充。
原語是指若干條機(jī)器指令組成的,用于完成特定功能的程序段。原語的特點(diǎn)是執(zhí)行時(shí)不能分割,即原子操作。
進(jìn)程間的通信
同步與互斥
同步是合作進(jìn)程間的直接制約問題,互斥是申請(qǐng)臨界資源間的間接制約問題。
臨界區(qū)管理的原則:有空即進(jìn)、無空則等、有限等待、有權(quán)等待。
信息量機(jī)制
整型信號(hào)量與PV操作
信號(hào)量可以分為兩種:公用信號(hào)量(實(shí)現(xiàn)進(jìn)程間的互斥)、私用信號(hào)量(實(shí)現(xiàn)進(jìn)程間的同步)。
信號(hào)量S的物理意義:S>=0表示某資源的可用數(shù),若S<0,則其絕對(duì)值表示阻塞隊(duì)列中等待該資源的進(jìn)程數(shù)。
P操作的定義:S:=S-1,若S>=0,則執(zhí)行P操作的進(jìn)程繼續(xù)執(zhí)行,否則,置該進(jìn)程進(jìn)入阻塞狀態(tài)。
V操作的定義:S:=S+1,若S>0,則執(zhí)行V操作的進(jìn)程將繼續(xù)執(zhí)行;否則,則從組賽狀態(tài)中喚醒一個(gè)進(jìn)程,并將其插入就緒隊(duì)列,然后執(zhí)行V操作的進(jìn)程繼續(xù)。
利用PV操作實(shí)現(xiàn)進(jìn)程間的互斥
利用PV操作實(shí)現(xiàn)進(jìn)程間的同步?

高級(jí)通信原語
進(jìn)程通信是指進(jìn)程之間的信息交換,PV操作屬于低級(jí)通信方式。
為了提高通信的效率,傳遞大量數(shù)據(jù),降低程序編制的復(fù)雜度,系統(tǒng)引入了高級(jí)通信方式:
共享存儲(chǔ)方式:共享某些數(shù)據(jù)結(jié)構(gòu)(或存儲(chǔ)區(qū))實(shí)現(xiàn)進(jìn)程之間的通信。
消息傳遞方式:金成進(jìn)的數(shù)據(jù)交換以消息為單位,直接利用系統(tǒng)提供的原語來是實(shí)現(xiàn)通信。
管道通信:管道,指連接一個(gè)讀進(jìn)程和一個(gè)寫進(jìn)程,以實(shí)現(xiàn)他們之間通信的共享文件。
管道,管道的引入
如果用信號(hào)量來解決進(jìn)程的同步與互斥問題,需要在適當(dāng)?shù)奈恢迷O(shè)置PV操作,否則會(huì)造成死鎖錯(cuò)誤,編程會(huì)變得很困難。
因此,提出了另一種同步機(jī)制——管程。其基本思路:采用資源集中管理的方法,將系統(tǒng)中的資源用某種數(shù)據(jù)結(jié)構(gòu)抽象的表示出來。采用這種方法,就可以借助數(shù)據(jù)結(jié)構(gòu)及再其上實(shí)施操作的若干過程來對(duì)共享資源進(jìn)行管理。


進(jìn)程調(diào)度
三級(jí)調(diào)度
高級(jí)調(diào)度(我理解成從新建到就緒的過程)、中級(jí)調(diào)度(從交換區(qū)的就緒進(jìn)程調(diào)入主存)、低級(jí)調(diào)度(就緒進(jìn)程占用CPU)
調(diào)度算法
先來先服務(wù):按照作業(yè)提交或者成為就緒狀態(tài)的現(xiàn)后次序分配CPU。有利于CPU繁忙的作業(yè)(長(zhǎng)作業(yè)),不利于I/O繁忙的作業(yè)。
時(shí)間片輪轉(zhuǎn):給每個(gè)進(jìn)程分配時(shí)間片,可以提高資源利用率。
固定時(shí)間片(分配時(shí)間片固定)、可變時(shí)間片(變化)
優(yōu)先級(jí)調(diào)度:根據(jù)進(jìn)程所具有的優(yōu)先級(jí)來分配,總是(一般來說是概率比較大)優(yōu)先數(shù)大的占用CPU
靜態(tài)優(yōu)先級(jí)(優(yōu)先級(jí)不會(huì)改變)、動(dòng)態(tài)優(yōu)先級(jí)(會(huì)改變,例如每分配一次優(yōu)先級(jí)就會(huì)降低)
多級(jí)反饋調(diào)度:是時(shí)間片輪轉(zhuǎn)算法和優(yōu)先級(jí)算法的綜合與發(fā)展
進(jìn)程優(yōu)先級(jí)確定
對(duì)于I/O型進(jìn)程,讓其進(jìn)入最高優(yōu)先級(jí)隊(duì)列
對(duì)于計(jì)算型進(jìn)程,每次執(zhí)行完時(shí)間片后都進(jìn)入更低級(jí)隊(duì)列。最終采用最大時(shí)間片來執(zhí)行,以減少調(diào)度次數(shù)。
死鎖
死鎖產(chǎn)生的原因及4個(gè)必要條件:
競(jìng)爭(zhēng)資源:當(dāng)系統(tǒng)中多個(gè)集成所共享的資源不足以同時(shí)滿足他們的要求是,將引起他們對(duì)資源的競(jìng)爭(zhēng)導(dǎo)致死鎖。
進(jìn)程推進(jìn)順序非法:指進(jìn)程在運(yùn)行過程中請(qǐng)求和釋放資源的順序不當(dāng),導(dǎo)致進(jìn)程死鎖。
必要條件:互斥條件、請(qǐng)求保持條件、不可剝奪條件和環(huán)路條件
死鎖的處理
死鎖預(yù)防:預(yù)先靜態(tài)分配法、資源有序分配法
死鎖避免:銀行家算法(每次分配資源前都要檢測(cè)分配后會(huì)不會(huì)進(jìn)入不安全狀態(tài))
死鎖檢測(cè):系統(tǒng)定時(shí)運(yùn)行一個(gè)死鎖檢測(cè)程序,如果檢測(cè)到死鎖就設(shè)法加以解除
死鎖解除:資源剝奪法、撤銷進(jìn)程法
線程
傳統(tǒng)的線程有兩個(gè)基本的屬性:可擁有資源的獨(dú)立單位;可獨(dú)立調(diào)度和分配的基本單位。
線程基本上不擁有資源,只擁有一點(diǎn)運(yùn)行中必不可少的資源,它可以與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。
線程可分為用戶級(jí)線程和內(nèi)核支持線程。
進(jìn)程和線程本質(zhì)上不同。
存儲(chǔ)管理
存儲(chǔ)器管理的主要功能包括主存空間的分配和回收、提高主存的利用率、擴(kuò)充主存、對(duì)主存信息實(shí)現(xiàn)有效保護(hù)。
基本概念
存儲(chǔ)器的結(jié)構(gòu)
寄存器-主存-外存
寄存器-緩存-主存-存儲(chǔ)組織的功能外存
虛擬地址:對(duì)于程序員來說,數(shù)據(jù)的存放地址是由符號(hào)決定的,故稱符號(hào)名地址或者名地址,也叫虛擬地址。因?yàn)檫@個(gè)地址在主存中不是真實(shí)存在的。
地址空間:把程序中成為符號(hào)名的空間稱為名空間
存儲(chǔ)空間:邏輯地址空間(簡(jiǎn)稱地址空間)是邏輯地址的集合,物理地址空間(簡(jiǎn)稱存儲(chǔ)空間)是物理地址的集合
地址重定位
地址重定位是指將邏輯地址變換成主存物理地址的過程
靜態(tài)重定位:程序裝入主存時(shí)已經(jīng)完成了邏輯地址到物理地址的變換,優(yōu)點(diǎn)是無需硬件地址變換機(jī)構(gòu)的支持。缺點(diǎn)是必須給作業(yè)分配一個(gè)連續(xù)的存儲(chǔ)區(qū)域。
動(dòng)態(tài)重定位:動(dòng)態(tài)重定位是指在程序運(yùn)行期間完成邏輯地址到物理地址的變換。優(yōu)點(diǎn):可以把主存中的碎片集中起來,以充分利用空間;不必給程序分配連續(xù)的空間,可以較好的利用較小的主存塊;可以實(shí)現(xiàn)共享。
存儲(chǔ)管理方案
分區(qū)存儲(chǔ)管理
基本思想是把主存的用戶區(qū)劃分成若干個(gè)區(qū)域,每個(gè)區(qū)域分配給一個(gè)用戶作業(yè)使用且只能在自己的區(qū)域運(yùn)行。
固定分區(qū):是一種靜態(tài)分區(qū)方式,缺點(diǎn)是已分配區(qū)中存在未用空間,可能會(huì)導(dǎo)致一些碎片空間不能使用
可變分區(qū):動(dòng)態(tài)分區(qū)方式,分區(qū)的個(gè)數(shù)是可變的,分區(qū)的大小剛好等于作業(yè)的大小。有四種算法:最佳適應(yīng)算法,最差適應(yīng)算法,首次適應(yīng)算法,循環(huán)適應(yīng)算法。
可重定位分區(qū):移動(dòng)所有已經(jīng)分配好的分區(qū),使之稱為連續(xù)區(qū)域。
分區(qū)保護(hù):防止未經(jīng)核準(zhǔn)的用戶訪問分區(qū),常用如下兩種方式:采用上界/下界寄存器保護(hù);采用基址/限長(zhǎng)寄存器保護(hù)
分頁存儲(chǔ)管理
將一個(gè)進(jìn)程的地址空間劃分成若干個(gè)大小相等區(qū)域,稱為頁。相應(yīng)的,將主存空間劃分成與頁相同大小的若干個(gè)物理塊,稱為塊或者頁框。在位進(jìn)程分配主存時(shí),將進(jìn)程中若干頁分別裝入多個(gè)不相鄰接的塊中。
地址結(jié)構(gòu):頁號(hào)/塊號(hào)+頁內(nèi)地址
當(dāng)進(jìn)程的多個(gè)頁面分配到主存的多個(gè)物理塊時(shí),系統(tǒng)應(yīng)能保證在主存中給找到頁面對(duì)應(yīng)的物理塊,因此每個(gè)進(jìn)程建立了疫彰頁面映射表,簡(jiǎn)稱頁表(頁號(hào)-塊號(hào))。
快表:在地址映射機(jī)構(gòu)中增加一個(gè)小容量的聯(lián)想存儲(chǔ)器,聯(lián)想存儲(chǔ)器由一組高速存儲(chǔ)器組成,稱為快表。聯(lián)想存儲(chǔ)器存放的只是當(dāng)前進(jìn)程最活躍的少數(shù)幾頁的物理塊號(hào)。
兩級(jí)頁表機(jī)制:第一級(jí)是頁目錄表,存放著某個(gè)頁表的物理地址;第二級(jí)是頁表,其中每個(gè)表目所存放的是頁的物理塊號(hào)。
分段存儲(chǔ)管理
作業(yè)的地址空間按自身的邏輯關(guān)系劃分成若干個(gè)程序段,每個(gè)段是一組完整的邏輯信息,每個(gè)段都有自己的段名,且有一個(gè)段號(hào)。段號(hào)從0開始,每一段也從0開始編址,段內(nèi)地址是連續(xù)的,各段長(zhǎng)度不等。
進(jìn)程中各個(gè)段可以離散的分配到主存中不同的分區(qū)中,因此需要系統(tǒng)為每個(gè)進(jìn)程建立一張段映射表,簡(jiǎn)稱為“段表”。
分段系統(tǒng)的地址變換:系統(tǒng)設(shè)置了段表寄存器,用于存放段表基址和段表長(zhǎng)度。段是信息的邏輯的單位,因此分段系統(tǒng)的一個(gè)突出優(yōu)點(diǎn)是易于實(shí)現(xiàn)段的共享,而且對(duì)段的保護(hù)也十分方便。
段頁式存儲(chǔ)管理
結(jié)合了分段存儲(chǔ)管理和分頁存儲(chǔ)管理的優(yōu)點(diǎn),克服了兩者的缺點(diǎn)。
先將整個(gè)主存劃分成大小相同的存儲(chǔ)塊,將用戶程序按程序的邏輯關(guān)系分成若干個(gè)段,并未每個(gè)段賦予一個(gè)段名,再將每個(gè)段劃分成若干個(gè)頁,以頁架位單位離散分配。
地址結(jié)構(gòu):段號(hào)S+段內(nèi)頁號(hào)P+頁內(nèi)地址W三部分。
虛擬存儲(chǔ)管理
如果一個(gè)作業(yè)只部分裝入主存便可開始運(yùn)行,其余部分暫時(shí)留在磁盤上,在需要時(shí)再裝入主存,這樣可以有效的利用主存空間。從用戶角度看,該系統(tǒng)所具有的主存容量將比實(shí)際主存容量大得多。
程序局部性原理
時(shí)間局限性:如果一個(gè)程序中的某條指令一旦執(zhí)行,則不久的將來該指令可能再次被執(zhí)行。
空間局限性:一旦程序訪問了某個(gè)存儲(chǔ)單元,則在不久的將來其附近的存儲(chǔ)單元也最有可能被訪問
虛擬存儲(chǔ)器的實(shí)現(xiàn)
虛擬存儲(chǔ)器是具有調(diào)入功能和置換功能,能僅把作業(yè)的一部分裝入主存便可運(yùn)行作業(yè)的存儲(chǔ)器系統(tǒng),能從邏輯上對(duì)主存容量進(jìn)行擴(kuò)充的一種虛擬的存儲(chǔ)器系統(tǒng)。
請(qǐng)求分頁系統(tǒng):是在分頁系統(tǒng)的基礎(chǔ)上增加了請(qǐng)求調(diào)頁功能和頁面置換功能所形成的頁式虛擬存儲(chǔ)系統(tǒng)。以頁面為單位。
請(qǐng)求分段系統(tǒng):同上,請(qǐng)求調(diào)段功能……段式虛擬存儲(chǔ)系統(tǒng)。
請(qǐng)求段頁式系統(tǒng):同上。
請(qǐng)求分頁管理的實(shí)現(xiàn)
因?yàn)橛行╉撁婵赡茉诖疟P上,因此需要再頁表中再添加若干項(xiàng)()共程序再換進(jìn)、換出時(shí)參考。
請(qǐng)求分頁系統(tǒng)還在分頁系統(tǒng)的地址變換機(jī)構(gòu)的基礎(chǔ)上增加了某些功能,如產(chǎn)生和處理缺頁中斷、從主存中換出一頁實(shí)現(xiàn)虛擬存儲(chǔ)。
頁面置換算法
在進(jìn)程運(yùn)行中,如果發(fā)生缺頁,此時(shí)主存中又無空閑塊時(shí),就需要從主存中調(diào)出一頁程序或數(shù)據(jù)送磁盤的對(duì)換區(qū)。這里需要一定的頁面置換算法來確定。置換算法的好壞直接影響系統(tǒng)的性能,不適當(dāng)?shù)乃惴〞?huì)導(dǎo)致系統(tǒng)發(fā)生“抖動(dòng)”
最佳(optional)置換算法:很難實(shí)現(xiàn),選擇最長(zhǎng)時(shí)間內(nèi)不會(huì)使用的頁面置換出去,一般用來評(píng)價(jià)其他置換算法的性能。
先進(jìn)先出(FIFO)置換算法:選擇主存中滯留時(shí)間最久的頁面予以淘汰。它是一種最直觀的、性能最差的算法。
最近最少(LRU)使用算法:該算法是選擇最近最少未使用的頁面予以淘汰。
最近未用(NUR)置換算法:NUR算法將最近一段時(shí)間未引用過的頁面換出,這是一種LRU的近似算法。
工作集
缺頁率的高低與每個(gè)進(jìn)程所占用的物理塊數(shù)目相關(guān),究竟為每個(gè)進(jìn)程分配多少個(gè)物理塊才能把缺頁率保持在一個(gè)合理的水平上,為了解決這個(gè)問題,引入了工作集理論。
設(shè)備管理
設(shè)備管理概述
設(shè)備常稱為外部設(shè)備(外設(shè))。在計(jì)算機(jī)系統(tǒng)中,將負(fù)責(zé)管理設(shè)備和輸入/輸出的機(jī)構(gòu)稱為I/O系統(tǒng)。因此,I/O系統(tǒng)由設(shè)備、控制器、通道、總下和I/O軟件組成。
設(shè)備的分類
按數(shù)據(jù)組織分類:塊設(shè)備、字符設(shè)備
按設(shè)備的功能分類:輸入設(shè)備、輸出設(shè)備、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)聯(lián)網(wǎng)設(shè)備、供電設(shè)備等等。
從資源角度分類:獨(dú)占設(shè)備、共享設(shè)備、虛擬設(shè)備
按數(shù)據(jù)傳輸率分類:低速設(shè)備、中速設(shè)備、高速設(shè)備
設(shè)備管理的目標(biāo)和任務(wù)
目標(biāo)是如何提高設(shè)備的利用率,為用戶提供方便統(tǒng)一的界面。
在設(shè)備管理中主要利用的技術(shù)有中斷技術(shù)、DMA技術(shù)、通道技術(shù)和緩沖技術(shù)
設(shè)備管理的主要功能是動(dòng)態(tài)的掌握并記錄設(shè)備的狀態(tài)、設(shè)備分配與釋放、緩沖區(qū)管理、實(shí)現(xiàn)物理I/O設(shè)備的操作、提供設(shè)備使用的用戶接口的訪問與控制。
I/O軟件
設(shè)備管理軟件的設(shè)計(jì)水平高低的那個(gè)了設(shè)備管理的效率。I/O軟件基本思想是分層構(gòu)造,把硬件與較高層次的軟件隔離開來,最高層的軟件則向應(yīng)用提供一個(gè)友好的、清晰且統(tǒng)一的接口。
一般分4層:中斷處理程序、設(shè)備驅(qū)動(dòng)程序、與設(shè)備無關(guān)的系統(tǒng)軟件和用戶級(jí)軟件。

設(shè)備管理采用的相關(guān)技術(shù)
通道技術(shù)
設(shè)置通道后,CPU只需向通道發(fā)出I/O命令,通道收到命令后,從主存中取出本次I/O要執(zhí)行的通道程序并執(zhí)行,僅當(dāng)通道完成了I/O任務(wù)后才向CPU發(fā)出中斷信號(hào)。根據(jù)信息交換方式的不同,將通道分為多字節(jié)通道,數(shù)組選擇通道和數(shù)組多路通道三類。
DMA技術(shù)
是指數(shù)據(jù)與主存與I/O設(shè)備間直接成塊傳送,不需要CPU的任何干涉。實(shí)際操作由DMA硬件直接執(zhí)行完成,CPU在此期間可以做別的事情。
緩沖技術(shù)
緩沖技術(shù)可以提高外設(shè)利用率,盡可能使外設(shè)處于忙狀態(tài)。
緩沖技術(shù)可以采用硬件緩沖和軟件緩沖。
引入緩沖的主要原因:緩和CPU與I/O設(shè)備間速度不匹配的矛盾;減少對(duì)CPU的中斷頻率;提高CPU和I/O設(shè)備之間的并行性
Spooling技術(shù)
simultaneous peripheral operations on line(外圍設(shè)備聯(lián)機(jī)操作)。
所謂的spooling技術(shù),實(shí)際上是用異類物理設(shè)備模擬另一類物理設(shè)備的技術(shù),是使獨(dú)占使用的設(shè)別變成多臺(tái)虛擬設(shè)備的一種技術(shù),也是一種速度匹配技術(shù)。
磁盤調(diào)度
磁盤可以被多個(gè)進(jìn)程共享,因此為了保護(hù)信息地安全,每一時(shí)刻只允許一個(gè)進(jìn)程啟動(dòng)磁盤進(jìn)行I/O操作,其 余的進(jìn)程只能等待。因此,操作系統(tǒng)應(yīng)采用一種適當(dāng)?shù)恼{(diào)度算法,使各進(jìn)程對(duì)磁盤的平均訪問時(shí)間最小。磁盤調(diào)度分為移臂調(diào)度(先)和旋轉(zhuǎn)調(diào)度(后)兩種。磁盤調(diào)度的目標(biāo)是使磁盤的平均尋道時(shí)間最少。
磁盤驅(qū)動(dòng)調(diào)度
先來先服務(wù):最簡(jiǎn)單的磁盤調(diào)度算法,根據(jù)進(jìn)程請(qǐng)求訪問磁盤的順序進(jìn)行調(diào)度
最短尋道時(shí)間優(yōu)先:要求訪問的磁道與當(dāng)前磁頭所在磁道距離最近
掃描算法:不僅考慮到要訪問的磁道與當(dāng)前磁道的距離,更優(yōu)先的考慮到是磁頭當(dāng)前移動(dòng)方向。
單項(xiàng)掃描調(diào)度算法:規(guī)定磁頭只做單向移動(dòng)
旋轉(zhuǎn)調(diào)度算法
移動(dòng)臂定位后,有多個(gè)進(jìn)程等待訪問該柱面,如何決定這些進(jìn)程的訪問順序就是旋轉(zhuǎn)調(diào)度算法要考慮的問題。
文件管理
文件與文件系統(tǒng)
文件是具有符號(hào)名的、在邏輯上具有完整意義的一組相關(guān)信息項(xiàng)的集合。
信息項(xiàng)是構(gòu)成文件內(nèi)容的基本單位。
文件是一種抽象機(jī)制,它隱藏了硬件和實(shí)現(xiàn)細(xì)節(jié),提供了將信息保留在磁盤上而且便于以后讀取的手段。
操作系統(tǒng)根據(jù)文件名對(duì)其進(jìn)行控制。
文件系統(tǒng)
所謂文件管理系統(tǒng),就是操作系統(tǒng)中實(shí)現(xiàn)文件統(tǒng)一管理的一組軟件和相關(guān)數(shù)據(jù)的集合,專門負(fù)責(zé)管理和存取文件信息的軟件機(jī)構(gòu),簡(jiǎn)稱為文件系統(tǒng)。
文件系統(tǒng)的功能包括:按名存??;統(tǒng)一的用戶接口;并發(fā)訪問和控制;安全性控制;優(yōu)化性能;差錯(cuò)恢復(fù)
文件的類型
按文件性質(zhì)和用途:系統(tǒng)文件、庫文件、用戶文件
按信息保存期限:臨時(shí)文件、檔案文件、永久文件
按文件的保護(hù)方式:只讀文件、讀寫文件、可執(zhí)行文件、不保護(hù)文件
UNIX系統(tǒng):普通文件、目錄文件、設(shè)備文件
文件的結(jié)構(gòu)和組織
從用戶角度看到的稱為文件的邏輯結(jié)構(gòu),從實(shí)現(xiàn)的角度看,文件在文件存儲(chǔ)器上的存放方式稱為文件的物理結(jié)構(gòu)。
文件的邏輯結(jié)構(gòu)
有結(jié)構(gòu)的記錄式文件
所有的記錄都是描述一個(gè)實(shí)體集的,有相同或不同的數(shù)據(jù)項(xiàng),記錄的長(zhǎng)度可分為定長(zhǎng)和不定長(zhǎng)兩類
定長(zhǎng)記錄
文件中所有記錄的長(zhǎng)度相同。
變長(zhǎng)記錄
指文件中所有記錄的長(zhǎng)度不相同。
無結(jié)構(gòu)的流式文件
文件體為字節(jié)流,不劃分記錄。
文件的物理結(jié)構(gòu)
文件的物理結(jié)構(gòu)是文件的內(nèi)部組織形式,即文件在物理存儲(chǔ)設(shè)備上的存放方法。
連續(xù)結(jié)構(gòu)
也稱為順序結(jié)構(gòu),將邏輯上連續(xù)的文件信息依次存放在連續(xù)編號(hào)的物理塊上。為了解決增刪操作的不便,可以采用連續(xù)結(jié)構(gòu)的文件配置一個(gè)運(yùn)行記錄文件或稱為事務(wù)文件,例如每4個(gè)小時(shí),將運(yùn)行記錄文件與原來的文件合并。
鏈接結(jié)構(gòu)
鏈接結(jié)構(gòu)也稱為串聯(lián)結(jié)構(gòu),它將邏輯上連續(xù)的文件信息存放在不連續(xù)的物理塊中,每個(gè)物理塊設(shè)有一個(gè)指針指向下一個(gè)物理塊。
索引結(jié)構(gòu)
將邏輯上連續(xù)的文件信息存放在不連續(xù)的物理塊中,系統(tǒng)為每個(gè)文件建立一張索引表。
多個(gè)物理塊的索引表
根據(jù)一個(gè)文件的大小不同,其索引表占用的物理塊的個(gè)數(shù)不同。
文件目錄
系統(tǒng)必須為每個(gè)文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),它至少要包括文件名和存放文件的物理地址,這個(gè)數(shù)據(jù)結(jié)構(gòu)稱為文件控制塊(FCB),文件控制塊的有序集合稱為文件目錄。
文件控制塊
基本信息類、存取控制信息類、使用信息類
目錄結(jié)構(gòu)
一級(jí)目錄結(jié)構(gòu):整個(gè)系統(tǒng)中只需建立一張目錄表,系統(tǒng)為每個(gè)文件分配一個(gè)目錄項(xiàng)
二級(jí)目錄結(jié)構(gòu):由主文件目錄和用戶目錄組成,主文件目錄存放用戶目錄。
多級(jí)目錄結(jié)構(gòu):也稱為樹型目錄結(jié)構(gòu),linux或者windows用的就是這個(gè)。
存取方法和存儲(chǔ)空間的管理
文件的存取方法
是指讀取讀寫文件存儲(chǔ)器的一個(gè)物理塊的方法,通常有順序存取和隨機(jī)存取兩種方法。
文件存儲(chǔ)空間的管理
將文件保存到外部存儲(chǔ)器上必須知道有哪些空閑空間,因此文件系統(tǒng)必須對(duì)磁盤空間進(jìn)行管理。外存空閑空間管理的數(shù)據(jù)結(jié)構(gòu)通常稱為磁盤分配表。常用的空閑空間的管理方法有空閑區(qū)表、位示圖、空閑塊鏈和成組鏈接法
空閑區(qū)表
將外存空間上的一個(gè)連續(xù)的未分配區(qū)域稱為“空閑塊”,每個(gè)表項(xiàng)表示一個(gè)空閑區(qū)??臻e表中包括序號(hào)、空閑區(qū)的第一塊號(hào)、空閑塊的塊數(shù)和狀態(tài)等信息。
位示圖
在外存上建立一張位示圖,記錄文件存儲(chǔ)器的使用情況。每一位對(duì)應(yīng)文件存儲(chǔ)器上的一個(gè)物理塊
空閑塊鏈
每個(gè)空閑物理塊有指向下一個(gè)空閑物理塊的指針
成組鏈接法
UNIX系統(tǒng)采用此方法,例如在實(shí)現(xiàn)時(shí)系統(tǒng)將空閑塊分成若干組,每100個(gè)空閑塊為一組,每組的第一個(gè)空閑塊登記了下一組空閑塊的物理盤塊號(hào)和空閑塊總數(shù)。
文件的使用
為了文件安全和保護(hù)起見,操作系統(tǒng)為每個(gè)文件建立和維護(hù)關(guān)于文件主、訪問權(quán)限等方面的信息。為此操作系統(tǒng)在操作級(jí)(命令級(jí))和編程級(jí)(系統(tǒng)調(diào)用和函數(shù))向用戶提供文件的服務(wù)
操作系統(tǒng)在操作級(jí)項(xiàng)用戶提供的命令有:目錄管理類指令、文件操作類命令(如復(fù)制)、文件管理類命令(如設(shè)置權(quán)限)
文件的共享和保護(hù)
文件的共享
指不同用戶進(jìn)程使用同一文件,減少由于文件復(fù)制而增加的訪問外存的次數(shù)。采用文件名和文件說明分離的目錄結(jié)構(gòu)有利于實(shí)現(xiàn)文件共享。
硬鏈接
指兩個(gè)文件目錄表指向同一個(gè)索引節(jié)點(diǎn)的鏈接,也就是說不同的文件名于同一個(gè)文件實(shí)體的連接。文件硬鏈接不利于文件主刪除它所擁有的文件,必須首先刪除所有的硬鏈接。
符號(hào)鏈接
符號(hào)鏈接建立新的文件或目錄,并與原來文件或目錄的路徑名進(jìn)行映射,當(dāng)訪問一個(gè)符號(hào)鏈接時(shí),系統(tǒng)通過該映射找到原文件的路徑,并對(duì)其進(jìn)行訪問。
文件的保護(hù)
文件系統(tǒng)對(duì)文件的保護(hù)常采用存取控制方式進(jìn)行,所謂存取控制,就是不同的用戶對(duì)文件的訪問規(guī)定不同的權(quán)限,以防止被未經(jīng)文件主同意的用戶訪問。
存取控制矩陣
它是一個(gè)二維矩陣,一維列出計(jì)算機(jī)的全部用戶,另一維列出系統(tǒng)中的全部文件,矩陣中的每個(gè)元素表示存取權(quán)限,有可讀R,可寫W,可執(zhí)行X,以及它們的組合。要占據(jù)很大的空間。
存取控制表
按用戶對(duì)文件的訪問權(quán)力差別進(jìn)行分類。,因?yàn)橐粋€(gè)文件往往只與少數(shù)幾個(gè)用戶有關(guān),因此這種分類方法可使存取控制表大大簡(jiǎn)化。
用戶權(quán)限表
以用戶或用戶組為單位將用戶可存取的文件集中起來存入表中,這稱為用戶權(quán)限表。
密碼
在創(chuàng)建文件時(shí),由用戶提供一個(gè)密碼,在文件中存入磁盤是用改密碼對(duì)其進(jìn)行加密
系統(tǒng)的安全與可靠性
一般從4個(gè)級(jí)別上對(duì)文件進(jìn)行安全性管理:系統(tǒng)級(jí)(不允許未經(jīng)授權(quán)的用戶進(jìn)入系統(tǒng))、用戶級(jí)(例如UNIX中將用戶分為文件主、組用戶和其他用戶)、目錄級(jí)(規(guī)定只有系統(tǒng)核心才有寫目錄的權(quán)利)和文件級(jí)(對(duì)文件屬性的設(shè)置來控制用戶對(duì)文件訪問)。
文件的可靠性
文件系統(tǒng)的可靠性是指系統(tǒng)抵抗和預(yù)防各種物理性破壞和人為性破壞的能力。
轉(zhuǎn)儲(chǔ)與恢復(fù)
日志文件
文件系統(tǒng)一致性
作業(yè)管理
作業(yè)是為完成一個(gè)用戶的計(jì)算任務(wù)(或一次事務(wù)處理)所作的工作總和。在操作系統(tǒng)中用來控制作業(yè)進(jìn)入、執(zhí)行和撤銷的一組程序稱為作業(yè)管理程序。操作系統(tǒng)可以進(jìn)一步為每個(gè)作業(yè)創(chuàng)建作業(yè)步進(jìn)程,完成用戶的工作。
作業(yè)與作業(yè)控制
作業(yè)控制
脫機(jī)控制:作業(yè)運(yùn)行的過程無須人工干預(yù),因此用戶必須用作業(yè)控制語言(JCL)編寫成作業(yè)說明書,連同作業(yè)一起提交給計(jì)算機(jī)系統(tǒng)。
聯(lián)機(jī)控制:操作系統(tǒng)向用戶提供了一組聯(lián)機(jī)命令,用戶可以通過終端輸入命令以控制作業(yè)的運(yùn)行過程。
作業(yè)由程序、數(shù)據(jù)和作業(yè)說明書3個(gè)部分組成。
作業(yè)狀態(tài)及轉(zhuǎn)換
作業(yè)狀態(tài)分為4種:提交、后備、執(zhí)行和完成
作業(yè)控制塊和作業(yè)后備隊(duì)列
作業(yè)控制塊(JCB)是記錄與改作業(yè)有關(guān)的各種信息的登記表。JCB是作業(yè)存在的唯一標(biāo)志,包括用戶名、作業(yè)名和標(biāo)志狀態(tài)等信息。
通常將作業(yè)控制塊排成一個(gè)或多個(gè)隊(duì)列,而這些隊(duì)列稱為作業(yè)后備隊(duì)列。
作業(yè)調(diào)度
作業(yè)調(diào)度算法
常用的作業(yè)調(diào)度算法如下:
先來先服務(wù):作業(yè)達(dá)到的先后次序
短作業(yè)優(yōu)先:要求運(yùn)行的時(shí)間長(zhǎng)短
響應(yīng)比優(yōu)先:響應(yīng)比:=作業(yè)響應(yīng)時(shí)間/作業(yè)執(zhí)行時(shí)間; 作業(yè)響應(yīng)時(shí)間:=作業(yè)等待時(shí)間+作業(yè)執(zhí)行時(shí)間
優(yōu)先級(jí)調(diào)度算法:設(shè)定優(yōu)先級(jí)
均衡調(diào)度算法:輪流從不同類別作業(yè)中挑選作業(yè)執(zhí)行,力求均衡的使用系統(tǒng)的各種資源。
作業(yè)調(diào)度算法性能的衡量指標(biāo)

用戶界面
用戶界面是計(jì)算機(jī)種實(shí)現(xiàn)人與計(jì)算機(jī)通信的軟/硬件部分的總稱,也成為用戶接口或者人機(jī)界面
硬件部分:輸入數(shù)據(jù)或命令的輸入裝置、輸出裝置
軟件部分:通信協(xié)議、操縱命令及其處理軟件
用戶界面可分為如下階段
控制面板式用戶界面
字符用戶界面
圖形用戶界面
新一代用戶界面