操作系統(tǒng)是管理計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,為用戶提供接口拥诡,幫助用戶使用計(jì)算機(jī)資源触趴,常見(jiàn)的操作系統(tǒng)有Windows、Linux渴肉、Mac冗懦、Unix等。
操作系統(tǒng)和普通程序的區(qū)別在于仇祭,操作系統(tǒng)具有進(jìn)程管理和內(nèi)存管理披蕉。此外,操作系統(tǒng)常常還具有設(shè)備管理乌奇、文件管理没讲、網(wǎng)絡(luò)管理、分布式管理等功能礁苗。操作系統(tǒng)原理的課程也按此進(jìn)行編排食零。
操作系統(tǒng)的發(fā)展經(jīng)歷了手工操作,單道批處理寂屏,多道批處理和分時(shí)系統(tǒng)贰谣,其硬件基礎(chǔ)經(jīng)歷了電子管,晶體管迁霎,集成電路和大規(guī)模集成電路的革新吱抚。在發(fā)展過(guò)程中,操作系統(tǒng)的速度考廉、容量秘豹、穩(wěn)定性和可靠性等得到逐步提升。
現(xiàn)代操作系統(tǒng)多為分時(shí)系統(tǒng)昌粤,其本質(zhì)是主機(jī)以一個(gè)很短的“時(shí)間片”為單位把CPU輪流分配給每個(gè)終端使用既绕。由于時(shí)間片很短,看起來(lái)就像每個(gè)終端都實(shí)時(shí)的運(yùn)行一般涮坐。
部分程序的運(yùn)行可以不需要操作系統(tǒng)凄贩,如開(kāi)機(jī)時(shí)可通過(guò)BIOS引導(dǎo)程序?qū)MOS參數(shù)進(jìn)行設(shè)置。
操作系統(tǒng)的邏輯結(jié)構(gòu)是指操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)思路袱讹,包括整體式結(jié)構(gòu)疲扎、層次式結(jié)構(gòu)和微內(nèi)核結(jié)構(gòu)。
CPU的工作狀態(tài)包括用戶態(tài)、核態(tài)和管態(tài)椒丧,其資源和指令使用權(quán)限的不同壹甥。用戶程序運(yùn)行在用戶態(tài),操作系統(tǒng)運(yùn)行在核態(tài)壶熏。正是因?yàn)闄?quán)限不同句柠,用戶程序必須借助操作系統(tǒng)提供的API 函數(shù)完成內(nèi)核相關(guān)操作。
硬件按“態(tài)”來(lái)區(qū)分CPU的狀態(tài)棒假,操作系統(tǒng)按“進(jìn)程”來(lái)區(qū)分CPU的狀態(tài)俄占。Intel CPU有4態(tài),包括Ring 0~Ring 3淆衷,其中Ring 0最核心。
操作系統(tǒng)的存儲(chǔ)器包括寄存器渤弛、高速緩存(CACHE)祝拯、主存(內(nèi)存)、輔存(硬盤(pán))她肯,其速度逐漸下降佳头,容量逐漸提升,價(jià)格也越發(fā)便宜晴氨。當(dāng)需要訪問(wèn)某個(gè)數(shù)據(jù)或代碼段時(shí)康嘉,CPU按順序分布訪問(wèn)緩存,內(nèi)存和輔存籽前。
不同于循環(huán)掃描亭珍,CPU可以通過(guò)中斷機(jī)制處理突發(fā)的事件。當(dāng)中斷發(fā)生時(shí)候枝哄,CPU停止當(dāng)前工作肄梨,轉(zhuǎn)去處理該外部事件,處理完畢回到原來(lái)的工作中斷處(斷點(diǎn))繼續(xù)原來(lái)的工作挠锥。為了能夠順利返回原來(lái)的工作众羡,操作系統(tǒng)需要記錄當(dāng)前程序指針位置,并將工作變量和寄存器等信息壓入棧中蓖租,當(dāng)中斷處理完畢后粱侣,將這些信息從棧中讀取處理,繼續(xù)執(zhí)行蓖宦。
剛開(kāi)機(jī)時(shí)齐婴,CPU運(yùn)行在實(shí)地址模式下,程序按照20位物理地址的尋址方式訪問(wèn)0h-FFFFFh的1M內(nèi)存稠茂。在實(shí)模式存取的1M空間的尾部64K空間內(nèi)存放系統(tǒng)BIOS文件尔店,用于系統(tǒng)的啟動(dòng)配置。此模式下,CPU只能單任務(wù)運(yùn)行嚣州。
在操作系統(tǒng)接管計(jì)算機(jī)時(shí)鲫售,系統(tǒng)可進(jìn)入保護(hù)模式,此時(shí)程序以32位虛擬地址尋址方式訪問(wèn)4GB虛擬內(nèi)存空間该肴,應(yīng)用程序和操作系統(tǒng)的運(yùn)行環(huán)境被保護(hù)起來(lái)情竹。同時(shí),CPU支持多任務(wù)工作匀哄。
從按下電源鍵開(kāi)始秦效,電腦進(jìn)行加電自檢,BIOS中的啟動(dòng)程序加載MBR中的引導(dǎo)程序涎嚼,裝入內(nèi)存特定位置阱州,引導(dǎo)程序啟動(dòng)DOS7.0,調(diào)入操作系統(tǒng)核心法梯,windows開(kāi)始接管系統(tǒng)苔货。電腦繼續(xù)尋找顯卡等相關(guān)設(shè)備BIOS,顯示啟動(dòng)畫(huà)面立哑、BIOS夜惭、芯片組型號(hào)和主板等信息,并從硬盤(pán)/軟盤(pán)/光盤(pán)/U盤(pán)讀入操作系統(tǒng)铛绰。操作系統(tǒng)啟動(dòng)后诈茧,由操作系統(tǒng)接管計(jì)算機(jī)。
操作系統(tǒng)提供的用戶接口包括操作界面和系統(tǒng)調(diào)用捂掰,包括GUI和鍵盤(pán)命令敢会。而鍵盤(pán)命令又包括DOS,批處理这嚣,Shell等走触。系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核為應(yīng)用程序提供的服務(wù)和函數(shù)。程序調(diào)用系統(tǒng)內(nèi)核命令會(huì)產(chǎn)生相應(yīng)中斷疤苹,系統(tǒng)進(jìn)行現(xiàn)場(chǎng)保護(hù)互广,查找相關(guān)命令入口地址,由用戶態(tài)陷入內(nèi)核態(tài)執(zhí)行相應(yīng)的系統(tǒng)調(diào)用卧土。在執(zhí)行結(jié)束后惫皱,恢復(fù)現(xiàn)場(chǎng),回到用戶態(tài)尤莺,繼續(xù)運(yùn)行程序旅敷。
進(jìn)程是程序在某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),其數(shù)據(jù)集合指軟/硬件環(huán)境颤霎。進(jìn)程與程序的區(qū)別是不同的媳谁。進(jìn)程是動(dòng)態(tài)的涂滴,是程序一次執(zhí)行過(guò)程,在內(nèi)存中暫存晴音,而程序是靜態(tài)的柔纵,是一組指令的有序集合,在介質(zhì)中長(zhǎng)存锤躁。此外搁料,一個(gè)程序可以擁有多個(gè)進(jìn)程。
操作系統(tǒng)允許多個(gè)進(jìn)程共存系羞,每個(gè)進(jìn)程按各自速度向前推進(jìn)郭计。為了讓進(jìn)程有序的運(yùn)行避免阻塞和相關(guān)干擾,需要對(duì)進(jìn)行進(jìn)程管理椒振。進(jìn)程的狀態(tài)包括昭伸,運(yùn)行態(tài),就緒態(tài)和阻塞態(tài)等澎迎,其狀態(tài)可根據(jù)一定條件進(jìn)行相互轉(zhuǎn)化庐杨。
子進(jìn)程是父進(jìn)程的復(fù)制,具有相同的代碼嗡善,相同的數(shù)據(jù),相同的堆棧学歧,子進(jìn)程與父進(jìn)程具有相同行為罩引,差別在于進(jìn)程標(biāo)識(shí)不同,與時(shí)間相關(guān)的信息不同枝笨。父子進(jìn)程可以并發(fā)運(yùn)行袁铐,并發(fā)運(yùn)行從創(chuàng)建進(jìn)程后的位置開(kāi)始執(zhí)行,避免重復(fù)創(chuàng)建新進(jìn)程横浑。
當(dāng)操作系統(tǒng)支持線程時(shí)剔桨,線程代替進(jìn)程成為CPU的調(diào)度單位。線程是可由CPU直接運(yùn)行的實(shí)體徙融,一個(gè)進(jìn)程可以創(chuàng)建多個(gè)線程洒缀,多個(gè)線程共享CPU可以實(shí)現(xiàn)并發(fā)運(yùn)行,具有比進(jìn)程更高的并發(fā)力度欺冀。
線程技術(shù)解決程序多個(gè)功能需要并發(fā)運(yùn)行的問(wèn)題树绩,如一手畫(huà)圓一手畫(huà)方,看視頻可以聽(tīng)到聲音同時(shí)看到字幕隐轩。線程技術(shù)可以提高窗口程序的交互性饺饭,一般將前臺(tái)交互作為主線程,而后臺(tái)計(jì)算作為子線程职车。
進(jìn)程的關(guān)系包括同步瘫俊,互斥鹊杖,常見(jiàn)的進(jìn)程管理機(jī)制包括鎖機(jī)制,信號(hào)燈機(jī)制和PV操作扛芽。
臨界資源是指一次只允許一個(gè)進(jìn)程獨(dú)占訪問(wèn)(使用)的資源骂蓖,臨界區(qū)則是進(jìn)程中訪問(wèn)臨界資源的程序段。因此訪問(wèn)臨界資源應(yīng)該遵循胸哥,忙則等待涯竟,空閑讓進(jìn),有限等待和讓權(quán)等待等原則空厌。
在兩個(gè)或多個(gè)進(jìn)程中庐船,每個(gè)進(jìn)程都持有某種資源,但又僅需申請(qǐng)其他進(jìn)程已持有的某種資源嘲更。此時(shí)每個(gè)進(jìn)程都擁有其運(yùn)行時(shí)所需的一部分資源筐钟,但又都不夠,從而每個(gè)進(jìn)程都不能向前推進(jìn)陷于阻塞狀態(tài)赋朦,稱為死鎖篓冲。穿匡威才能買(mǎi)匡威,在先前沒(méi)有匡威的人和匡威售賣店間的買(mǎi)賣形成死鎖宠哄。
由于死鎖解決算法復(fù)雜壹将,取得的效益差,現(xiàn)有的操作系統(tǒng)不采取任何死鎖處理方案毛嫉,而將難題移交給用戶诽俯。
進(jìn)程調(diào)度指在合適的時(shí)候以一定策略選擇一個(gè)就緒進(jìn)程的運(yùn)行,其目的是讓每個(gè)進(jìn)程都能快速響應(yīng)承粤,盡可能避免饑餓和死鎖暴区。常見(jiàn)的調(diào)度算法如,先來(lái)先服務(wù)調(diào)度辛臊,短作業(yè)優(yōu)先調(diào)度仙粱,響應(yīng)比高者優(yōu)先調(diào)度,優(yōu)先數(shù)調(diào)度彻舰,循環(huán)輪轉(zhuǎn)調(diào)度等伐割。進(jìn)程調(diào)度需要進(jìn)行現(xiàn)場(chǎng)保護(hù),其過(guò)程類似中斷處理刃唤。
除CPU和內(nèi)存外的設(shè)備都可以稱為外設(shè)口猜,操作系統(tǒng)一般以文件的形式管理設(shè)備,包括設(shè)備的打開(kāi)透揣,讀寫(xiě)济炎,控制和關(guān)閉。所謂設(shè)備驅(qū)動(dòng)辐真,可認(rèn)為是實(shí)際物理設(shè)備封裝成系統(tǒng)可調(diào)用的API函數(shù)须尚,操作系統(tǒng)通過(guò)這些函數(shù)可簡(jiǎn)單的操控實(shí)際物理設(shè)備崖堤。
操作系統(tǒng)原理總結(jié)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)皆串,“玉大人淹办,你說(shuō)我怎么就攤上這事《窀矗” “怎么了怜森?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谤牡。 經(jīng)常有香客問(wèn)我副硅,道長(zhǎng),這世上最難降的妖魔是什么翅萤? 我笑而不...
- 正文 為了忘掉前任恐疲,我火速辦了婚禮,結(jié)果婚禮上断序,老公的妹妹穿的比我還像新娘流纹。我一直安慰自己糜烹,他們只是感情好违诗,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著疮蹦,像睡著了一般诸迟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愕乎,一...
- 那天阵苇,我揣著相機(jī)與錄音,去河邊找鬼感论。 笑死绅项,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的比肄。 我是一名探鬼主播快耿,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼囊陡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掀亥?” 一聲冷哼從身側(cè)響起撞反,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搪花,沒(méi)想到半個(gè)月后遏片,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡撮竿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年吮便,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倚聚。...
- 正文 年R本政府宣布惨驶,位于F島的核電站白热,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粗卜。R本人自食惡果不足惜屋确,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望续扔。 院中可真熱鬧攻臀,春花似錦、人聲如沸纱昧。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)羽圃。三九已至,卻和暖如春褥影,著一層夾襖步出監(jiān)牢的瞬間灼捂,已是汗流浹背离例。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像的猛,于是被迫代替她去往敵國(guó)和親耀盗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辑甜,可洞房花燭夜當(dāng)晚...