操作系統(tǒng)的定義和作用
定義:操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的一個(gè)系統(tǒng)軟件,是一些程序模塊的集合。
作用:
(1)資源管理:能盡量有效、合理的方式組織和管理計(jì)算機(jī)資源。其中包括各種軟硬件資源,CPU、內(nèi)存、設(shè)備、時(shí)鐘、網(wǎng)卡、文件等
資源管理的方式:
1、跟蹤記錄資源使用情況
2、確定資源分配策略
3、實(shí)施資源的分配和回收
4、提高資源的利用率
5、保護(hù)資源使用
6、協(xié)調(diào)多個(gè)進(jìn)程對(duì)資源請(qǐng)求的沖突
(2)提供服務(wù):為用戶提供一組功能強(qiáng)大、方便使用的命令和系統(tǒng)調(diào)用(用戶和計(jì)算機(jī)交互的兩種方式)
(3)對(duì)硬件機(jī)器進(jìn)行拓展(對(duì)應(yīng)操作系統(tǒng)的虛擬性,見(jiàn)下文):屏蔽硬件的一些繁瑣操作和實(shí)現(xiàn)細(xì)節(jié),將其包裝成一些簡(jiǎn)單的操作,使硬件對(duì)程序員透明,對(duì)硬件進(jìn)行抽象。
操作系統(tǒng)的特征
1、并發(fā):能處理多個(gè)同時(shí)性的活動(dòng)。并發(fā)與并行不同,并行指的是不同的程序在多個(gè)硬件部件上同時(shí)執(zhí)行;但并發(fā)指的是同一個(gè)套硬件執(zhí)行多個(gè)程序,在宏觀上,不同的程序同時(shí)執(zhí)行,但在微觀上,同一時(shí)刻實(shí)際上只有一個(gè)程序在執(zhí)行
2、共享:操作系統(tǒng)與多個(gè)用戶的程序共同使用就計(jì)算機(jī)系統(tǒng)中的(有限的)資源。
互斥共享(如打印機(jī))
同時(shí)共享(如可重入代碼、磁盤(pán)文件等)
引發(fā)的問(wèn)題:資源分配難以達(dá)到最優(yōu),如何保護(hù)資源?
3、虛擬:一個(gè)物理實(shí)體映射為若干個(gè)對(duì)應(yīng)的邏輯實(shí)體——分時(shí)或分空間。
虛擬是操作系統(tǒng)管理資源的重要手段,可以提高資源利用率。
如:CPU——每個(gè)進(jìn)程的“虛處理機(jī)”
存儲(chǔ)器——每個(gè)進(jìn)程都有獨(dú)立的虛擬地址空間(代碼+數(shù)據(jù)+堆棧)
顯示設(shè)備——多窗口或虛擬終端
4、隨機(jī):操作系統(tǒng)必須隨時(shí)對(duì)以不可預(yù)測(cè)的次序發(fā)生的時(shí)間進(jìn)行響應(yīng)和處理。
多個(gè)進(jìn)程并發(fā)執(zhí)行,“走走停?!?,無(wú)法預(yù)知每個(gè)進(jìn)程的運(yùn)行快慢
也因此,難以重現(xiàn)在某個(gè)時(shí)刻的系統(tǒng)出現(xiàn)狀態(tài),包括難以重現(xiàn)同一個(gè)錯(cuò)誤,這給操作系統(tǒng)的調(diào)試帶來(lái)了很大的困難。
操作系統(tǒng)的架構(gòu)
不同的系統(tǒng)有著不同的架構(gòu),如WINDOWS、UNIX、LINUX等,下面只是一些大致的架構(gòu),可能和具體的實(shí)現(xiàn)有所不同
1、內(nèi)核模塊:
(1)硬件抽象層:屏蔽了硬件的細(xì)節(jié)
(2)內(nèi)核層:處理不同體系結(jié)構(gòu)之間的功能,如線程管理、線程調(diào)度、終端處理、文件系統(tǒng)等
(3)設(shè)備驅(qū)動(dòng)程序?qū)樱喊ǜ鱾€(gè)文件系統(tǒng)驅(qū)動(dòng)程序,設(shè)備驅(qū)動(dòng)程序等
(4)系統(tǒng)調(diào)用接口:與用戶模塊交互的通道
2、用戶模塊:
(1)動(dòng)態(tài)鏈接庫(kù)、環(huán)境子系統(tǒng)(WINDOWS獨(dú)有)
(2)用戶進(jìn)程
(3)庫(kù)函數(shù)
(4)應(yīng)用程序
操作體統(tǒng)分類(lèi)
根據(jù)需求和目的,操作系統(tǒng)的分類(lèi)方式也有多種,以下是一種分類(lèi)方式,根據(jù)工作方式和場(chǎng)景等來(lái)分類(lèi)
1、批處理操作系統(tǒng):用戶把作業(yè)交給操作員,操作員將一批作業(yè)交給系統(tǒng),那么操作系統(tǒng)會(huì)依次、順序執(zhí)行每個(gè)作業(yè)。一旦開(kāi)始執(zhí)行,用戶無(wú)法對(duì)系統(tǒng)進(jìn)行任何干預(yù),即不能有任何交互。
(1)單道批處理系統(tǒng):內(nèi)存中只能有一個(gè)作業(yè)
(2)多道批處理系統(tǒng):內(nèi)存中可以有多個(gè)作業(yè)同時(shí)存在,以能夠充分利用計(jì)算機(jī)的資源。
缺陷:由于慢速的輸入輸出,使得CPU在大部分時(shí)間處于空閑狀態(tài)
解決方案:
(1)衛(wèi)星機(jī):衛(wèi)星機(jī)完成面向用戶的輸入輸出(讀入紙帶或卡片),中間結(jié)果暫存在磁盤(pán)或磁帶上。由操作員將磁盤(pán)或磁帶交給一部處理性能強(qiáng)的計(jì)算機(jī)來(lái)計(jì)算,計(jì)算結(jié)果暫存在磁盤(pán)或磁帶中,由操作員將磁盤(pán)或磁帶到另一個(gè)衛(wèi)星機(jī)上來(lái)打印。
注:以上過(guò)程實(shí)際上涉及到了3臺(tái)計(jì)算機(jī),兩臺(tái)衛(wèi)星機(jī)分別負(fù)責(zé)輸入和輸出的工作,而一個(gè)較強(qiáng)計(jì)算能力的機(jī)器專(zhuān)門(mén)負(fù)責(zé)計(jì)算,將慢速的輸入輸出和快速的計(jì)算進(jìn)行分離,以提高CPU利用率。
(2)spooling技術(shù):spooling技術(shù)將上述案例中三臺(tái)計(jì)算機(jī)完成的任務(wù)合成到了一臺(tái)計(jì)算機(jī)中。
spooling技術(shù):是一個(gè)批處理系統(tǒng)實(shí)現(xiàn)通常采用的技術(shù)。又稱(chēng)為假脫機(jī)技術(shù)。
思想:利用磁盤(pán)作為緩沖,將輸入、計(jì)算、輸出分別組織成獨(dú)立的任務(wù)流,是I/O和計(jì)算真正的并行
過(guò)程:
(1)用戶作業(yè)加載到磁盤(pán)上的輸入井
(2)按照某種調(diào)度作業(yè)選擇幾個(gè)搭配得當(dāng)?shù)淖鳂I(yè),調(diào)入內(nèi)存。
(3)作業(yè)運(yùn)行的結(jié)果輸出到磁盤(pán)上的輸出井
(4)運(yùn)行的結(jié)果從磁盤(pán)上的輸出井送到打印機(jī)
時(shí)至今日,有些設(shè)備上依舊在使用spooling技術(shù),如打印機(jī)。每一頁(yè)可以認(rèn)為是一個(gè)作業(yè),一個(gè)文檔被輸入到打印機(jī)請(qǐng)求隊(duì)列中(輸入井),打印進(jìn)程從輸入井中讀取數(shù)據(jù)負(fù)責(zé)打印。

2、分時(shí)操作系統(tǒng):將CPU的時(shí)間劃分為若干個(gè)片段,即時(shí)間片。操作系統(tǒng)以時(shí)間片尾單位,輪流為每個(gè)終端用戶服務(wù),每次服務(wù)的時(shí)間一個(gè)時(shí)間片,給每個(gè)用戶的錯(cuò)覺(jué)是計(jì)算機(jī)上沒(méi)有其他的用戶,系統(tǒng)由其獨(dú)占。
3、通用操作系統(tǒng):分時(shí)操作系統(tǒng)和批處理系統(tǒng)相結(jié)合。分時(shí)優(yōu)先、批處理在后。白天分時(shí)給大家用,晚上的時(shí)候用戶不使用終端的時(shí)候再把大部分CPU用來(lái)處理批作業(yè),因?yàn)榉謺r(shí)系統(tǒng)對(duì)即時(shí)性要求較高,而批處理對(duì)響應(yīng)時(shí)間要求不高。
4、實(shí)時(shí)操作系統(tǒng):指計(jì)算機(jī)能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的嚴(yán)格時(shí)間內(nèi)做出響應(yīng),高可靠性。
5、個(gè)人計(jì)算機(jī)操作系統(tǒng):追求界面友好,功能豐富
6、網(wǎng)絡(luò)操作系統(tǒng):追求相互通信、資源共享
7、分布式系統(tǒng):以計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ),或者以多個(gè)處理機(jī)為基礎(chǔ),基本特征是處理分布在不同計(jì)算機(jī)上,允許若干個(gè)計(jì)算機(jī)相互協(xié)作來(lái)完成同一項(xiàng)任務(wù)。處理能力增強(qiáng)、速度更快、對(duì)用戶透明,即用戶感覺(jué)不到分布式的存在。
8、嵌入式系統(tǒng):它們是一個(gè)大設(shè)備的一部分,運(yùn)行在嵌入式設(shè)備中。