計(jì)算機(jī)操作系統(tǒng)綜述相關(guān)知識(shí)
計(jì)算機(jī)操作系統(tǒng)綜述相關(guān)知識(shí)
計(jì)算機(jī)操作系統(tǒng)或許你天天都有用到,但是你了解操作系統(tǒng)的基本概念嗎?下面由學(xué)習(xí)啦小編為大家整理了計(jì)算機(jī)操作系統(tǒng)綜述的相關(guān)知識(shí),希望對(duì)大家有幫助!
計(jì)算機(jī)操作系統(tǒng)綜述
1.計(jì)算機(jī)系統(tǒng)主要由四個(gè)基礎(chǔ)部分組成:處理器、存儲(chǔ)器、輸入輸出(IO)模塊和系統(tǒng)總線。
處理器:控制計(jì)算機(jī)的操作,執(zhí)行數(shù)據(jù)的處理,通常指CPU。在處理中含有寄存器,寄存器相對(duì)內(nèi)存來說容量很小,但存取速度相當(dāng)快,可以用來暫存指令和數(shù)據(jù)等。寄存器有多種不同的分類。如地址寄存器和指令寄存器等。地址寄存器存放下一步需要從存儲(chǔ)器中讀取的存儲(chǔ)器地址,指令寄存器存取當(dāng)前正在執(zhí)行的程序指令。
存儲(chǔ)器:分為內(nèi)存和外存。主要用于存儲(chǔ)數(shù)據(jù)和程序,通常都是易失的(計(jì)算機(jī)關(guān)機(jī)后數(shù)據(jù)丟失),因此也是數(shù)據(jù)臨時(shí)性的存放場(chǎng)所。
輸入輸出模塊:在計(jì)算機(jī)和外部環(huán)境之間移動(dòng)數(shù)據(jù),外部環(huán)境包括各種設(shè)備(如硬盤、磁盤和各種終端等)。輸入模塊是把人們所熟悉的某種信息形式變換為及其內(nèi)部所能接收和識(shí)別的二進(jìn)制信息形式。輸出設(shè)備把計(jì)算機(jī)處理結(jié)果變化為人和其他機(jī)器設(shè)備所能接收和識(shí)別的信息形式。注意:IO模塊也可以直接和處理器交換數(shù)據(jù)。也可以直接與內(nèi)存交換數(shù)據(jù),此時(shí),IO模塊對(duì)存儲(chǔ)器發(fā)出讀命令或?qū)懨?,從而免去了處理器?fù)責(zé)數(shù)據(jù)交換的任務(wù)。這種操作叫做直接內(nèi)存存儲(chǔ)(DMA)。
系統(tǒng)總線:是計(jì)算機(jī)系統(tǒng)各部件之間進(jìn)行數(shù)據(jù)傳送的公共通路。
2.指令的執(zhí)行
在不考慮中斷的情況下,指令的執(zhí)行包括兩個(gè)階段:處理器從存儲(chǔ)器中取指令階段和處理器執(zhí)行指令階段。去取指令階段和執(zhí)行指令階段構(gòu)成一個(gè)指令周期。寄存器中的程序計(jì)算器保存下一次要取的指令地址,每次取到的指令放在指令寄存器,處理器解釋指令并執(zhí)行對(duì)應(yīng)的操作。
中斷:中斷是處理器中斷當(dāng)前正在執(zhí)行的程序指令,是其他模塊(IO模塊、存儲(chǔ)器)中斷處理器正常處理過程的機(jī)制。主要目的是提高處理器的效率。原因是因?yàn)槠渌K在執(zhí)行過程中比處理器慢很多,導(dǎo)致在處理器在執(zhí)行過程中如果遇到與其他的模塊進(jìn)行交互(因?yàn)槠渌K可能需要進(jìn)行自己的特有某些操作,如打印機(jī)打印操作過程中,此時(shí)是不需要處理器在一直處理等待狀態(tài)的...),有很長(zhǎng)時(shí)間實(shí)際上是處于等待狀態(tài)而未得到充分利用。
中斷請(qǐng)求:是其他模塊向處理器發(fā)送的用于希望處理器中斷當(dāng)前處理器正在執(zhí)行的指令,轉(zhuǎn)而執(zhí)行此外部模塊的中斷程序,并且處理器負(fù)責(zé)將正在執(zhí)行的程序掛起。當(dāng)中斷處理完成后,處理器恢復(fù)執(zhí)行。
考慮到中斷階段,指令的執(zhí)行周期變?yōu)榱巳≈噶铍A段、執(zhí)行階段和中斷階段。
3. 中斷處理流程:
其他模塊設(shè)別控制器或其他系統(tǒng)硬件產(chǎn)生一個(gè)中斷信號(hào)給處理器 >> 處理器結(jié)束當(dāng)前指令的執(zhí)行 >> 處理器發(fā)送中斷應(yīng)答信號(hào) >> 處理器將程序狀態(tài)字和程序計(jì)數(shù)器壓入控制棧 >> 根據(jù)中斷,處理器加載新的程序計(jì)數(shù)器 >> 保存剩余的處理狀態(tài)信息 >> 處理器處理中斷程序 >> 中斷處理完成后,處理器恢復(fù)處理狀態(tài)信息 >> 處理器恢復(fù)老的程序狀態(tài)字和程序計(jì)算器 >> 處理器繼續(xù)執(zhí)行原來的程序指令
4. 存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)
存儲(chǔ)器的設(shè)計(jì)主要要在三個(gè)方面做出協(xié)調(diào):容量、速度和價(jià)格。存儲(chǔ)器的層次結(jié)構(gòu)是依據(jù)局部性原理:處理器訪問存儲(chǔ)器時(shí),無論是存取指令還是存取數(shù)據(jù),所訪問的存儲(chǔ)單元都趨于聚集在一個(gè)較小的連續(xù)單元中。也就是說位于被訪問字附件的數(shù)據(jù)在近期被訪問到的概率比較大。局部性又包括三種不同的類型:時(shí)間局部性——如果一個(gè)信息項(xiàng)正在被訪問,那么在近期它很可能還會(huì)被再次訪問??臻g局部性——在最近和將來用到的信息很可能與現(xiàn)在使用的信息在空間商地址上是臨近的。順序局部性——在典型程序中,除轉(zhuǎn)移類指令外,大部分指令是順序執(zhí)行的。
二級(jí)存儲(chǔ)器:與一級(jí)存儲(chǔ)器相對(duì),二級(jí)存儲(chǔ)器是外部的非易失性,外部的或可移動(dòng)的。二級(jí)存儲(chǔ)設(shè)備容量上更大,讀取更慢但相對(duì)更便宜。
高速緩存:介于處理器和內(nèi)存中間的高速小容量的存儲(chǔ)器,和內(nèi)存一起構(gòu)成一級(jí)存儲(chǔ)器。高速緩存存儲(chǔ)器和內(nèi)存之間的信息調(diào)度和傳送是由硬件自動(dòng)進(jìn)行的。高速緩存有時(shí)也分為一級(jí)高速緩存、二級(jí)高速緩存...每級(jí)高速緩存都比前一級(jí)存取速度慢但容量大。高速緩存是為了解決處理器處理速度遠(yuǎn)快于內(nèi)存的速度而出現(xiàn)的,其基本原理還是局部性原理。高速緩存包含一部分內(nèi)存數(shù)據(jù)的副本,此后處理器讀取數(shù)據(jù)時(shí),首先從高速緩存中判斷是否存在,若有則直接從高速緩存中傳送過去,若沒有則從內(nèi)存中以一定長(zhǎng)度的塊數(shù)據(jù)先讀入高速緩存,然后再?gòu)母咚倬彺嬷袀鞯教幚砥鳌?/p>
補(bǔ)充:關(guān)于計(jì)算機(jī)操作系統(tǒng)概念的一些疑點(diǎn)和難點(diǎn)
并行性與并發(fā)性的區(qū)別和聯(lián)系
并行性和并發(fā)性是既相似又有區(qū)別的兩個(gè)概念。并行性是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生。并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。
在多道程序環(huán)境下,并發(fā)性是指在一段時(shí)間內(nèi),宏觀上有多個(gè)程序在同時(shí)運(yùn)行,但在單處理器系統(tǒng)中每一時(shí)刻卻僅能有一道程序執(zhí)行,故微觀上這些程序只能是分時(shí)地交替執(zhí)行。倘若在計(jì)算機(jī)系統(tǒng)中有多個(gè)處理器(CPU),則這些可以并發(fā)執(zhí)行的程序便被分配到多個(gè)處理器上,實(shí)現(xiàn)并行執(zhí)行,即利用每個(gè)處理器來處理一個(gè)可并發(fā)執(zhí)行的程序。
特權(quán)指令與非特權(quán)指令
所謂特權(quán)指令是指有特殊權(quán)限的指令,由于這類指令的權(quán)限最大,如果使用不當(dāng),將導(dǎo)致整個(gè)系統(tǒng)崩潰。比如:清內(nèi)存、置時(shí)鐘、分配系統(tǒng)資源、修改虛存的段表或頁表、修改用戶的訪問權(quán)限等。如果所有的程序都能使用這些指令,那么你的系統(tǒng)一天死機(jī)《回就不足為奇了。為了保證系統(tǒng)安全,這類指令只能用于操作系統(tǒng)或其他系統(tǒng)軟件,不直接提供給用戶使用。因此,特權(quán)指令必須在核心態(tài)執(zhí)行。實(shí)際上,CPU在核心態(tài)下可以執(zhí)行指令系統(tǒng)的全集。形象地說,特權(quán)指令就是那些兒童不宜的東西,而非特權(quán)指令則是老少皆宜。
為了防止用戶程序中使用特權(quán)指令,用戶態(tài)下只能使用非特權(quán)指令,核心態(tài)下可以使用全部指令。當(dāng)在用戶態(tài)下使用特權(quán)指令時(shí),將產(chǎn)生中斷以阻止用戶使用特權(quán)指令。所以把用戶程序放在用戶態(tài)下運(yùn)行,而操作系統(tǒng)中必須使用特權(quán)指令的那部分程序在核心態(tài)下運(yùn)行,保證了計(jì)算機(jī)系統(tǒng)的安全可靠。從用戶態(tài)轉(zhuǎn)換為核心態(tài)的唯一途徑是中斷或異常。
訪管指令與訪管中斷
訪管指令是一條可以在用戶態(tài)下執(zhí)行的指令。在用戶程序中,因要求操作系統(tǒng)提供服務(wù)而有意識(shí)地使用訪管指令,從而產(chǎn)生一個(gè)中斷事件(自愿中斷),將操作系統(tǒng)轉(zhuǎn)換為核心態(tài),稱為訪管中斷。訪管中斷由訪管指令產(chǎn)生,程序員使用訪管指令向操作系統(tǒng)請(qǐng)求服務(wù)。
為什么要在程序中引入訪管指令呢?這是因?yàn)橛脩舫绦蛑荒茉谟脩魬B(tài)下運(yùn)行,如果用戶程序想要完成在用戶態(tài)下無法完成的工作,該怎么辦?解決這個(gè)問題要靠訪管指令。訪管指令本身不是特權(quán)指令,其基本功能是讓程序擁有“自愿進(jìn)管”的手段,從而引起訪管中斷。
當(dāng)處于用戶態(tài)的用戶程序使用訪管指令時(shí),系統(tǒng)根據(jù)訪管指令的操作數(shù)執(zhí)行訪管中斷處理程序,訪管中斷處理程序?qū)聪到y(tǒng)調(diào)用的操作數(shù)和參數(shù)轉(zhuǎn)到相應(yīng)的例行子程序。完成服務(wù)功能后,退出中斷,返回到用戶程序斷點(diǎn)繼續(xù)執(zhí)行。