2.1操作系統(tǒng)的目標(biāo)和功能
操作系統(tǒng)提供以下幾方面的服務(wù)
- 程序開(kāi)發(fā)
擦做系統(tǒng)提供各種各樣的工具和服務(wù)性含。幫助程序員開(kāi)發(fā)程序。
這些服務(wù)以實(shí)用工具的形式出現(xiàn)鸿市,嚴(yán)格來(lái)說(shuō)并不屬于操作系統(tǒng)信息的一部分偿枕,它們有操作系統(tǒng)提供苦囱,稱為應(yīng)用程序開(kāi)發(fā)工具鞠鲜。 - 程序運(yùn)行
操作系統(tǒng)為用戶處理程序運(yùn)行的操作 - IO設(shè)備訪問(wèn)
操作系統(tǒng)移隱藏OI設(shè)備特有的指令集和控制信號(hào)宁脊,并提供統(tǒng)一的機(jī)構(gòu),程序員員可以使用簡(jiǎn)單的讀寫(xiě)操作來(lái)訪問(wèn)這些設(shè)備贤姆。 - 文件訪問(wèn)控制
- 系統(tǒng)訪問(wèn)
訪問(wèn)功能模塊必須提供對(duì)資源和數(shù)據(jù)的保護(hù)榆苞,避免未授權(quán)的用戶訪問(wèn),同時(shí)解決資源競(jìng)爭(zhēng)時(shí)的沖突問(wèn)題 - 錯(cuò)誤檢測(cè)和響應(yīng)
計(jì)算機(jī)系統(tǒng)運(yùn)行時(shí)可能發(fā)生各種錯(cuò)誤霞捡,包括內(nèi)部和外部硬件錯(cuò)誤坐漏,如存儲(chǔ)器錯(cuò)誤,設(shè)備失敗或故障弄砍,以及各種軟件錯(cuò)誤如算數(shù)移除仙畦,越界訪問(wèn)输涕,錯(cuò)做系統(tǒng)無(wú)法滿足應(yīng)用程序的請(qǐng)求等音婶。 - 記賬
操作系統(tǒng)手機(jī)各種資源的利用率統(tǒng)計(jì)數(shù)據(jù)。
典型計(jì)算機(jī)系統(tǒng)中的三個(gè)重要的接口:
- 指令系統(tǒng)體系結(jié)構(gòu)(ISA)
定義計(jì)算機(jī)遵循的機(jī)器語(yǔ)言指令系統(tǒng)莱坎,匯編 - 應(yīng)用程序二進(jìn)制接口(ABI)
定義程序間二進(jìn)制可移植性的標(biāo)準(zhǔn)衣式。
定義了操作系統(tǒng)的系統(tǒng)調(diào)用接口 - 應(yīng)用程序編程接口(API)
API云心應(yīng)程序訪問(wèn)系統(tǒng)的硬件資源和服務(wù),這些服務(wù)有用戶級(jí)ISA和高級(jí)語(yǔ)言(HLL)庫(kù)提供檐什。
使用API能讓軟件更容易通過(guò)重新編譯移植到其他具有相同API的系統(tǒng)中
2.2操作系統(tǒng)發(fā)展
2.2.1串行處理
程序員直接與計(jì)算機(jī)硬件打交道碴卧,沒(méi)有操作系統(tǒng),這些機(jī)器都是在一個(gè)控制臺(tái)上運(yùn)行乃正。
2.2.2簡(jiǎn)單批處理系統(tǒng)
也稱為批處理操作系統(tǒng)
簡(jiǎn)單批處理方案的中心思想是使用一個(gè)成為監(jiān)控程序的軟件住册,通過(guò)使用這類操作系統(tǒng),用戶不能直接訪問(wèn)機(jī)器瓮具。用于吧磁帶或卡片中的作業(yè)提交給計(jì)算機(jī)操作員荧飞,計(jì)算機(jī)操作員把作業(yè)按順序組織成一匹,然后放到輸入設(shè)備上名党,供監(jiān)控程序使用叹阔。程序完成處理后返回到監(jiān)控程序。然后監(jiān)控程序自動(dòng)加載下一個(gè)程序传睹。
- 監(jiān)控程序角度
監(jiān)控程序控制實(shí)物的順序耳幢,大多監(jiān)控程序總是存于內(nèi)存中可移植性,成為常駐監(jiān)控程序欧啤。其他部分包括實(shí)用程序和公共函數(shù)睛藻,他們作為用戶程序的子程序启上,在需要到他們作業(yè)開(kāi)始執(zhí)行時(shí)被載入。
監(jiān)控程序從輸入設(shè)備讀取一個(gè)作業(yè)店印。讀入后作業(yè)唄防止在用戶程序區(qū)域碧绞。然后把控制權(quán)交給這個(gè)作業(yè)。當(dāng)作業(yè)完成后吱窝,它將控制權(quán)返回給監(jiān)控程序讥邻,然后處理下一個(gè)作業(yè)。作業(yè)的結(jié)果發(fā)送到輸出設(shè)備院峡。 - 處理器角度
監(jiān)控程序完成調(diào)度功能兴使,一批作業(yè)排隊(duì)等候,處理器盡可能迅速的執(zhí)行作業(yè)照激,沒(méi)有任何空閑時(shí)間发魄。
監(jiān)控程序還考慮了其他功能:
- 內(nèi)存保護(hù)
當(dāng)用戶程序正在運(yùn)行時(shí),不能改變含監(jiān)控程序的內(nèi)存區(qū)域俩垃。如果用戶程序訪問(wèn)監(jiān)控 程序的內(nèi)存區(qū)域励幼,處理器將發(fā)現(xiàn)錯(cuò)誤,并將控制權(quán)轉(zhuǎn)一個(gè)監(jiān)控程序口柳。停止作業(yè)苹粟,輸出錯(cuò)誤信息,加載下一個(gè)作業(yè)跃闹。 - 定時(shí)器
防止一個(gè)作業(yè)獨(dú)占系統(tǒng)嵌削。在作業(yè)開(kāi)始時(shí),設(shè)置定時(shí)器望艺,如果定時(shí)器時(shí)間到苛秕,用戶程序背挺直,監(jiān)控權(quán)返回給監(jiān)控程序 - 特權(quán)指令
某些計(jì)算機(jī)指令是設(shè)計(jì)成為特權(quán)指令找默,只能由監(jiān)控程序執(zhí)行艇劫。
如果處理器運(yùn)行在用戶程序時(shí)遇到這類指令就會(huì)發(fā)生錯(cuò)誤,并將控制權(quán)轉(zhuǎn)一個(gè)監(jiān)控程序惩激。
IO指令屬于特權(quán)指令店煞,因此監(jiān)控程序可以控制所有IO設(shè)備。 - 中斷
早起計(jì)算機(jī)模型沒(méi)有中斷能力咧欣,這個(gè)特征使操作系統(tǒng)讓用戶程序放棄控制權(quán)浅缸,或從用戶程序獲得控制權(quán)具有更大的靈活性
2.2.3多道批處理系統(tǒng)
對(duì)于簡(jiǎn)單批處理操作系統(tǒng),由于要等待IO所以處理器任然是進(jìn)場(chǎng)空閑的魄咕。
當(dāng)內(nèi)存空間容得下操作系統(tǒng) 和兩個(gè)用戶程序時(shí)衩椒,當(dāng)一個(gè)作業(yè)需要IO時(shí),處理器可以切換到另一個(gè)可能不需要等待IO的作業(yè)。進(jìn)一步的存儲(chǔ)器可以保存更多的作業(yè)毛萌。這種處理成為多道程序設(shè)計(jì)或多任務(wù)處理苟弛,是現(xiàn)代操作系統(tǒng)的主要方案。
多道程序設(shè)計(jì)有用的顯式輔助功能是支持IO中斷和直接存儲(chǔ)器訪問(wèn)(DMA)的硬件阁将。
當(dāng)多個(gè)作業(yè)都準(zhǔn)備運(yùn)行時(shí)膏秫,處理器必須準(zhǔn)備運(yùn)行哪一個(gè),這就需要調(diào)度算法做盅。
2.2.4分時(shí)系統(tǒng)
當(dāng)需要處理多個(gè)交互作業(yè)時(shí)缤削,由于多個(gè)用戶分享處理時(shí)間,因而該技術(shù)成為分時(shí)吹榴。
分時(shí)系統(tǒng)中亭敢,多個(gè)用戶通過(guò)終端同時(shí)訪問(wèn)系統(tǒng),每個(gè)用戶程序以很短的時(shí)間為單位進(jìn)行交替執(zhí)行图筹。因此如果有n個(gè)用戶同時(shí)請(qǐng)求服務(wù)帅刀,程序評(píng)分計(jì)算機(jī)的有效速度。
2.3操作系統(tǒng)中重要概念
進(jìn)程远剩,內(nèi)存管理扣溺,信息保護(hù)和安全,調(diào)度和資源管理
2.3.1進(jìn)程
進(jìn)程式操作系統(tǒng)設(shè)計(jì)的核心