計(jì)算機(jī)操作系統(tǒng)的相關(guān)知識(shí)
學(xué)習(xí)操作系統(tǒng)需要掌握最基本的定義概念,下面由學(xué)習(xí)啦小編為大家整理了計(jì)算機(jī)操作系統(tǒng)的相關(guān)知識(shí),希望對大家有幫助!
計(jì)算機(jī)操作系統(tǒng)的相關(guān)知識(shí)一
1.操作系統(tǒng)的定義
操作系統(tǒng)(Operating System,簡稱OS)是管理計(jì)算機(jī)系統(tǒng)的全部硬件資源包括軟件資源及數(shù)據(jù)資源;控制程序運(yùn)行;改善人機(jī)界面;為其它應(yīng)用軟件提供支持等,使計(jì)算機(jī)系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。
操作系統(tǒng)通常是最靠近硬件的一層系統(tǒng)軟件,它把硬件裸機(jī)改造成為功能完善的一臺(tái)虛擬機(jī),使得計(jì)算機(jī)系統(tǒng)的使用和管理更加方便,計(jì)算機(jī)資源的利用效率更高,上層的應(yīng)用程序可以獲得比硬件提供的功能更多的支持。
操作系統(tǒng)是一個(gè)龐大的管理控制程序,大致包括5個(gè)方面的管理功能:進(jìn)程與處理機(jī)管理、作業(yè)管理、存儲(chǔ)管理、設(shè)備管理、文件管理。
2.操作系統(tǒng)的作用
1)OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口
2)OS作為計(jì)算機(jī)系統(tǒng)資源的管理者
3)OS實(shí)現(xiàn)了對計(jì)算機(jī)資源的抽象
3.操作系統(tǒng)的基本特征
1)并發(fā)2)共享3)虛擬4)異步
4.分時(shí)系統(tǒng)的概念
把計(jì)算機(jī)的系統(tǒng)資源(尤其是CPU時(shí)間)進(jìn)行時(shí)間上的分割,每個(gè)時(shí)間段稱為一個(gè)時(shí)間片,每個(gè)用戶依次輪流使用時(shí)間片,實(shí)現(xiàn)多個(gè)用戶分享同一臺(tái)主機(jī)的操作系統(tǒng)。
5.分時(shí)系統(tǒng)要解決的關(guān)鍵問題(2個(gè))
1)及時(shí)接收2)及時(shí)處理
6.并發(fā)性的概念
并發(fā)性是指兩個(gè)或多個(gè)事件在同一事件間隔內(nèi)發(fā)生。在多道程序環(huán)境下,并發(fā)性是指在一段時(shí)間內(nèi)宏觀上有多個(gè)程序在同時(shí)運(yùn)行,但在單處理機(jī)系統(tǒng)中,每一時(shí)刻卻僅能有一道程序執(zhí)行,故微觀上這些程序只能是分時(shí)的交替執(zhí)行。
7.程序順序執(zhí)行的特征和并發(fā)執(zhí)行的特征
順序執(zhí)行的特點(diǎn): 順序性封閉性可再現(xiàn)性
程序并發(fā)執(zhí)行的特點(diǎn):1)、間斷性(失去程序的封閉性)2)、不可再現(xiàn)性任何并發(fā)執(zhí)行都是不可再現(xiàn)3)、進(jìn)程互斥(程序并發(fā)執(zhí)行可以相互制約)
8.進(jìn)程的定義
進(jìn)程是指在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位。為了使參與并發(fā)執(zhí)行的每個(gè)程序(含數(shù)據(jù))都能獨(dú)立的運(yùn)行,在操作系統(tǒng)中必須為之配置一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),稱為進(jìn)程控制塊(PCB)。系統(tǒng)利用PCB來描述進(jìn)程的基本情況和活動(dòng)過程,進(jìn)而控制和管理進(jìn)程。
9.進(jìn)程的組成部分
進(jìn)程是由一組機(jī)器指令,數(shù)據(jù)和堆棧組成的,是一個(gè)能獨(dú)立運(yùn)行的活動(dòng)實(shí)體。由程序段,相關(guān)的數(shù)據(jù)段和PCB三部分便構(gòu)成了進(jìn)程實(shí)體(又稱進(jìn)程映像)。
10.進(jìn)程的狀態(tài)(狀態(tài)之間的變化)
就緒狀態(tài)、執(zhí)行狀態(tài)、阻塞狀態(tài)。處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)之后,該進(jìn)程便可以執(zhí)行,相應(yīng)的,他就由就緒狀態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。正在執(zhí)行的進(jìn)程,如果因?yàn)榉峙浣o它的時(shí)間片已經(jīng)用完而被暫停執(zhí)行時(shí),該進(jìn)程便由執(zhí)行狀態(tài)又回到就緒狀態(tài);如果因?yàn)榘l(fā)生某事件而使進(jìn)程的執(zhí)行受阻(如進(jìn)程請求訪問臨界資源,而該資源正在被其它進(jìn)程訪問),使之無法繼續(xù)執(zhí)行,該進(jìn)程將有執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。處于阻塞狀態(tài)的進(jìn)程,在獲得了資源后,轉(zhuǎn)變?yōu)榫途w狀態(tài)。
計(jì)算機(jī)操作系統(tǒng)的相關(guān)知識(shí)二
11.進(jìn)程同步的概念
進(jìn)程同步是是并發(fā)執(zhí)行的諸進(jìn)程之間能有效地相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性,簡單的說來就是:多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上的協(xié)調(diào)。
12.PV原語的作用
PV原語通過操作信號(hào)量來處理進(jìn)程間的同步與互斥的問題。其核心就是一段不可分割不可中斷的程序。
13.處理死鎖的四種方法(有何不同)
1)預(yù)防死鎖。這是一種簡單和直觀的事先預(yù)防方法。該方法是通過設(shè)置某些限制條件,去破壞產(chǎn)生死鎖的四個(gè)必要條件(互斥條件,請求和保持條件,不可搶占條件,循環(huán)等待條件)中的一個(gè)或幾個(gè)來預(yù)防產(chǎn)生死鎖。預(yù)防死鎖是一種較易實(shí)現(xiàn)的方法,已被廣泛使用、
2)避免死鎖。同樣是屬于事先預(yù)防策略,但它并不是事先采取各種限制措施,去破壞產(chǎn)生死鎖的四個(gè)必要條件,而是在資源的動(dòng)態(tài)分配過程中,用某種方法防止系統(tǒng)進(jìn)入不安全狀態(tài),從而可以避免發(fā)生死鎖。
3)檢測死鎖。這種方法無須事先采取任何限制性措施,允許進(jìn)程在運(yùn)行過程中發(fā)生死鎖。但可通過檢測機(jī)構(gòu)及時(shí)地檢測出死鎖的發(fā)生,然后采取適當(dāng)?shù)拇胧?,把進(jìn)程從死鎖中解脫出來。
4)解除死鎖。當(dāng)檢測到系統(tǒng)中已發(fā)生死鎖時(shí),就采取相應(yīng)措施,將進(jìn)程從死鎖狀態(tài)中解脫出來。常用的方法是撤銷一些進(jìn)程,回收它們的資源,將它們分配給已處于阻塞狀態(tài)的進(jìn)程,使其能繼續(xù)運(yùn)行。上述的四種方法,從1)到4)對死鎖的防范程度逐漸減弱,但對應(yīng)的是資源利用率的提高,以及進(jìn)程因資源因素而阻塞的頻度下降(即并發(fā)程度提高)。
14.解除死鎖的方法常采用解除死鎖的兩種方法是:
1)搶占資源。從一個(gè)或多個(gè)進(jìn)程中搶占足夠數(shù)量的資源,分配給死鎖進(jìn)程,以解除死鎖狀態(tài)。
2)終止(或撤銷)進(jìn)程。終止(或撤銷)系統(tǒng)中的一個(gè)或多個(gè)死鎖進(jìn)程,直至打破循環(huán)環(huán)路,使系統(tǒng)從死鎖狀態(tài)解脫出來。
15.死鎖產(chǎn)生的必要條件
1)互斥條件2)請求和保持條件3)不可搶占條件4)循環(huán)等待條件
16.死鎖的概念
如果一組進(jìn)程中的每一個(gè)進(jìn)程都在等待僅由該組進(jìn)程中的其它進(jìn)程才能引發(fā)的事件,那么該組進(jìn)程是死鎖的。
17.銀行家算法
銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。安全狀態(tài):如果存在一個(gè)由系統(tǒng)中所有進(jìn)程構(gòu)成的安全序列P1,„,Pn,則系統(tǒng)處于安全狀態(tài)。安全狀態(tài)一定是沒有死鎖發(fā)生。不安全狀態(tài):不存在一個(gè)安全序列。不安全狀態(tài)不一定導(dǎo)致死鎖。安全序列一個(gè)進(jìn)程序列{P1,„,Pn}是安全的,如果對于每一個(gè)進(jìn)程Pi(1≤i≤n),它以后尚需要的資源量不超過系統(tǒng)當(dāng)前剩余資源量與所有進(jìn)程Pj (j < i )當(dāng)前占有資源量之和。
18.進(jìn)程調(diào)度的功能
1)記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況作為進(jìn)程調(diào)度的準(zhǔn)備,進(jìn)程管理模塊必須將系統(tǒng)中各進(jìn)程的執(zhí)行情況和狀態(tài)特征記錄在各進(jìn)程的PCB表中。并且,根據(jù)各進(jìn)程的狀態(tài)特征和資源需求等、進(jìn)程管理模塊還將各進(jìn)程的PCB表排成相應(yīng)的隊(duì)列并進(jìn)行動(dòng)態(tài)隊(duì)列轉(zhuǎn)接。進(jìn)程調(diào)度模塊通過PCB變化來掌握系統(tǒng)中存在的所有進(jìn)程的執(zhí)行情況和狀態(tài)特征,并在適當(dāng)?shù)臅r(shí)機(jī)從就緒隊(duì)列中選擇出一個(gè)進(jìn)程占據(jù)處理機(jī)。
2)選擇占有處理機(jī)的進(jìn)程進(jìn)程調(diào)度的主要功能是按照一定的策略選擇—個(gè)處于就緒狀態(tài)的進(jìn)程,使其獲得處理機(jī)執(zhí)行。根據(jù)不同的系統(tǒng)設(shè)計(jì)目的,有各種各樣的選擇策略,例如系統(tǒng)開銷較少的靜態(tài)優(yōu)先數(shù)調(diào)度法,適合于分時(shí)系統(tǒng)的輪轉(zhuǎn)法(Round RoLin)和多級(jí)互饋輪轉(zhuǎn)法(Round Robin with Multip1e feedback)等。這些選擇策略決定了調(diào)度算法的性能。
3)進(jìn)行進(jìn)程上下文切換—個(gè)進(jìn)程的上下文(context)包括進(jìn)程的狀態(tài)、有關(guān)變量和數(shù)據(jù)結(jié)構(gòu)的值、機(jī)器寄存器的值和PCB以及有關(guān)程序、數(shù)據(jù)等。一個(gè)進(jìn)程的執(zhí)行是在進(jìn)程的上下文中執(zhí)行。當(dāng)正在執(zhí)行的進(jìn)程由于某種原因要讓出處理機(jī)時(shí),系統(tǒng)要做進(jìn)程上下文切換,以使另一個(gè)進(jìn)程得以執(zhí)行。當(dāng)進(jìn)行上下文切換時(shí)點(diǎn)統(tǒng)要首先檢查是否允許做上下文切換(在有些情況下,上下文切換是不允許的,例如系統(tǒng)正在執(zhí)行某個(gè)不允許中斷的原語時(shí))。然后,系統(tǒng)要保留有關(guān)被切換進(jìn)程的足夠信息,以便以后切換回該進(jìn)程時(shí),順利恢復(fù)該進(jìn)程的執(zhí)行。在系統(tǒng)保留了CPU現(xiàn)場之后,調(diào)度程序選擇一個(gè)新的處于就緒狀態(tài)的進(jìn)程、并裝配該進(jìn)程的上下文,使CPU的控制權(quán)掌握在被選中進(jìn)程手中。
19.作業(yè)調(diào)度算法(FCFS和短作業(yè)優(yōu)先)
先來先服務(wù)(FCFS)調(diào)度算法
FCFS是最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),系統(tǒng)將按照作業(yè)到達(dá)的先后次序來進(jìn)行調(diào)度,或者說它是優(yōu)先考慮在系統(tǒng)中等待時(shí)間最長的作業(yè),而不管該作業(yè)所需執(zhí)行時(shí)間的長短從后備作業(yè)隊(duì)列中選擇幾個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源和創(chuàng)建進(jìn)程。然后把它們放入就緒隊(duì)列。當(dāng)在進(jìn)程調(diào)度中采用FCFS算法時(shí),每次調(diào)度是從就緒的進(jìn)程隊(duì)列中選擇一個(gè)最先進(jìn)入該隊(duì)列的進(jìn)程,為之分配處理機(jī),使之投入運(yùn)行。該進(jìn)程一直運(yùn)行到完成或發(fā)生某事件而阻塞后,進(jìn)程調(diào)度程序才將處理機(jī)分配給其它進(jìn)程。
優(yōu)點(diǎn):1)簡單可靠2)容易理解,實(shí)現(xiàn)方便3)非搶占式的
缺點(diǎn):1)有利于長的作業(yè)和進(jìn)程,不利于短的2)有利于CPU繁忙型的作業(yè)或進(jìn)程,不利于I/O繁忙型的
短作業(yè)優(yōu)先(SJF)的調(diào)度算法
SJF算法是以作業(yè)的長短來計(jì)算優(yōu)先級(jí),作業(yè)越短,其優(yōu)先級(jí)越高。作業(yè)的長短是以作業(yè)所要求的運(yùn)行時(shí)間來衡量的。SJF算法可以分別用于作業(yè)調(diào)度和進(jìn)程調(diào)度。班在短作業(yè)優(yōu)先調(diào)度算法用于作業(yè)調(diào)度時(shí),它將從外存的作業(yè)后備隊(duì)列中選擇若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),優(yōu)先將它們調(diào)入內(nèi)存運(yùn)行。
缺點(diǎn):1)必須預(yù)知作業(yè)的運(yùn)行時(shí)間2)對長作業(yè)非常不利,長作業(yè)的周轉(zhuǎn)時(shí)間會(huì)明顯地增長3)在采用SJF算法時(shí),人-機(jī)無法實(shí)現(xiàn)交互4)該調(diào)度算法完全未考慮作業(yè)的緊迫程度,故不能保證緊迫性作業(yè)能得到及時(shí)處理
20.存儲(chǔ)管理的對象
存儲(chǔ)管理的對象是主存儲(chǔ)器(簡稱內(nèi)存或主存) 。分區(qū)管理的分配算法基于順序搜索的的動(dòng)態(tài)分配算法:1首次適應(yīng)算法 2循環(huán)首次適應(yīng)算法 3最佳適應(yīng)算法 4最壞適應(yīng)算法基于索引搜索的動(dòng)態(tài)分配算法1快速適應(yīng)算法 2伙伴系統(tǒng) 3哈希算法