找工作筆試面試那些事兒(13)---操作系統(tǒng)??贾R點(diǎn)總結(jié)

作者:寒小陽
時(shí)間:2013年8月。
出處:http://blog.csdn.net/han_xiaoyang/article/details/10473845。
聲明:版權(quán)所有,轉(zhuǎn)載請注明出處,謝謝。

上一節(jié)對數(shù)據(jù)庫的知識做了一個(gè)小總結(jié),實(shí)際找工作過程中,因?yàn)楣净騿挝粋?cè)重點(diǎn)不一樣,考察的知識也是不盡相同的,但是作為計(jì)算機(jī)類的學(xué)生,操作系統(tǒng)的知識也是必不可少的,去年參加筆試面試的時(shí)候,騰訊微軟阿里等公司的筆試題都或多或少對操作系統(tǒng)相關(guān)的知識點(diǎn)進(jìn)行了考察。作為一個(gè)非計(jì)算機(jī)科班出生的學(xué)僧,當(dāng)初并沒有學(xué)這門課,略尷尬,只有臨時(shí)啃書補(bǔ)一補(bǔ)了,這里給出的是一份操作系統(tǒng)??贾R點(diǎn)的總結(jié),希望能給大家?guī)硪恍┬⌒〉膸椭?/p>

1、進(jìn)程是并發(fā)過程中程序的執(zhí)行過程

2、進(jìn)程的特征:結(jié)構(gòu)特征動態(tài)性并發(fā)性獨(dú)立性異步性

3、臨界區(qū)指在每個(gè)進(jìn)程中訪問臨界資源的那段代碼

4,現(xiàn)在操作系統(tǒng)中申請資源的基本單位是進(jìn)程,在CPU得到執(zhí)行的基本單位是線程,進(jìn)程是由程序段、數(shù)據(jù)段、PCB組成的

5,對臨界資源應(yīng)采取互斥訪問方式來實(shí)現(xiàn)共享

6,P.V操作是一種低級進(jìn)程通信原語

7,對于記錄性信號量,在執(zhí)行一次P操作時(shí),信號量的值應(yīng)當(dāng)減1,當(dāng)其值為小于0時(shí)進(jìn)程應(yīng)阻塞;在執(zhí)行V操作時(shí),信號量的值應(yīng)當(dāng)加1;當(dāng)其值小于等于0時(shí),應(yīng)喚醒阻塞隊(duì)列中的進(jìn)程。

8,N個(gè)進(jìn)程共享某一臨界資源,(n-1)~1

9,短作業(yè)優(yōu)先算法,T1<T2<T3平均周轉(zhuǎn)時(shí)間為:T1+2XT2/3+T3/3

10,響應(yīng)比Rp=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)器時(shí)間=響應(yīng)時(shí)間/要求服務(wù)時(shí)間

11思索是指多個(gè)進(jìn)程在運(yùn)行過程中因爭奪資源,而造成的一種僵局,當(dāng)進(jìn)程處于這種僵局狀態(tài)時(shí),若無外力作用,他們都將無法再向前推進(jìn)。

死鎖的避免是根據(jù)防止系統(tǒng)進(jìn)入不安全狀態(tài)。

產(chǎn)生死鎖的根本原因是資源分配不當(dāng)和資源數(shù)量不足,發(fā)生死鎖的四個(gè)必要條件是:互斥條件,請求和保持條件,不剝奪條件和環(huán)路等待條件,銀行家算法用于避免死鎖

12,如果系統(tǒng)中有N個(gè)進(jìn)程,最多為(N-1)個(gè)

13,若系統(tǒng)采用輪轉(zhuǎn)法調(diào)度進(jìn)程系統(tǒng)采用的是剝奪式調(diào)度

14,既考慮作業(yè)等待時(shí)間,又考慮作業(yè)執(zhí)行時(shí)間,的調(diào)度算法是響應(yīng)比優(yōu)先調(diào)度算法

15,資源的有序分配策略可以破壞死鎖的“循環(huán)等待”

16,并非所有的不安全狀態(tài)都必然會轉(zhuǎn)為死鎖狀態(tài),但當(dāng)系統(tǒng)進(jìn)圖不安全按狀態(tài)后變有可能進(jìn)入死鎖狀態(tài),

17,重定位:在作業(yè)地址空間中使用的邏輯地址變?yōu)閮?nèi)存物理地址

18,支持程序放在不連續(xù)內(nèi)存中儲存管理方法有分取式分配,分段式分配,段頁式分配頁式存儲主要特點(diǎn)是不要將作業(yè)同時(shí)全部裝入到主存的的連續(xù)區(qū)域

19,適合多道程序運(yùn)行的存儲管理中,存儲保護(hù)是為了防止各道作業(yè)的相互干擾

20,采用頁式存儲管理時(shí),重定位的工作由地址轉(zhuǎn)換機(jī)

21,段頁式存儲管理中的地址映像表是每個(gè)作業(yè)或進(jìn)程一張段表,每個(gè)段一張頁表

22,在虛擬頁式存儲管理方案中,完成將頁面調(diào)入內(nèi)存的工作的是缺頁中斷處理

23,分段管理和分頁管理的主要區(qū)別是分頁管理有存儲保護(hù),分段管理沒有

24,在股低估分區(qū)分配中,可以不同但預(yù)先固定的

25,不使用中斷機(jī)構(gòu)的I/O控制方式是程序I/O方式

26,spooling技術(shù)能獨(dú)占設(shè)備改造成可以共享的虛擬設(shè)備

27,磁盤防偽中把數(shù)據(jù)從磁盤讀出,叫做傳輸時(shí)間

28,共享設(shè)備指同一時(shí)間內(nèi)運(yùn)行多個(gè)進(jìn)程同時(shí)訪問的設(shè)備

29,通過軟件的功能擴(kuò)充,把原來獨(dú)占的設(shè)備愛造成若干個(gè)可共享的設(shè)備,虛擬設(shè)備

30,DMA方式如果I/O設(shè)備不通過CPU來完成

31,設(shè)備獨(dú)立性用戶程序獨(dú)立于具體物理設(shè)備的一種特性

32,虛擬設(shè)備一個(gè)物理設(shè)備變換成多個(gè)對應(yīng)的邏輯設(shè)備

33,通道是一種特殊的處理機(jī),通道按傳遞數(shù)據(jù)的方式分為:字節(jié)多路通道,數(shù)組選擇通道,數(shù)組多路通道

通道涉及的數(shù)據(jù)結(jié)構(gòu)是設(shè)備控制器,控制器控制塊,通道控制塊,系統(tǒng)設(shè)備表

34,磁盤高速緩沖設(shè)在內(nèi)存中,目的是提高I/O磁盤速度

35,磁盤空間的地址有盤面號,柱面號,扇區(qū)號組成。訪問磁盤的時(shí)間有 尋道時(shí)間,旋轉(zhuǎn)等待時(shí)間,讀寫時(shí)間

36,將系統(tǒng)段用參數(shù)翻譯成設(shè)備操作命令的工作由設(shè)備無關(guān)的操作系統(tǒng)完成

37,向設(shè)備寄存器寫入控制命令由設(shè)備驅(qū)動程序完成

38,尋找設(shè)備驅(qū)動程序由設(shè)備無關(guān)的操作系統(tǒng)軟件完成

39,設(shè)備管理的功能是設(shè)備分配,緩沖區(qū)管理和實(shí)現(xiàn)物理I/O設(shè)備的操作

40,根據(jù)設(shè)備的固有屬性特點(diǎn),設(shè)備可分為獨(dú)占設(shè)備,共享設(shè)備和虛擬設(shè)備

41,引入緩沖區(qū)技術(shù)提高處理器執(zhí)行程序設(shè)備的輸入輸出操作的并行程序文件管理

42,物理文件的組織方式是由操作系統(tǒng)確定的,文件的順序存取是按文件的邏輯號逐一存取

43,系統(tǒng)通過樹形目錄結(jié)構(gòu)來解決重名問題

44,在UNIX操作系統(tǒng)中,把輸入輸出設(shè)備看做特殊文件

45,打開文件操作的主要工作是把指定的目錄復(fù)制到內(nèi)存指定區(qū)域

46,文件路徑名是指從根目錄到該文件所經(jīng)歷的路徑中各符號名的集合

47,按邏輯結(jié)構(gòu)劃分,文件主要有兩類:記錄是文件,流式文件,文件系統(tǒng)的主要目的是實(shí)現(xiàn)對文件的按名存取

48 , 連續(xù)結(jié)構(gòu)文件必須采用連續(xù)分配方式,而鏈接結(jié)構(gòu)文件和索引結(jié)構(gòu)文件都可采取離散分配方式

49,文件系統(tǒng)中,若文件的物理結(jié)構(gòu)采用連續(xù)結(jié)構(gòu)有關(guān)文件的物理位置的信息包括首塊地址和文件長度

50,位示圖可用于磁盤空間管理,在文件系統(tǒng)中,為實(shí)現(xiàn)文件保護(hù),一般采用口令,密碼和訪問控制

\color{red}{1、進(jìn)程是具有獨(dú)立功能程序在某個(gè)數(shù)據(jù)集合上的一次執(zhí)行過程。線程是進(jìn)程內(nèi)的一個(gè)執(zhí)行實(shí)體或執(zhí)行單元。}

\color{blue}{進(jìn)程和線程的區(qū)別:}

(a)不同進(jìn)程的地址空間是獨(dú)立的,而同一進(jìn)程內(nèi)的線程共享同一地址空間。一個(gè)進(jìn)程的線程在另一個(gè)進(jìn)程內(nèi)是不可見的。

(b) 在引入線程的操作系統(tǒng)中,進(jìn)程是資源分配和調(diào)度的單位,線程是處理機(jī)調(diào)度和分配的單位,資源是分配給進(jìn)程的,線程只擁有很少資源,因而切換代價(jià)比進(jìn)程切換低。

\color{red}{2、死鎖在多道程序系統(tǒng)中,當(dāng)一組進(jìn)程中的每個(gè)進(jìn)程均無限期地等待被改組進(jìn)程中的另一進(jìn)程所占有且永遠(yuǎn)不會釋放的資源,此時(shí)的系統(tǒng)處于死鎖狀態(tài)。}

\color{blue}{死鎖產(chǎn)生的原因:}

(a)系統(tǒng)提供的資源有限;

(b)進(jìn)程推進(jìn)順序不當(dāng)。

產(chǎn)生死鎖的必要條件:互斥條件、不可剝奪條件、請求和保持條件、循環(huán)等待條件

\color{red}{3、執(zhí)行如下訪問頁號序列: 1,2,3,4,1,2,5,1,2,3,4,5 試說明}
\color{blue}{答: }
(1)FIFO: 9次
(2)LRU:10次
(3)OPT:7次

\color{red}{4、什么是操作系統(tǒng)的基本功能?}
\color{blue}{答: }
1.處理機(jī)管理。在多道程序或多用戶的情況下,要組織多個(gè)作業(yè)同時(shí)運(yùn)行,就要解決對處理機(jī)分配調(diào)度策略、分配實(shí)施和資源回收等問題。

2.存儲管理。存儲管理的主要工作是對內(nèi)部存儲器進(jìn)行分配、保護(hù)和擴(kuò)充和管理。

3.設(shè)備管理。涉及到通道、控制器、輸入輸出設(shè)備的分配和管理以及設(shè)備獨(dú)立性。

4.信息管理(文件系統(tǒng)管理) 是對系統(tǒng)的軟件資源的管理。

5.用戶接口。操作系統(tǒng)還為用戶提供一個(gè)友好的用戶接口。一般來說,操作系統(tǒng)提供兩種方式的接口來為用戶服務(wù)。

\color{red}{5、分級調(diào)度分為4級:}
\color{blue}{答: }
(1) 作業(yè)調(diào)度

(2) 交換調(diào)度

(3) 進(jìn)程調(diào)度

(4) 線程調(diào)度。

\color{red}{6、試寫出程序與進(jìn)程的區(qū)別}
\color{blue}{答: }
(1)進(jìn)程是一個(gè)動態(tài)概念,而程序是一個(gè)靜態(tài)概念。

(2)進(jìn)程具有并行特征,而程序不反映執(zhí)行所以沒有并行特征

(3)進(jìn)程是競爭計(jì)算機(jī)系統(tǒng)資源的基本單位,而程序不反映執(zhí)行也就不會競爭計(jì)算機(jī)系統(tǒng)資源

(4)不同的進(jìn)程可以包含同一程序,只要該程序所對應(yīng)的數(shù)據(jù)集不同。

\color{red}{7、頁式管理的基本原理是什么?}
\color{blue}{答: }
(1)進(jìn)程的虛擬空間被劃分成長度相等的頁。

(2)內(nèi)存空間也按頁的大小劃分成長度相等的頁面。

(3)采用請求調(diào)頁或預(yù)調(diào)技術(shù)實(shí)現(xiàn)內(nèi)外存儲器的統(tǒng)一管理。

\color{red}{8、進(jìn)程調(diào)度有哪些功能?}
\color{blue}{答: }
(1)記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況。

(2)選擇占有處理機(jī)的進(jìn)程

(3)進(jìn)行進(jìn)程上下文切換

\color{red}{9、批處理操作系統(tǒng)、分時(shí)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)的特點(diǎn)各是什么?}
\color{blue}{答: }
(1) 批處理操作系統(tǒng)的特點(diǎn):成批處理,系統(tǒng)吞吐量高,資源利用率高,用戶不能直接干預(yù)作業(yè)的執(zhí)行。

(2)分時(shí)操作系統(tǒng)的特點(diǎn):多路性、獨(dú)立性、及時(shí)性、交互性。

(3)實(shí)時(shí)操作系統(tǒng)的特點(diǎn):及時(shí)響應(yīng)、快速處理;高可靠性和安全性;不要求系統(tǒng)資源利用率。

\color{red}{10、Windows下的內(nèi)存是如何管理的?}
\color{blue}{答: }
  Windows提供了3種方法來進(jìn)行內(nèi)存管理:虛擬內(nèi)存,最適合用來管理大型對象或者結(jié)構(gòu)數(shù)組;內(nèi)存映射文件,最適合用來管理大型數(shù)據(jù)流(通常來自文件)以及在單個(gè)計(jì)算機(jī)上運(yùn)行多個(gè)進(jìn)程之間共享數(shù)據(jù);內(nèi)存堆棧,最適合用來管理大量的小對象。

Windows操縱內(nèi)存可以分兩個(gè)層面:物理內(nèi)存和虛擬內(nèi)存。

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

如果要知道某個(gè)地址是否被占用/可不可以訪問,只要查詢此地址的虛擬內(nèi)存狀態(tài)即可。如果是提交,則可以訪問。如果僅僅保留,或沒保留,則產(chǎn)生一個(gè)軟件異常。此外,有些內(nèi)存頁可以設(shè)置各種屬性。如果是只讀,向內(nèi)存寫也會產(chǎn)生軟件異常。

\color{red}{11、Windows消息調(diào)度機(jī)制是(C)}
\color{blue}{答: }

A)指令隊(duì)列;
B)指令堆棧;
C)消息隊(duì)列;
D)消息堆棧 ;

\color{blue}{解析:}

處理消息隊(duì)列的順序。首先Windows絕對不是按隊(duì)列先進(jìn)先出的次序來處理的,而是有一定優(yōu)先級的。優(yōu)先級通過消息隊(duì)列的狀態(tài)標(biāo)志來實(shí)現(xiàn)的。首先,最高優(yōu)先級的是別的線程發(fā)過來的消息(通過sendmessage);其次,處理登記消息隊(duì)列消息;再次處理QS_QUIT標(biāo)志,處理虛擬輸入隊(duì)列,處理wm_paint;最后是wm_timer。

\color{red}{12、描述實(shí)時(shí)系統(tǒng)的基本特性}
\color{blue}{答: }
  在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性。

所謂“實(shí)時(shí)操作系統(tǒng)”,實(shí)際上是指操作系統(tǒng)工作時(shí),其各種資源可以根據(jù)需要隨時(shí)進(jìn)行動態(tài)分配。由于各種資源可以進(jìn)行動態(tài)分配,因此,其處理事務(wù)的能力較強(qiáng)、速度較快。

\color{red}{13、中斷和輪詢的特點(diǎn)}
\color{blue}{答: }
  對I/O設(shè)備的程序輪詢的方式,是早期的計(jì)算機(jī)系統(tǒng)對I/O設(shè)備的一種管理方式。它定時(shí)對各種設(shè)備輪流詢問一遍有無處理要求。輪流詢問之后,有要求的,則加以處理。在處理I/O設(shè)備的要求之后,處理機(jī)返回繼續(xù)工作。盡管輪詢需要時(shí)間,但輪詢要比I/O設(shè)備的速度要快得多,所以一般不會發(fā)生不能及時(shí)處理的問題。當(dāng)然,再快的處理機(jī),能處理的輸入輸出設(shè)備的數(shù)量也是有一定限度的。而且,程序輪詢畢竟占據(jù)了CPU相當(dāng)一部分處理時(shí)間,因此,程序輪詢是一種效率較低的方式,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中已很少應(yīng)用。

程序中斷通常簡稱中斷,是指CPU在正常運(yùn)行程序的過程中,由于預(yù)先安排或發(fā)生了各種隨機(jī)的內(nèi)部或外部事件,使CPU中斷正在運(yùn)行的程序,而轉(zhuǎn)到為響應(yīng)的服務(wù)程序去處理。

輪詢——效率低,等待時(shí)間很長,CPU利用率不高。

中斷——容易遺漏一些問題,CPU利用率高。

\color{red}{14、什么是臨界區(qū)?如何解決沖突?}
\color{blue}{答: }
  每個(gè)進(jì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)入;

(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)象。

\color{red}{15、說說分段和分頁}
\color{blue}{答: }
  頁是信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率;或者說,分頁僅僅是由于系統(tǒng)管理的需要,而不是用戶的需要。

段是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好的滿足用戶的需要。

頁的大小固定且由系統(tǒng)確定,把邏輯地址劃分為頁號和頁內(nèi)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而一個(gè)系統(tǒng)只能有一種大小的頁面。段的長度卻不固定,決定于用戶所編寫的程序,通常由編輯程序在對源程序進(jìn)行編輯時(shí),根據(jù)信息的性質(zhì)來劃分。

分頁的作業(yè)地址空間是一維的,即單一的線性空間,程序員只須利用一個(gè)記憶符,即可表示一地址。分段的作業(yè)地址空間是二維的,程序員在標(biāo)識一個(gè)地址時(shí),既需給出段名,又需給出段內(nèi)地址。

\color{red}{16、說出你所知道的保持進(jìn)程同步的方法?}
\color{blue}{答: }
  進(jìn)程間同步的主要方法有原子操作、信號量機(jī)制、自旋鎖、管程、會合、分布式系統(tǒng)等。

\color{red}{17、Linux中常用到的命令}
\color{blue}{答: }
  顯示文件目錄命令ls 如ls

改變當(dāng)前目錄命令cd 如cd /home

建立子目錄mkdir 如mkdir xiong

刪除子目錄命令rmdir 如rmdir /mnt/cdrom

刪除文件命令rm 如rm /ucdos.bat

文件復(fù)制命令cp 如cp /ucdos /fox

獲取幫助信息命令man 如man ls

顯示文件的內(nèi)容less 如less mwm.lx

重定向與管道type 如type readme>>direct,將文件readme的內(nèi)容追加到文direct中

\color{red}{18、Linux文件屬性有哪些?(共十位)}
\color{blue}{答: }
  -rw-r--r--那個(gè)是權(quán)限符號,總共是- --- --- ---這幾個(gè)位。

第一個(gè)短橫處是文件類型識別符:-表示普通文件;c表示字符設(shè)備(character);b表示塊設(shè)備(block);d表示目錄(directory);l表示鏈接文件(link);后面第一個(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(寫權(quán)限),x(執(zhí)行權(quán)限)。如果每個(gè)權(quán)限位都有權(quán)限存在,那么滿權(quán)限的情況就是:-rwxrwxrwx;權(quán)限為空的情況就是- --- --- ---。

權(quán)限的設(shè)定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:

一個(gè)文件aaa具有完全空的權(quán)限- --- --- ---。

chmod u+rw aaa(給用戶權(quán)限位設(shè)置讀寫權(quán)限,其權(quán)限表示為:- rw- --- ---)

chmod g+r aaa(給組設(shè)置權(quán)限為可讀,其權(quán)限表示為:- --- r-- ---)

chmod ugo+rw aaa(給用戶,組,其它用戶或組設(shè)置權(quán)限為讀寫,權(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 aaa

\color{red}{19、簡術(shù)OSI的物理層Layer1,鏈路層Layer2,網(wǎng)絡(luò)層Layer3的任務(wù)。}
\color{blue}{答: }
\color{blue}{網(wǎng)絡(luò)層: }通過路由選擇算法,為報(bào)文或分組通過通信子網(wǎng)選擇最適當(dāng)?shù)穆窂健?/p>

\color{blue}{鏈路層: }通過各種控制協(xié)議,將有差錯(cuò)的物理信道變?yōu)闊o差錯(cuò)的、能可靠傳輸數(shù)據(jù)幀的數(shù)據(jù)鏈路。

\color{blue}{物理層: }利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實(shí)現(xiàn)比特流的透明傳輸。

\color{red}{20、什么是中斷?中斷時(shí)CPU做什么工作?}
\color{blue}{答: }
  中斷是指在計(jì)算機(jī)執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序。待處理完畢后又返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過程。

\color{red}{21、你知道操作系統(tǒng)的內(nèi)容分為幾塊嗎?什么叫做虛擬內(nèi)存?他和主存的關(guān)系如何?內(nèi)存管理屬于操作系統(tǒng)的內(nèi)容嗎?}
\color{blue}{答: }
  \color{blue}{操作系統(tǒng)的主要組成部分:}進(jìn)程和線程的管理,存儲管理,設(shè)備管理,文件管理。虛擬內(nèi)存是一些系統(tǒng)頁文件,存放在磁盤上,每個(gè)系統(tǒng)頁文件大小為4K,物理內(nèi)存也被分頁,每個(gè)頁大小也為4K,這樣虛擬頁文件和物理內(nèi)存頁就可以對應(yīng),實(shí)際上虛擬內(nèi)存就是用于物理內(nèi)存的臨時(shí)存放的磁盤空間。頁文件就是內(nèi)存頁,物理內(nèi)存中每頁叫物理頁,磁盤上的頁文件叫虛擬頁,物理頁+虛擬頁就是系統(tǒng)所有使用的頁文件的總和。

\color{red}{22、線程是否具有相同的堆棧?dll是否有獨(dú)立的堆棧?}
\color{blue}{答: }
  每個(gè)線程有自己的堆棧。

dll是否有獨(dú)立的堆棧?這個(gè)問題不好回答,或者說這個(gè)問題本身是否有問題。因?yàn)閐ll中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧。如果dll中的代碼是exe中的線程所調(diào)用,那么這個(gè)時(shí)候是不是說這個(gè)dll沒有獨(dú)立的堆棧?如果dll中的代碼是由dll自己創(chuàng)建的線程所執(zhí)行,那么是不是說dll有獨(dú)立的堆棧?

以上講的是堆棧,如果對于堆來說,每個(gè)dll有自己的堆,所以如果是從dll中動態(tài)分配的內(nèi)存,最好是從dll中刪除;如果你從dll中分配內(nèi)存,然后在exe中,或者另外一個(gè)dll中刪除,很有可能導(dǎo)致程序崩潰。

\color{red}{23、什么是緩沖區(qū)溢出?有什么危害?其原因是什么?}
\color{blue}{答: }
  緩沖區(qū)溢出是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)時(shí)超過了緩沖區(qū)本身的容量,溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。

\color{blue}{危害:}在當(dāng)前網(wǎng)絡(luò)與分布式系統(tǒng)安全中,被廣泛利用的50%以上都是緩沖區(qū)溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲。而緩沖區(qū)溢出中,最為危險(xiǎn)的是堆棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯?,在函?shù)返回時(shí)改變返回程序的地址,讓其跳轉(zhuǎn)到任意地址,帶來的危害一種是程序崩潰導(dǎo)致拒絕服務(wù),另外一種就是跳轉(zhuǎn)并且執(zhí)行一段惡意代碼,比如得到shell,然后為所欲為。通過往程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。

造成緩沖區(qū)溢出的主原因是程序中沒有仔細(xì)檢查用戶輸入的參數(shù)。

\color{red}{24、什么是死鎖?其條件是什么?怎樣避免死鎖?}
\color{blue}{答: }
\color{blue}{死鎖的概念:}在兩個(gè)或多個(gè)并發(fā)進(jìn)程中,如果每個(gè)進(jìn)程持有某種資源而又都等待別的進(jìn)程釋放它或它們現(xiàn)在保持著的資源,在未改變這種狀態(tài)之前都不能向前推進(jìn),稱這一組進(jìn)程產(chǎn)生了死鎖。通俗地講,就是兩個(gè)或多個(gè)進(jìn)程被無限期地阻塞、相互等待的一種狀態(tài)。

\color{blue}{死鎖產(chǎn)生的原因主要是:}

(1)系統(tǒng)資源不足;

(2) 進(jìn)程推進(jìn)順序非法。

\color{blue}{產(chǎn)生死鎖的必要條件:}

(1)互斥(mutualexclusion),一個(gè)資源每次只能被一個(gè)進(jìn)程使用;

(2)不可搶占(nopreemption),進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪;

(3)占有并等待(hold andwait),一個(gè)進(jìn)程因請求資源而阻塞時(shí),對已獲得的資源保持不放;

(4)環(huán)形等待(circularwait),若干進(jìn)程之間形成一種首尾相接的循環(huán)等待資源關(guān)系。

這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發(fā)生死鎖。

死鎖的解除與預(yù)防:理解了死鎖的原因,尤其是產(chǎn)生死鎖的四個(gè)必要條件,就可以最大可能地避免、預(yù)防和解除死鎖。所以,在系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度等方面注意如何不讓這四個(gè)必要條件成立,如何確定資源的合理分配算法,避免進(jìn)程永久占據(jù)系統(tǒng)資源。此外,也要防止進(jìn)程在處于等待狀態(tài)的情況下占用資源。因此,對資源的分配要給予合理的規(guī)劃。

\color{blue}{死鎖的處理策略:}鴕鳥策略、預(yù)防策略、避免策略、檢測與恢復(fù)策略。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容