操作系統(tǒng)面試題_第1頁(yè)
操作系統(tǒng)面試題_第2頁(yè)
操作系統(tǒng)面試題_第3頁(yè)
操作系統(tǒng)面試題_第4頁(yè)
操作系統(tǒng)面試題_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1、進(jìn)程和線程的區(qū)別?解析:(1)進(jìn)程是資源的分配和調(diào)度的一個(gè)獨(dú)立單元,而線程是CPU調(diào)度的基本單元(2)同一個(gè)進(jìn)程中可以包括多個(gè)線程,并且線程共享整個(gè)進(jìn)程的資源(寄 存器、堆棧、上下文),一個(gè)進(jìn)行至少包括一個(gè)線程。(3)進(jìn)程的創(chuàng)建調(diào)用fork或者vfork,而線程的創(chuàng)建調(diào)用pthread_create, 進(jìn)程結(jié)束后它擁有的所有線程都將銷毀,而線程的結(jié)束不會(huì)影響同個(gè)進(jìn)程中的其他線程的結(jié)束(4)線程是輕兩級(jí)的進(jìn)程,它的創(chuàng)建和銷毀所需要的時(shí)間比進(jìn)程小很多, 所有操作系統(tǒng)中的執(zhí)行功能都是創(chuàng)建線程去完成的(5)線程中執(zhí)行時(shí)一般都要進(jìn)行同步和互斥,因?yàn)樗麄児蚕硗贿M(jìn)程的所 有資源(6)線程有自己的私有屬

2、性 TCB線程id,寄存器、硬件上下文,而進(jìn)程 也有自己的私有屬性進(jìn)程控制塊 PCB這些私有屬性是不被共享的,用來(lái)標(biāo)示一 個(gè)進(jìn)程或一個(gè)線程的標(biāo)志7、什么是死鎖?其條件是什么?怎樣避免死鎖?死鎖的概念:在兩個(gè)或多個(gè)并發(fā)進(jìn)程中,如果每個(gè)進(jìn)程持有某種資源而又 都等待別的進(jìn)程釋放它或它們現(xiàn)在保持著的資源,在未改變這種狀態(tài)之前都不 能向前推進(jìn),稱這一組進(jìn)程產(chǎn)生了死鎖。通俗地講,就是兩個(gè)或多個(gè)進(jìn)程被無(wú) 限期地阻塞、相互等待的一種狀態(tài)。死鎖產(chǎn)生的原因主要是:?系統(tǒng)資源不足;? 進(jìn)程推進(jìn)順序非法。產(chǎn)生死鎖的必要條件:(1)互斥(mutualexclusion), 個(gè)資源每次只能被一個(gè)進(jìn)程使用;(2)不可搶占(

3、nopreemption ),進(jìn)程已獲得的資源,在未使用完之前, 不能強(qiáng)行剝奪;(3)占有并等待(hold andwait),個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲 得的資源保持不放;(4)環(huán)形等待(circularwait),若干進(jìn)程之間形成一種首尾相接的循環(huán)等待 資源關(guān)系。這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立, 而只要上述條件之一不滿足,就不會(huì)發(fā)生死鎖。死鎖的解除與預(yù)防:理解了死鎖的原因,尤其是產(chǎn)生死鎖的四個(gè)必要條件, 就可以最大可能地避免、預(yù)防和解除死鎖。所以,在系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度等方 面注意如何不讓這四個(gè)必要條件成立,如何確定資源的合理分配算法,避免進(jìn) 程永久占據(jù)系

4、統(tǒng)資源。此外,也要防止進(jìn)程在處于等待狀態(tài)的情況下占用資源。 因此,對(duì)資源的分配要給予合理的規(guī)劃。死鎖的處理策略:鴕鳥(niǎo)策略、預(yù)防策略、避免策略、檢測(cè)與恢復(fù)策略。3、Windows內(nèi)存管理方式:段存儲(chǔ)、頁(yè)存儲(chǔ)、段頁(yè)存儲(chǔ)解析:4、進(jìn)程的幾種狀態(tài)?解析:(1) run (運(yùn)行狀態(tài)):正在運(yùn)行的進(jìn)程或在等待隊(duì)列中對(duì)待的進(jìn)程, 等待的進(jìn)程只要以得到cpu就可以運(yùn)行(2)Sleep(可中斷休眠狀態(tài)):相當(dāng)于阻塞或在等待的狀態(tài)(3)D (不可中斷休眠狀態(tài)):在磁盤(pán)上的進(jìn)程(4)T (停止?fàn)顟B(tài)):這中狀態(tài)無(wú)法直觀的看見(jiàn),因?yàn)槭沁M(jìn)程停止后就釋放 了資源,所以不會(huì)留在linux中(5) Z (僵尸狀態(tài)):子進(jìn)程先與

5、父進(jìn)程結(jié)束,但父進(jìn)程沒(méi)有調(diào)用wait或 waitpid來(lái)回收子進(jìn)程的資源,所以子進(jìn)程就成了僵尸進(jìn)程,如果父進(jìn)程結(jié)束后 任然沒(méi)有回收子進(jìn)程的資源,那么 1號(hào)進(jìn)程將回收5、IPC通信方式?解析:(1)管道(匿名管道(pipe親緣關(guān)系的進(jìn)程通信)、命名管道(mkfifo/mknod )(2)消息隊(duì)列:是基于消息的、用無(wú)親緣關(guān)系的進(jìn)程間通信,主要函數(shù): msgget、msgsend msgrecv、msgctl(3)信號(hào)量:相當(dāng)于一把互斥鎖,通過(guò) p、v操作,主要函數(shù):semget、 semop、semctl(4)共享內(nèi)存:是進(jìn)程間通信速度最快的,所以用經(jīng)常是集合信號(hào)量或互 斥鎖來(lái)實(shí)現(xiàn)同步,shmge

6、t、shmat、shmdt、shmctl6、什么是虛擬內(nèi)存?解析:是將進(jìn)程部分裝入內(nèi)存中,從而能實(shí)現(xiàn)一個(gè)很大的程序能在一個(gè)比 它小的內(nèi)存中運(yùn)行,它的主要實(shí)現(xiàn)是靠程序的換進(jìn)換出來(lái)實(shí)現(xiàn)的,因?yàn)閮?nèi)存中 03G是用戶使用,34G才是內(nèi)存使用,通過(guò)映射來(lái)實(shí)現(xiàn)來(lái)進(jìn)行邏輯地址到物理 地址的映射7、虛擬地址、邏輯地址、線性地址、物理地址的區(qū)別?解析:分段機(jī)制把一個(gè)邏輯地址轉(zhuǎn)換為線性地址;接著,分頁(yè)機(jī)制把一個(gè) 線性地址轉(zhuǎn)換為物理地址。(1)虛擬地址:虛擬內(nèi)存映射出來(lái)的地址(2) 邏輯地址:程序的段加偏移量形成的,C/C+序中取地址求出來(lái)的地 址就是邏輯地址(3)線性地址:是邏輯地址到物理地址的中間層,只有啟動(dòng)分

7、頁(yè)機(jī)制的時(shí) 候才有線性地址,如果沒(méi)有分頁(yè)機(jī)制,那么線性地址就是物理地址(4)物理地址:是內(nèi)存中實(shí)實(shí)在在存在的硬件地址,邏輯地址(啟動(dòng)分段)-線性地址(啟動(dòng)分頁(yè))-物理地址2、下的內(nèi)存是如何管理的?Windows提供了 3種方法來(lái)進(jìn)行內(nèi)存管理:虛擬內(nèi)存,最適合用來(lái)管理大型 對(duì)象或者結(jié)構(gòu)數(shù)組;內(nèi)存映射文件,最適合用來(lái)管理大型數(shù)據(jù)流(通常來(lái)自文件)以及在單個(gè)計(jì)算機(jī)上運(yùn)行多個(gè)進(jìn)程之間共享數(shù)據(jù);內(nèi)存堆棧,最適合用來(lái)管理 大量的小對(duì)象。Windows操縱內(nèi)存可以分兩個(gè)層面:物理內(nèi)存和虛擬內(nèi)存。其中物理內(nèi)存由系統(tǒng)管理,不允許應(yīng)用程序直接訪問(wèn),應(yīng)用程序可見(jiàn)的只 有一個(gè)2G地址空間,而內(nèi)存分配是通過(guò)堆進(jìn)行的。對(duì)

8、于每個(gè)進(jìn)程都有自己的默 認(rèn)堆,當(dāng)一個(gè)堆創(chuàng)建后,就通過(guò)虛擬內(nèi)存操作保留了相應(yīng)大小的地址塊(不占有實(shí)際的內(nèi)存,系統(tǒng)消耗很?。.?dāng)在堆上分配一塊內(nèi)存時(shí),系統(tǒng)在堆的地址表里 找到一個(gè)空閑塊(如果找不到,且堆創(chuàng)建屬性是可擴(kuò)充的,則擴(kuò)充堆大小),為 這個(gè)空閑塊所包含的所有內(nèi)存頁(yè)提交物理對(duì)象(在物理內(nèi)存上或硬盤(pán)的交換文件上),這時(shí)就可以訪問(wèn)這部分地址。提交時(shí),系統(tǒng)將對(duì)所有進(jìn)程的內(nèi)存統(tǒng)一調(diào)配, 如果物理內(nèi)存不夠,系統(tǒng)試圖把一部分進(jìn)程暫時(shí)不訪問(wèn)的頁(yè)放入交換文件,以 騰出部分物理內(nèi)存。釋放內(nèi)存時(shí),只在堆中將所在的頁(yè)解除提交(相應(yīng)的物理對(duì)象被解除),繼續(xù)保留地址空間。如果要知道某個(gè)地址是否被占用/可不可以訪問(wèn),只要

9、查詢此地址的虛擬內(nèi) 存狀態(tài)即可。如果是提交,則可以訪問(wèn)。如果僅僅保留,或沒(méi)保留,則產(chǎn)生一 個(gè)軟件異常。此外,有些內(nèi)存頁(yè)可以設(shè)置各種屬性。如果是只讀,向內(nèi)存寫(xiě)也 會(huì)產(chǎn)生軟件異常。3、Windows消息調(diào)度機(jī)制是?A)指令隊(duì)列;B)指令堆棧;C)消息隊(duì)列;D)消息堆棧答案:C處理消息隊(duì)列的順序。首先 Windows絕對(duì)不是按隊(duì)列先進(jìn)先出的次序來(lái)處 理的,而是有一定優(yōu)先級(jí)的。優(yōu)先級(jí)通過(guò)消息隊(duì)列的狀態(tài)標(biāo)志來(lái)實(shí)現(xiàn)的。首先, 最高優(yōu)先級(jí)的是別的線程發(fā)過(guò)來(lái)的消息(通過(guò)sendmessage ;其次,處理登記消息隊(duì)列消息;再次處理 QS_QUIT標(biāo)志,處理虛擬輸入隊(duì)列,處理 wm_pai nt ; 最后是wm

10、_timer。4、描述實(shí)時(shí)系統(tǒng)的基本特性在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性。所謂實(shí)時(shí)操作系統(tǒng)”,實(shí)際上是指操作系統(tǒng)時(shí),其各種資源可以根據(jù)需要 隨時(shí)進(jìn)行動(dòng)態(tài)分配。由于各種資源可以進(jìn)行動(dòng)態(tài)分配,因此,其處理事務(wù)的能 力較強(qiáng)、速度較快。5、中斷和輪詢的特點(diǎn)對(duì)I/O設(shè)備的程序輪詢的方式,是早期的計(jì)算機(jī)系統(tǒng)對(duì) I/O設(shè)備的一種管理 方式。它定時(shí)對(duì)各種設(shè)備輪流詢問(wèn)一遍有無(wú)處理要求。輪流詢問(wèn)之后,有要求 的,則加以處理。在處理I/O設(shè)備的要求之后,處理機(jī)返回繼續(xù)工作。盡管輪詢 需要時(shí)間,但輪詢要比I/O設(shè)備的速度要快得多,所以一般不會(huì)發(fā)生不能及時(shí)處 理的問(wèn)題。當(dāng)然,再快的處理機(jī),能處理的輸入輸出設(shè)備

11、的數(shù)量也是有一定限 度的。而且,程序輪詢畢竟占據(jù)了 CPU相當(dāng)一部分處理時(shí)間,因此,程序輪詢 是一種效率較低的方式,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中已很少應(yīng)用。程序中斷通常簡(jiǎn)稱中斷,是指 CPU在正常運(yùn)行程序的過(guò)程中,由于預(yù)先安 排或發(fā)生了各種隨機(jī)的內(nèi)部或外部事件,使 CPU中斷正在運(yùn)行的程序,而轉(zhuǎn)到 為響應(yīng)的服務(wù)程序去處理。輪詢一一效率低,等待時(shí)間很長(zhǎng),CPU利用率不高。中斷一一容易遺漏一些問(wèn)題,CPU利用率高。6、什么是臨界區(qū)?如何解決沖突?每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段程序稱為臨界區(qū),每次只準(zhǔn)許一個(gè)進(jìn)程進(jìn) 入臨界區(qū),進(jìn)入后不允許其他進(jìn)程進(jìn)入。(1)如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個(gè)進(jìn)程進(jìn)

12、入;(2)任何時(shí)候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個(gè)。如已有進(jìn)程進(jìn)入自己 的臨界區(qū),貝康它所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待;(3) 進(jìn)入臨界區(qū)的進(jìn)程要在有限時(shí)間內(nèi)退出,以便其它進(jìn)程能及時(shí)進(jìn)入自 己的臨界區(qū);(4) 如果進(jìn)程不能進(jìn)入自己的臨界區(qū),貝卩應(yīng)讓出CPU,避免進(jìn)程出現(xiàn) 忙等 現(xiàn)象。7、說(shuō)說(shuō)分段和分頁(yè)頁(yè)是信息的物理單位,分頁(yè)是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭, 提高內(nèi)存的利用率;或者說(shuō),分頁(yè)僅僅是由于系統(tǒng)管理的需要,而不是用戶的 需要。段是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是 為了能更好的滿足用戶的需要。頁(yè)的大小固定且由系統(tǒng)確定,把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩

13、部分, 是由機(jī)器硬件實(shí)現(xiàn)的,因而一個(gè)系統(tǒng)只能有一種大小的頁(yè)面。段的長(zhǎng)度卻不固 定,決定于用戶所編寫(xiě)的程序,通常由編輯程序在對(duì)源程序進(jìn)行編輯時(shí),根據(jù) 信息的性質(zhì)來(lái)劃分。分頁(yè)的作業(yè)地址空間是一維的,即單一的線性空間,程序員只須利用一個(gè) 記憶符,即可表示一地址。分段的作業(yè)地址空間是二維的,程序員在標(biāo)識(shí)一個(gè) 地址時(shí),既需給出段名,又需給出段內(nèi)地址。&說(shuō)出你所知道的保持進(jìn)程同步的方法?進(jìn)程間同步的主要方法有原子操作、信號(hào)量機(jī)制、自旋鎖、管程、會(huì)合、 分布式系統(tǒng)等。9、Linux中常用到的命令顯示文件目錄命令I(lǐng)s 如Is改變當(dāng)前目錄命令cd女口 cd /home建立子目錄 mkdir女口 mkdir xi

14、ong刪除子目錄命令 rmdir女口 rmdir /mnt/cdrom刪除文件命令rm女口 rm /ucdos.bat文件復(fù)制命令cp女口 cp /ucdos /fox獲取幫助信息命令man 女口 man ls顯示文件的內(nèi)容less 如less mwm.lx重定向與管道type 如type readmedirect,將文件readme的內(nèi)容追加 到文direct中0、Linux文件屬性有哪些?(共十位)-rw-r-r-那個(gè)是權(quán)限符號(hào),總共是 這幾個(gè)位。第一個(gè)短橫處是文件類型識(shí)別符:-表示普通文件;c表示字符設(shè)備(character); b表示塊設(shè)備(block); d表示目錄(director

15、y); l表示鏈接文 件(li nk);后面第一個(gè)三個(gè)連續(xù)的短橫是用戶權(quán)限位(User),第二個(gè)三個(gè)連 續(xù)短橫是組權(quán)限位(Group),第三個(gè)三個(gè)連續(xù)短橫是其他權(quán)限位(Other)。每 個(gè)權(quán)限位有三個(gè)權(quán)限,r (讀權(quán)限),w (寫(xiě)權(quán)限),x (執(zhí)行權(quán)限)。如果每個(gè) 權(quán)限位都有權(quán)限存在,那么滿權(quán)限的情況就是:-rwxrwxrwx;權(quán)限為空的情況就是。權(quán)限的設(shè)定可以用chmod命令,其格式位:chmod ugoa+/-/=rwxfilename/directory。例如:一個(gè)文件aaa具有完全空的權(quán)限 。chmod u+rw aaa (給用戶權(quán)限位設(shè)置讀寫(xiě)權(quán)限,其權(quán)限表示為:-rw)chmod g

16、+r aaa (給組設(shè)置權(quán)限為可讀,其權(quán)限表示為:r)chmod ugo+rw aaa (給用戶,組,其它用戶或組設(shè)置權(quán)限為讀寫(xiě),權(quán)限表示為:-rw- rw- rw-)如果 aaa具有滿權(quán)限-rwx rwx rwx。chmod u-x aaa (去掉用戶可執(zhí)行權(quán)限,權(quán)限表示為: -rw- rwx rwx)如果要給aaa賦予制定權(quán)限-rwx r-x r-x,命令為:chmod u=rwx, go=rx aaa1、makefile文件的作用是什么?一個(gè)工程中的源文件不計(jì)其數(shù),其按類型、功能、模塊分別放在若干個(gè)目 錄中。makefile定義了一系列的規(guī)則來(lái)指定哪些文件需要先編譯,哪些文件需要 后編譯

17、,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作。因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。makefile帶來(lái)的好處就是自動(dòng)化編譯” 一旦寫(xiě)好,只需要一個(gè) make命令,整個(gè)工程完全自動(dòng)編譯,極大地提高了軟件開(kāi)發(fā)的效率。make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具。一般來(lái)說(shuō),大多數(shù)的IDE都有這個(gè)命令,比如:Delphi 的 make. Visual C+的 nmake, Linux下 GNU 的 make。可見(jiàn),makefile 都 成為了一種在工程方面的編譯方法。2、簡(jiǎn)術(shù)OSI的物理層Layer1,鏈路層Layer2,網(wǎng)絡(luò)層La

18、yer3的任務(wù)。網(wǎng)絡(luò)層:通過(guò)路由選擇算法,為報(bào)文或分組通過(guò)通信子網(wǎng)選擇最適當(dāng)?shù)穆?徑。鏈路層:通過(guò)各種控制協(xié)議,將有差錯(cuò)的物理信道變?yōu)闊o(wú)差錯(cuò)的、能可靠 傳輸數(shù)據(jù)幀的數(shù)據(jù)鏈路。物理層:利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實(shí)現(xiàn)比特流的透明傳 輸。3、什么是中斷?中斷時(shí) CPU做什么工作?中斷是指在計(jì)算機(jī)執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處 理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程 序。待處理完畢后又返回原來(lái)被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過(guò)程。4、你知道操作系統(tǒng)的內(nèi)容分為幾塊嗎?什么叫做虛擬內(nèi)存?他和主存的關(guān) 系如何??jī)?nèi)存管理屬于操作系統(tǒng)的內(nèi)容嗎?操

19、作系統(tǒng)的主要組成部分:進(jìn)程和線程的管理,存儲(chǔ)管理,設(shè)備管理,文 件管理。虛擬內(nèi)存是一些系統(tǒng)頁(yè)文件,存放在磁盤(pán)上,每個(gè)系統(tǒng)頁(yè)文件大小為 4K,物理內(nèi)存也被分頁(yè),每個(gè)頁(yè)大小也為 4K,這樣虛擬頁(yè)文件和物理內(nèi)存頁(yè)就 可以對(duì)應(yīng),實(shí)際上虛擬內(nèi)存就是用于物理內(nèi)存的臨時(shí)存放的磁盤(pán)空間。頁(yè)文件 就是內(nèi)存頁(yè),物理內(nèi)存中每頁(yè)叫物理頁(yè),磁盤(pán)上的頁(yè)文件叫虛擬頁(yè),物理頁(yè)+虛擬頁(yè)就是系統(tǒng)所有使用的頁(yè)文件的總和。5、線程是否具有相同的堆棧? dll是否有獨(dú)立的堆棧?每個(gè)線程有自己的堆棧。dll是否有獨(dú)立的堆棧?這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn) 題。因?yàn)閐ll中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧。如果dl

20、l中的代碼是exe中的線程所調(diào)用,那么這個(gè)時(shí)候是不是說(shuō)這個(gè)dll沒(méi)有獨(dú)立的堆棧?如果dll中的代碼是由dll自己創(chuàng)建的線程所執(zhí)行,那么是不是說(shuō) dll有獨(dú)立的堆棧?以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè) dll有自己的堆,所以如果是從dll 中動(dòng)態(tài)分配的內(nèi)存,最好是從 dll中刪除;如果你從dll中分配內(nèi)存,然后在exe 中,或者另外一個(gè)dll中刪除,很有可能導(dǎo)致程序崩潰。6、什么是緩沖區(qū)溢出?有什么危害?其原因是什么?緩沖區(qū)溢出是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)時(shí)超過(guò)了緩沖區(qū)本身的容量, 溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。危害:在當(dāng)前網(wǎng)絡(luò)與分布式系統(tǒng)安全中,被廣泛利用的50%以上都是緩沖區(qū)溢出,其中最著

21、名的例子是 利用fingerd漏洞的蠕蟲(chóng)。而緩沖區(qū)溢出中,最為危險(xiǎn)的是堆棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯觯诤瘮?shù)返回時(shí)改變返 回程序的地址,讓其跳轉(zhuǎn)到任意地址,帶來(lái)的危害一種是程序崩潰導(dǎo)致拒絕服 務(wù),另外一種就是跳轉(zhuǎn)并且執(zhí)行一段惡意代碼,比如得到shell,然后為所欲為。通過(guò)往程序的緩沖區(qū)寫(xiě)超出其長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序 的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。造成緩沖區(qū)溢出的主原因是程序中沒(méi)有仔細(xì)檢查用戶輸入的參數(shù)。3、進(jìn)程同步進(jìn)程同步的主要任務(wù):是對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并 發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可

22、再現(xiàn)性。同步機(jī)制遵循的原則:(1)空閑讓進(jìn);(2)忙則等待(保證對(duì)臨界區(qū)的互斥訪問(wèn));(3)有限等待(有限代表有限的時(shí)間,避免死等);(4)讓權(quán)等待,(當(dāng)進(jìn)程不能進(jìn)入自己的臨界區(qū)時(shí),應(yīng)該釋放處理機(jī),以 免陷入忙等狀態(tài))。4、進(jìn)程間的通信是如何實(shí)現(xiàn)的?進(jìn)程通信,是指進(jìn)程之間的信息交換 (信息量少則一個(gè)狀態(tài)或數(shù)值,多者則 是成千上萬(wàn)個(gè)字節(jié))。因此,對(duì)于用信號(hào)量進(jìn)行的進(jìn)程間的互斥和同步,由于其 所交換的信息量少而被歸結(jié)為低級(jí)通信。所謂高級(jí)進(jìn)程通信指:用戶可以利用操作系統(tǒng)所提供的一組通信命令傳送 大量數(shù)據(jù)的一種通信方式。操作系統(tǒng)隱藏了進(jìn)程通信的實(shí)現(xiàn)細(xì)節(jié)?;蛘哒f(shuō),通 信過(guò)程對(duì)用戶是透明的。高級(jí)通信機(jī)制可

23、歸結(jié)為三大類:(1)共享存儲(chǔ)器系統(tǒng)(存儲(chǔ)器中劃分的共享存儲(chǔ)區(qū));實(shí)際操作中對(duì)應(yīng)的 是剪貼板”(剪貼板實(shí)際上是系統(tǒng)維護(hù)管理的一塊內(nèi)存區(qū)域)的通信方式,比如 舉例如下:word進(jìn)程按下ctrl+c,在ppt進(jìn)程按下ctrl+v,即完成了 word進(jìn)程和 ppt進(jìn)程之間的通信,復(fù)制時(shí)將數(shù)據(jù)放入到剪貼板,粘貼時(shí)從剪貼板中取出數(shù)據(jù), 然后顯示在ppt窗口上。(2) 消息傳遞系統(tǒng)(進(jìn)程間的數(shù)據(jù)交換以消息(message為單位,當(dāng)今最 流行的微內(nèi)核操作系統(tǒng)中,微內(nèi)核與服務(wù)器之間的通信,無(wú)一例外地都采用了 消息傳遞機(jī)制。應(yīng)用舉例:郵槽(MailSlot)是基于廣播通信體系設(shè)計(jì)出來(lái)的,它采用無(wú)連接的不可靠的數(shù)據(jù)

24、傳輸。郵槽是一種單向通信機(jī)制,創(chuàng)建郵槽的服 務(wù)器進(jìn)程讀取數(shù)據(jù),打開(kāi)郵槽的客戶機(jī)進(jìn)程寫(xiě)入數(shù)據(jù)。(3)管道通信系統(tǒng)(管道即:連接讀寫(xiě)進(jìn)程以實(shí)現(xiàn)他們之間通信的共享文 件(pipe文件,類似先進(jìn)先出的隊(duì)列,由一個(gè)進(jìn)程寫(xiě),另一進(jìn)程讀)。實(shí)際操 作中,管道分為:匿名管道、命名管道。匿名管道是一個(gè)未命名的、單向管道, 通過(guò)父進(jìn)程和一個(gè)子進(jìn)程之間傳輸數(shù)據(jù)。匿名管道只能實(shí)現(xiàn)本地機(jī)器上兩個(gè)進(jìn) 程之間的通信,而不能實(shí)現(xiàn)跨網(wǎng)絡(luò)的通信。命名管道不僅可以在本機(jī)上實(shí)現(xiàn)兩 個(gè)進(jìn)程間的通信,還可以跨網(wǎng)絡(luò)實(shí)現(xiàn)兩個(gè)進(jìn)程間的通信。由于進(jìn)程同步產(chǎn)生了一系列經(jīng)典的同步問(wèn)題 生產(chǎn)者-消費(fèi)者”問(wèn)題,哲學(xué)家 進(jìn)餐”問(wèn)題,讀者-寫(xiě)者”問(wèn)題。9進(jìn)

25、程調(diào)度算法先來(lái)先服務(wù)調(diào)度算法FCFS既可以作為作業(yè)調(diào)度算法也可以作為進(jìn)程調(diào)度 算法;按作業(yè)或者進(jìn)程到達(dá)的先后順序依次調(diào)度;因此對(duì)于長(zhǎng)作業(yè)比較有利;短作業(yè)優(yōu)先調(diào)度算法SJF作業(yè)調(diào)度算法,算法從就緒隊(duì)列中選擇估計(jì)時(shí)間 最短的作業(yè)進(jìn)行處理,直到得出結(jié)果或者無(wú)法繼續(xù)執(zhí)行;缺點(diǎn):不利于長(zhǎng)作業(yè); 未考慮作業(yè)的重要性;運(yùn)行時(shí)間是預(yù)估的,并不靠譜;高相應(yīng)比算法HRN:響應(yīng)比=(等待時(shí)間+要求服務(wù)時(shí)間”要求服務(wù)時(shí)間;時(shí)間片輪轉(zhuǎn)調(diào)度RR按到達(dá)的先后對(duì)進(jìn)程放入隊(duì)列中,然后給隊(duì)首進(jìn)程分 配CPU時(shí)間片,時(shí)間片用完之后計(jì)時(shí)器發(fā)出中斷,暫停當(dāng)前進(jìn)程并將其放到隊(duì) 列尾部,循環(huán);多級(jí)反饋隊(duì)列調(diào)度算法:目前公認(rèn)較好的調(diào)度算法;設(shè)置多個(gè)就緒隊(duì)列并 為每個(gè)隊(duì)列設(shè)置不同的優(yōu)先級(jí),第一個(gè)隊(duì)列優(yōu)先級(jí)最高,其余依次遞減。優(yōu)先 級(jí)越高的隊(duì)列分配的時(shí)間片越短,進(jìn)程到達(dá)之后按FCFS放入第一個(gè)隊(duì)列,如果調(diào)度執(zhí)行后沒(méi)有完成,那么放到第二個(gè)隊(duì)列尾部等待調(diào)度,如果第二次調(diào)度仍 然沒(méi)有完成,放入第三隊(duì)列尾部 。只有當(dāng)前一個(gè)隊(duì)列為空的時(shí)候才會(huì)去調(diào)度下 一個(gè)隊(duì)列的進(jìn)程。10內(nèi)存

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論