qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          操作系統(tǒng)相關(guān)題目總結(jié)

           題目一:進(jìn)程和線程區(qū)別?

            1.進(jìn)程是資源分配的基本單位,也是調(diào)度運(yùn)行的基本單位;線程是調(diào)度的基本單位。

            2.進(jìn)程有獨(dú)立的虛擬地址空間。父子進(jìn)程共享文件表,但不共享用戶地址空間。

            *優(yōu)點(diǎn):一個(gè)進(jìn)程崩潰后不會對其他進(jìn)程產(chǎn)生影響。

            *缺點(diǎn):進(jìn)程間共享數(shù)據(jù)變得困難,必須使用顯式的IPC機(jī)制。

            *進(jìn)程虛擬地址空間包括:代碼段、堆棧段(臨時(shí)數(shù)據(jù):如函數(shù)參數(shù)、返回地址和局部變量)、數(shù)據(jù)段(包括全局變量)、堆(動態(tài)分配的內(nèi)存)等等。

            3.線程運(yùn)行在進(jìn)程的上下文中,所有運(yùn)行在一個(gè)進(jìn)程內(nèi)的線程共享該進(jìn)程的整個(gè)虛擬地址空間:代碼、數(shù)據(jù)、堆、共享庫和打開文件。

            *每個(gè)線程有自己的線程上下文:一個(gè)線程ID、棧、棧指針、程序計(jì)數(shù)器、通用目的的寄存器和條件嗎。

            4.創(chuàng)建、切換和終止開銷小:線程的上下文比進(jìn)程的上下文小很多,所以線程的創(chuàng)建、上下文切換和終止要比進(jìn)程快很多。

            *線程間共享數(shù)據(jù)容易,因?yàn)槎鄠€(gè)線程共享進(jìn)程地址空間,但需要同步。

            5.補(bǔ)充程序和進(jìn)程區(qū)別(選自操作系統(tǒng)概念第7版):

            *程序本身不是進(jìn)程,程序只是被動實(shí)體,如存儲在磁盤上的一系列指令的文件內(nèi)容(常被成為可執(zhí)行文件)

            *進(jìn)程是活動實(shí)體,它有一個(gè)程序計(jì)數(shù)器來表示下一個(gè)要執(zhí)行的命令和相關(guān)資源集合。

            *當(dāng)一個(gè)可執(zhí)行文件被裝入內(nèi)存時(shí),一個(gè)程序才成為進(jìn)程。

            *雖然多個(gè)進(jìn)程可以與統(tǒng)一程序相關(guān),但是它們被當(dāng)做兩個(gè)獨(dú)立的執(zhí)行序列,都是獨(dú)立的進(jìn)程,雖然文本段相同,但是數(shù)據(jù)段、堆、堆棧段都不同。

            題目二:進(jìn)程間通信方式?

            1.管道

            2.消息隊(duì)列

            3.共享內(nèi)存

            4.套接字

            5.信號量

            6.信號:異步通信方式,軟件層次上對中斷機(jī)制的一種模擬。

            題目三:進(jìn)程的組成部分和狀態(tài)?

            (一)進(jìn)程的組成部分:進(jìn)程控制塊、程序段和數(shù)據(jù)段。

            (二)進(jìn)程的狀態(tài)(注意狀態(tài)之間切換條件):

            1.三種基本狀態(tài):運(yùn)行態(tài)、就緒態(tài)、阻塞態(tài)。

            2.掛起狀態(tài)(從內(nèi)存換出到磁盤):當(dāng)內(nèi)存中的所有進(jìn)程都處于阻塞態(tài),OS把被阻塞的進(jìn)程換出到磁盤中的“掛起隊(duì)列”(將進(jìn)程置于掛起態(tài),并將它轉(zhuǎn)移到磁盤),內(nèi)存中釋放的空間可被調(diào)入的另一個(gè)進(jìn)程使用。取哪個(gè)進(jìn)程到內(nèi)存執(zhí)行的選擇:新創(chuàng)建的進(jìn)程或調(diào)入一個(gè)以前被掛起的進(jìn)程(傾向于這個(gè),不會增加系統(tǒng)的負(fù)載)。

            3.新建態(tài)和終止態(tài)。

            題目四:死鎖的條件和預(yù)防?

            一 死鎖的充分必要條件:

            *互斥:一次只有一個(gè)進(jìn)程可以使用一個(gè)資源。

            *占有且等待:當(dāng)一個(gè)進(jìn)程等待其他進(jìn)程時(shí),繼續(xù)占有已經(jīng)分配的資源。

            *不可搶占:不能強(qiáng)行搶占進(jìn)程已占有的資源。

            *環(huán)路等待:存在一個(gè)封閉的進(jìn)程鏈,使每個(gè)進(jìn)程至少占有此鏈中下一個(gè)進(jìn)程所需要的一個(gè)資源。

            前三個(gè)是死鎖的必要條件,第四個(gè)是前三個(gè)條件的潛在結(jié)果。

            二 處理死鎖的基本方法:

            *死鎖預(yù)防:通過設(shè)置某些限制條件,去破壞死鎖的四個(gè)條件中的一個(gè)或幾個(gè)條件,來預(yù)防發(fā)生死鎖。但由于所施加的限制條件往往太嚴(yán)格,因而導(dǎo)致系統(tǒng)資源利用率和系統(tǒng)吞吐量降低。

            *死鎖避免:允許前三個(gè)必要條件,但通過明智的選擇,確保永遠(yuǎn)不會到達(dá)死鎖點(diǎn),因此死鎖避免比死鎖預(yù)防允許更多的并發(fā)。(例如銀行家算法)。

            *死鎖檢測:不須實(shí)現(xiàn)采取任何限制性措施,而是允許系統(tǒng)在運(yùn)行過程發(fā)生死鎖,但可通過系統(tǒng)設(shè)置的檢測機(jī)構(gòu)及時(shí)檢測出死鎖的發(fā)生,并精確地確定于死鎖相關(guān)的進(jìn)程和資源,然后采取適當(dāng)?shù)拇胧瑥南到y(tǒng)中將已發(fā)生的死鎖清除掉。

            *死鎖解除:與死鎖檢測相配套的一種措施。當(dāng)檢測到系統(tǒng)中已發(fā)生死鎖,需將進(jìn)程從死鎖狀態(tài)中解脫出來。常用方法:撤銷或掛起一些進(jìn)程,以便回收一些資源,再將這些資源分配給已處于阻塞狀態(tài)的進(jìn)程。

           題目五:內(nèi)存管理技術(shù)有哪些?

            1.固定分區(qū)(連續(xù)分區(qū)):將內(nèi)存用戶空間劃分為多個(gè)固定大小的靜態(tài)分區(qū),進(jìn)程被裝入大于或等于自身大小的分區(qū)。

            *分區(qū)的大小可以是長度都相等;或者不等,分為多個(gè)較小分區(qū)、適量中等分區(qū),少量較大分區(qū)。

            *優(yōu)點(diǎn):實(shí)現(xiàn)簡單,開銷小。

            *缺點(diǎn):有內(nèi)部碎片,內(nèi)存使用不充分;活動進(jìn)程的最大數(shù)目是固定的。

            2.動態(tài)分區(qū)(連續(xù)分區(qū)):分區(qū)是動態(tài)創(chuàng)建的,每個(gè)進(jìn)程可以被裝入與自身大小相等的分區(qū)中。

            *優(yōu)點(diǎn):沒有內(nèi)部碎片;可以充分使用內(nèi)存。

            *缺點(diǎn):有外部碎片,由于需要壓縮外部碎片,處理器利用率低。

            3.簡單分頁:內(nèi)存被劃分為許多大小相等的頁框;每個(gè)進(jìn)程被劃分成許多大小與頁框大小相等的頁;要裝入進(jìn)程,需要把進(jìn)程的所有頁都裝入內(nèi)存中不一定連續(xù)的某些頁框中。

            *優(yōu)點(diǎn):沒有外部碎片。

            *缺點(diǎn):有少量內(nèi)部碎片。

            4.簡單分段(段的大小不固定):每個(gè)進(jìn)程被劃分成許多段;要裝入進(jìn)程需要把進(jìn)程包含的所有段都裝入內(nèi)存中不一定連續(xù)的某些動態(tài)分區(qū)中。

            *優(yōu)點(diǎn):沒有內(nèi)部碎片,相對于動態(tài)分區(qū),提高了內(nèi)存利用率,減少了開銷。

            *缺點(diǎn):存在外部碎片。

            5.虛擬內(nèi)存分頁:除了不需要把進(jìn)程的所有頁都裝入內(nèi)存之外,與簡單分頁一樣;非駐留頁在以后需要時(shí)調(diào)入內(nèi)存。

            *優(yōu)點(diǎn):沒有外部碎片;巨大的虛擬地址空間。

            *缺點(diǎn):復(fù)雜的內(nèi)存管理開銷。

            6.虛擬內(nèi)存分段:除了不需要把進(jìn)程的所有段都裝入內(nèi)存之外,與簡單分段一樣;非駐留段在以后需要時(shí)調(diào)入內(nèi)存。

            *優(yōu)點(diǎn):沒有外部碎片;巨大的虛擬地址空間;支持共享和保護(hù)。

            *缺點(diǎn):復(fù)雜的內(nèi)存管理開銷。

            題目六:分頁與分段相同點(diǎn)和區(qū)別?

            一 相同點(diǎn):兩者都采用離散分配方式,且都需要地址映射機(jī)構(gòu)來實(shí)現(xiàn)地址變換。

            二 不同點(diǎn):

            (1)頁時(shí)信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外部碎片,提高內(nèi)存利用率,也就是說分頁僅僅是由于系統(tǒng)管理的需要而不是用戶的需要;段則是信息的邏輯單位,它含有一組其意義相對完整的信息,分段的目的是更好的滿足用戶的需要。

            (2)頁的大小固定且由系統(tǒng)決定,在系統(tǒng)中只有一種大小的頁面;而段的長度不固定,決定于用戶編寫的程序,通常由編譯程序在對源程序進(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來劃分。

            (3)段的優(yōu)點(diǎn):

            *信息共享和信息保護(hù):信息共享和信息保護(hù)都是以信息的邏輯單位為基礎(chǔ)。

            *等等。

            題目七:頁面置換算法有哪幾種?

            (1)最佳置換算法(OPT):選擇置換下次訪問距離當(dāng)前時(shí)間最長的那些頁。

            *該算法導(dǎo)致最少的缺頁中斷,但由于無法預(yù)知一個(gè)進(jìn)程在內(nèi)存的若干個(gè)頁面哪個(gè)是未來最長時(shí)間不再被訪問的,因而該算法無法實(shí)現(xiàn),但是可以作為一種標(biāo)準(zhǔn)來衡量其他置換算法。

            (2)最近最久未使用算法(LRU:Least Recently Used):置換內(nèi)存中上次使用距離當(dāng)前最遠(yuǎn)的頁。

            *LRU策略性能接近于OPT,但比較難實(shí)現(xiàn)(需要系統(tǒng)較多硬件支持,需要大量開銷)。

            (3)FIFO策略:淘汰最先進(jìn)入內(nèi)存的頁面,即選擇在內(nèi)存中駐留時(shí)間最久的頁面予以淘汰。

            *該算法實(shí)現(xiàn)簡單,但性能相對較差。

            (4)時(shí)鐘策略(Clock置換算法):

            1.簡單的Clock置換算法(使用位):給每一個(gè)頁框關(guān)聯(lián)一個(gè)附加位,稱為使用位。當(dāng)某一頁首次裝入內(nèi)存中,將該頁框的使用位設(shè)為1;當(dāng)該頁隨后被訪問到時(shí),它的使用位也為1。頁面置換算法中,用于置換的候選頁框集合被看做一個(gè)循環(huán)緩沖區(qū),并且有一個(gè)指針與之關(guān)聯(lián)。

            *過程:

            ~當(dāng)需要置換一頁時(shí),系統(tǒng)掃描緩沖區(qū),以查找使用位被置為0的一頁框。當(dāng)遇到使用位為1的頁框時(shí),操作系統(tǒng)就將該位重新設(shè)置為0。

            ~如果所有頁框使用位都為1時(shí),則指針在緩沖區(qū)中循環(huán)一周,把所有使用位都置0,并且停留在最初位置,置換該頁框中的頁。

            2.改進(jìn)的Clock置換算法(使用位+修改位):將一個(gè)頁面換出時(shí),如果該頁已被修改過,便須將該頁重新寫回到磁盤上;如果該頁未被修改,則不必將它拷回磁盤。在改進(jìn)的的Clock置換算法中,除要考慮頁面的使用情況,還需考慮置換代價(jià)。選擇頁面換出時(shí),既要是未使用過的頁面,又要是未被修改過的頁面,把同時(shí)滿足這兩個(gè)條件的頁面作為首選淘汰頁面。


          posted on 2013-07-31 10:12 順其自然EVO 閱讀(158) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2013年7月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沈阳市| 宝清县| 库车县| 邓州市| 肥乡县| 宜都市| 琼中| 周宁县| 博白县| 岚皋县| 晋城| 外汇| 沙湾县| 南华县| 西乌| 德令哈市| 同心县| 甘洛县| 张家界市| 万荣县| 临沧市| 乐平市| 搜索| 扶沟县| 桃园县| 新竹县| 应城市| 新巴尔虎右旗| 宜丰县| 丁青县| 奈曼旗| 厦门市| 兴安县| 娱乐| 历史| 正蓝旗| 阳泉市| 静安区| 响水县| 连云港市| 木兰县|