97超级碰碰碰久久久_精品成年人在线观看_精品国内女人视频免费观_福利一区二区久久

系統(tǒng)運(yùn)營(yíng)面試

時(shí)間:2022-06-28 04:30:27 面試 我要投稿
  • 相關(guān)推薦

系統(tǒng)運(yùn)營(yíng)面試

1、什么是進(jìn)程(Process)和線程(Thread)?有何區(qū)別?

系統(tǒng)運(yùn)營(yíng)面試

進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程,同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。

進(jìn)程與應(yīng)用程序的區(qū)別在于應(yīng)用程序作為一個(gè)靜態(tài)文件存儲(chǔ)在計(jì)算機(jī)系統(tǒng)的硬盤等存儲(chǔ)空間中,而進(jìn)程則是處于動(dòng)態(tài)條件下由操作系統(tǒng)維護(hù)的系統(tǒng)資源管理實(shí)體。

2、Windows下的內(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)用程序可見的只有一個(gè)2G地址空間,而內(nèi)存分配是通過(guò)堆進(jìn)行的。對(duì)于每個(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)存上或硬盤的交換文件上),這時(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),只要查詢此地址的虛擬內(nèi)存狀態(tài)即可。如果是提交,則可以訪問(wèn)。如果僅僅保留,或沒(méi)保留,則產(chǎn)生一個(gè)軟件異常。此外,有些內(nèi)存頁(yè)可以設(shè)置各種屬性。如果是只讀,向內(nèi)存寫也會(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_paint;最后是wm_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è)備的數(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)入;

(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)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而一個(gè)系統(tǒng)只能有一種大小的頁(yè)面。段的長(zhǎng)度卻不固定,決定于用戶所編寫的程序,通常由編輯程序在對(duì)源程序進(jìn)行編輯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分。

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

8、說(shuō)出你所知道的保持進(jìn)程同步的方法?

進(jìn)程間同步的主要方法有原子操作、信號(hào)量機(jī)制、自旋鎖、管程、會(huì)合、分布式系統(tǒng)等。

9、Linux中常用到的命令

顯示文件目錄命令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中

10、Linux文件屬性有哪些?(共十位)

-rw-r--r--那個(gè)是權(quán)限符號(hào),總共是- --- --- ---這幾個(gè)位。

第一個(gè)短橫處是文件類型識(shí)別符:-表示普通文件;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

11、makefile文件的作用是什么?

一個(gè)工程中的源文件不計(jì)其數(shù),其按類型、功能、模塊分別放在若干個(gè)目錄中。makefile定義了一系列的規(guī)則來(lái)指定哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作。因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。makefile帶來(lái)的好處就是——“自動(dòng)化編譯”。一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大地提高了軟件開發(fā)的效率。make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具。一般來(lái)說(shuō),大多數(shù)的IDE都有這個(gè)命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make?梢,makefile都成為了一種在工程方面的編譯方法。

12、簡(jiǎn)術(shù)OSI的物理層Layer1,鏈路層Layer2,網(wǎng)絡(luò)層Layer3的任務(wù)。

網(wǎng)絡(luò)層:通過(guò)路由選擇算法,為報(bào)文或分組通過(guò)通信子網(wǎng)選擇最適當(dāng)?shù)穆窂健?/p>

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

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

13、什么是中斷?中斷時(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ò)程。

14、你知道操作系統(tǒng)的內(nèi)容分為幾塊嗎?什么叫做虛擬內(nèi)存?他和主存的關(guān)系如何?內(nèi)存管理屬于操作系統(tǒng)的內(nèi)容嗎?

操作系統(tǒng)的主要組成部分:進(jìn)程和線程的管理,存儲(chǔ)管理,設(shè)備管理,文件管理。虛擬內(nèi)存是一些系統(tǒng)頁(yè)文件,存放在磁盤上,每個(gè)系統(tǒng)頁(yè)文件大小為4K,物理內(nèi)存也被分頁(yè),每個(gè)頁(yè)大小也為4K,這樣虛擬頁(yè)文件和物理內(nèi)存頁(yè)就可以對(duì)應(yīng),實(shí)際上虛擬內(nèi)存就是用于物理內(nèi)存的臨時(shí)存放的磁盤空間。頁(yè)文件就是內(nèi)存頁(yè),物理內(nèi)存中每頁(yè)叫物理頁(yè),磁盤上的頁(yè)文件叫虛擬頁(yè),物理頁(yè)+虛擬頁(yè)就是系統(tǒng)所有使用的頁(yè)文件的總和。

15、線程是否具有相同的堆棧?dll是否有獨(dú)立的堆棧?

每個(gè)線程有自己的堆棧。

dll是否有獨(dú)立的堆棧?這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn)題。因?yàn)閐ll中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧。如果dll中的代碼是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)致程序崩潰。

16、什么是緩沖區(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ū)溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕蟲。而緩沖區(qū)溢出中,最為危險(xiǎn)的是堆棧溢出,因?yàn)槿肭终呖梢岳枚褩R绯觯诤瘮?shù)返回時(shí)改變返回程序的地址,讓其跳轉(zhuǎn)到任意地址,帶來(lái)的危害一種是程序崩潰導(dǎo)致拒絕服務(wù),另外一種就是跳轉(zhuǎn)并且執(zhí)行一段惡意代碼,比如得到shell,然后為所欲為。通過(guò)往程序的緩沖區(qū)寫超出其長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。

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

17、什么是死鎖?其條件是什么?怎樣避免死鎖?

死鎖的概念:在兩個(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)不可搶占(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ù)系統(tǒng)資源。此外,也要防止進(jìn)程在處于等待狀態(tài)的情況下占用資源。因此,對(duì)資源的分配要給予合理的規(guī)劃。

死鎖的處理策略:鴕鳥策略、預(yù)防策略、避免策略、檢測(cè)與恢復(fù)策略。

1、程序和進(jìn)程

進(jìn)程由兩個(gè)部分組成:1)操作系統(tǒng)用來(lái)管理進(jìn)程的內(nèi)核對(duì)象。內(nèi)核對(duì)象也是系統(tǒng)用來(lái)存放關(guān)于進(jìn)程的統(tǒng)計(jì)信息的地方。2)地址空間。它包含所有可執(zhí)行模塊或DLL模塊的代碼和數(shù)據(jù)。它還包含動(dòng)態(tài)內(nèi)存分配的空間。如線程堆棧和堆分配空間。


定義

使用系統(tǒng)運(yùn)行資源情況

程序

計(jì)算機(jī)指令的集合,它以文件的形式存儲(chǔ)在磁盤上。程序是靜態(tài)實(shí)體passive Entity),在多道程序系統(tǒng)中,它是不能獨(dú)立運(yùn)行的,更不能與其他程序并發(fā)執(zhí)行。

不使用【程序不能申請(qǐng)系統(tǒng)資源,不能被系統(tǒng)調(diào)度,也不能作為獨(dú)立運(yùn)行的單位,因此,它不占用系統(tǒng)的運(yùn)行資源】。

 

進(jìn)程

通常被定義為一個(gè)正在運(yùn)行的程序的實(shí)例,是一個(gè)程序在其自身的地址空間中的一次執(zhí)行活動(dòng)。

定義:進(jìn)程是進(jìn)程實(shí)體(包括:程序段、相關(guān)的數(shù)據(jù)段、進(jìn)程控制塊PCB)的運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

使用【進(jìn)程是資源申請(qǐng)、調(diào)度和獨(dú)立運(yùn)行的單位,因此,它使用系統(tǒng)中的運(yùn)行資源!

2、進(jìn)程與線程

如果說(shuō)操作系統(tǒng)引入進(jìn)程的目的是為了提高程序并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量。那么操作系統(tǒng)中引入線程的目的,則是為了減少進(jìn)程并發(fā)執(zhí)行過(guò)程中所付出的時(shí)空開銷,使操作系統(tǒng)能很好的并發(fā)執(zhí)行。

進(jìn)程process定義了一個(gè)執(zhí)行環(huán)境,包括它自己私有的地址空間、一個(gè)句柄表,以及一個(gè)安全環(huán)境;線程則是一個(gè)控制流,有他自己的調(diào)用棧call stack,記錄了它的執(zhí)行歷史。

線程由兩個(gè)部分組成:1)線程的內(nèi)核對(duì)象,操作系統(tǒng)用它來(lái)對(duì)線程實(shí)施管理。內(nèi)核對(duì)象也是系統(tǒng)用來(lái)存放線程統(tǒng)計(jì)信息的地方。2)線程堆棧,它用于維護(hù)線程在執(zhí)行代碼時(shí)需要的所有參數(shù)和局部變量。當(dāng)創(chuàng)建線程時(shí),系統(tǒng)創(chuàng)建一個(gè)線程內(nèi)核對(duì)象。該線程內(nèi)核對(duì)象不是線程本身,而是操作系統(tǒng)用來(lái)管理線程的較小的數(shù)據(jù)結(jié)構(gòu)?梢詫⒕程內(nèi)核對(duì)象視為由關(guān)于線程的統(tǒng)計(jì)信息組成的一個(gè)小型數(shù)據(jù)結(jié)構(gòu)。

進(jìn)程與線程的比較如下:

比較

進(jìn)程

線程

活潑性

不活潑(只是線程的容器)

活潑

地址空間

系統(tǒng)賦予的獨(dú)立的虛擬地址空間(對(duì)于32位進(jìn)程來(lái)說(shuō),這個(gè)地址空間是4GB

在進(jìn)程的地址空間執(zhí)行代碼。線程只有一個(gè)內(nèi)核對(duì)象和一個(gè)堆棧,保留的記錄很少,因此所需要的內(nèi)存也很少。因?yàn)榫程需要的開銷比進(jìn)程少

調(diào)度

僅是資源分配的基本單位

獨(dú)立調(diào)度、分派的基本單位

并發(fā)性

僅進(jìn)程間并發(fā)(傳統(tǒng)OS

進(jìn)程間、線程間并發(fā)

擁有資源

資源擁有的基本單位

基本上不擁有資源

系統(tǒng)開銷

創(chuàng)建、撤銷、切換開銷大

僅保存少量寄存器內(nèi)容,開銷小。

3、進(jìn)程同步

進(jìn)程同步的主要任務(wù):是對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(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ī)制可歸結(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ù)傳輸。郵槽是一種單向通信機(jī)制,創(chuàng)建郵槽的服務(wù)器進(jìn)程讀取數(shù)據(jù),打開郵槽的客戶機(jī)進(jìn)程寫入數(shù)據(jù)。

(3)管道通信系統(tǒng)(管道即:連接讀寫進(jìn)程以實(shí)現(xiàn)他們之間通信的共享文件(pipe文件,類似先進(jìn)先出的隊(duì)列,由一個(gè)進(jìn)程寫,另一進(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ī)器兩個(gè)進(jìn)程間通信

跨網(wǎng)絡(luò)通信

剪貼板Clipboard

可以

不可以

匿名管道Pipe

可以

不可以

命名管道(點(diǎn)對(duì)點(diǎn)單一通信,數(shù)據(jù)量可較大)Namedpipe

可以

可以

郵槽(一對(duì)多,數(shù)據(jù)量較小,424字節(jié)以下)Mailslot

可以

可以

5、線程同步

根據(jù)用戶模式及內(nèi)核模式下的同步方式的不同,分類及對(duì)比如下:


內(nèi)核對(duì)象/

非內(nèi)核對(duì)象

含義

缺點(diǎn)

適用

關(guān)鍵代碼段(臨界區(qū))CriticalSection

非內(nèi)核對(duì)象,工作在用戶方式下,為用戶模式對(duì)象

從程序代碼的角度來(lái)控制線程的并發(fā)性

1.因?yàn)樵诘却M(jìn)入關(guān)鍵代碼段時(shí)無(wú)法設(shè)定超時(shí)值,所以其很容易進(jìn)入死鎖狀態(tài)。2.不能跨進(jìn)程使用。

單個(gè)進(jìn)程中線程間的同步(同步速度快)

事件對(duì)象Event

內(nèi)核對(duì)象

所有內(nèi)核對(duì)象中最基本的。

速度較慢(相比用戶模式實(shí)現(xiàn)線程同步)

多個(gè)進(jìn)程間的各個(gè)線程間實(shí)現(xiàn)同步

互斥對(duì)象Mutex

內(nèi)核對(duì)象

代表對(duì)一個(gè)資源的獨(dú)占式訪問(wèn)

信號(hào)量

Semaphore

內(nèi)核對(duì)象

使用計(jì)數(shù)器來(lái)控制程序?qū)σ粋(gè)共享資源的訪問(wèn)

由于進(jìn)程同步產(chǎn)生了一系列經(jīng)典的同步問(wèn)題“生產(chǎn)者-消費(fèi)者”問(wèn)題,“哲學(xué)家進(jìn)餐”問(wèn)題,“讀者-寫者”問(wèn)題。

常見的操作系統(tǒng)使用的文件系統(tǒng)整理

文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu);即在磁盤上組織文件的方法。也指用于存儲(chǔ)文件的磁盤或分區(qū),或文件系統(tǒng)種類。操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡(jiǎn)稱文件系統(tǒng)。文件系統(tǒng)由三部分組成:與文件管理有關(guān)軟件、被管理文件以及實(shí)施文件管理所需數(shù)據(jù)結(jié)構(gòu)。從系統(tǒng)角度來(lái)看,文件系統(tǒng)是對(duì)文件存儲(chǔ)器空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。具體地說(shuō),它負(fù)責(zé)為用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,當(dāng)用戶不再使用時(shí)撤銷文件等。

【FAT】:

常PC機(jī)使用的文件系統(tǒng)是FAT16。像基于MS-DOS,Win 95等系統(tǒng)都采用了FAT16文件系統(tǒng)。在Win 9X下,F(xiàn)AT16支持的分區(qū)最大為2GB。我們知道計(jì)算機(jī)將信息保存在硬盤上稱為“簇”的區(qū)域內(nèi)。使用的簇越小,保存信息的效率就越高。在FAT16的情況下,分區(qū)越大簇就相應(yīng)的要大,存儲(chǔ)效率就越低,勢(shì)必造成存儲(chǔ)空間的浪費(fèi)。并且隨著計(jì)算機(jī)硬件和應(yīng)用的不斷提高,F(xiàn)AT16文件系統(tǒng)已不能很好地適應(yīng)系統(tǒng)的要求。在這種情況下,推出了增強(qiáng)的文件系統(tǒng)FAT32。同F(xiàn)AT16相比,F(xiàn)AT32主要具有以下特點(diǎn):

1、同F(xiàn)AT16相比FAT32最大的優(yōu)點(diǎn)是可以支持的磁盤大小達(dá)到32G,但是不能支持小于512MB的分區(qū)。

*基于FAT32的Win 2000可以支持分區(qū)最大為32GB;而基于 FAT16的Win 2000支持的分區(qū)最大為4GB。

2、由于采用了更小的簇,F(xiàn)AT32文件系統(tǒng)可以更有效率地保存信息。如兩個(gè)分區(qū)大小都為2GB,一個(gè)分區(qū)采用了FAT16文件系統(tǒng),另一個(gè)分區(qū)采用了FAT32文件系統(tǒng)。采用FAT16的分區(qū)的簇大小為32KB,而FAT32分區(qū)的簇只有4KB的大小。這樣FAT32就比FAT16的存儲(chǔ)效率要高很多,通常情況下可以提高15%。

3、FAT32文件系統(tǒng)可以重新定位根目錄和使用FAT的備份副本。另外FAT32分區(qū)的啟動(dòng)記錄被包含在一個(gè)含有關(guān)鍵數(shù)據(jù)的結(jié)構(gòu)中,減少了計(jì)算機(jī)系統(tǒng)崩潰的可能性。

【NTFS】:

NTFS文件系統(tǒng)是一個(gè)基于安全性的文件系統(tǒng),是Windows NT所采用的獨(dú)特的文件系統(tǒng)結(jié)構(gòu),它是建立在保護(hù)文件和目錄數(shù)據(jù)基礎(chǔ)上,同時(shí)照顧節(jié)省存儲(chǔ)資源、減少磁盤占用量的一種先進(jìn)的文件系統(tǒng)。使用非常廣泛的Windows NT 4.0采用的就是NTFS 4.0文件系統(tǒng),相信它所帶來(lái)的強(qiáng)大的系統(tǒng)安全性一定給廣大用戶留下了深刻的印象。Win 2000采用了更新版本的NTFS文件系統(tǒng)??NTFS 5.0,它的推出使得用戶不但可以像Win 9X那樣方便快捷地操作和管理計(jì)算機(jī),同時(shí)也可享受到NTFS所帶來(lái)的系統(tǒng)安全性。

NTFS 5.0的特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:

1、NTFS可以支持的分區(qū)(如果采用動(dòng)態(tài)磁盤則稱為卷)大小可以達(dá)到2TB。而Win 2000中的FAT32支持分區(qū)的大小最大為32GB。

2、NTFS是一個(gè)可恢復(fù)的文件系統(tǒng)。在NTFS分區(qū)上用戶很少需要運(yùn)行磁盤修復(fù)程序。NTFS通過(guò)使用標(biāo)準(zhǔn)的事物處理日志和恢復(fù)技術(shù)來(lái)保證分區(qū)的一致性。發(fā)生系統(tǒng)失敗事件時(shí),NTFS使用日志文件和檢查點(diǎn)信息自動(dòng)恢復(fù)文件系統(tǒng)的一致性。

3、NTFS支持對(duì)分區(qū)、文件夾和文件的壓縮。任何基于Windows的應(yīng)用程序?qū)TFS分區(qū)上的壓縮文件進(jìn)行讀寫時(shí)不需要事先由其他程序進(jìn)行解壓縮,當(dāng)對(duì)文件進(jìn)行讀取時(shí),文件將自動(dòng)進(jìn)行解壓縮;文件關(guān)閉或保存時(shí)會(huì)自動(dòng)對(duì)文件進(jìn)行壓縮。

4、NTFS采用了更小的簇,可以更有效率地管理磁盤空間。在Win 2000的FAT32文件系統(tǒng)的情況下,分區(qū)大小在2GB~8GB時(shí)簇的大小為4KB;分區(qū)大小在8GB~16GB時(shí)簇的大小為8KB;分區(qū)大小在16GB~32GB時(shí),簇的大小則達(dá)到了16KB。而Win 2000的NTFS文件系統(tǒng),當(dāng)分區(qū)的大小在2GB以下時(shí),簇的大小都比相應(yīng)的FAT32簇小;當(dāng)分區(qū)的大小在2GB以上時(shí)(2GB~2TB),簇的大小都為4KB。相比之下,NTFS可以比FAT32更有效地管理磁盤空間,最大限度地避免了磁盤空間的浪費(fèi)。

5、在NTFS分區(qū)上,可以為共享資源、文件夾以及文件設(shè)置訪問(wèn)許可權(quán)限。許可的設(shè)置包括兩方面的內(nèi)容:一是允許哪些組或用戶對(duì)文件夾、文件和共享資源進(jìn)行訪問(wèn);二是獲得訪問(wèn)許可的組或用戶可以進(jìn)行什么級(jí)別的訪問(wèn)。訪問(wèn)許可權(quán)限的設(shè)置不但適用于本地計(jì)算機(jī)的用戶,同樣也應(yīng)用于通過(guò)網(wǎng)絡(luò)的共享文件夾對(duì)文件進(jìn)行訪問(wèn)的網(wǎng)絡(luò)用戶。與FAT32文件系統(tǒng)下對(duì)文件夾或文件進(jìn)行訪問(wèn)相比,安全性要高得多。另外,在采用NTFS格式的Win 2000中,應(yīng)用審核策略可以對(duì)文件夾、文件以及活動(dòng)目錄對(duì)象進(jìn)行審核,審核結(jié)果記錄在安全日志中,通過(guò)安全日志就可以查看哪些組或用戶對(duì)文件夾、文件或活動(dòng)目錄對(duì)象進(jìn)行了什么級(jí)別的操作,從而發(fā)現(xiàn)系統(tǒng)可能面臨的非法訪問(wèn),通過(guò)采取相應(yīng)的措施,將這種安全隱患減到最低。這些在FAT32文件系統(tǒng)下,是不能實(shí)現(xiàn)的。

6、在Win 2000的NTFS文件系統(tǒng)下可以進(jìn)行磁盤配額管理。磁盤配額就是管理員可以為用戶所能使用的磁盤空間進(jìn)行配額限制,每一用戶只能使用最大配額范圍內(nèi)的磁盤空間。設(shè)置磁盤配額后,可以對(duì)每一個(gè)用戶的磁盤使用情況進(jìn)行跟蹤和控制,通過(guò)監(jiān)測(cè)可以標(biāo)識(shí)出超過(guò)配額報(bào)警閾值和配額限制的用戶,從而采取相應(yīng)的措施。磁盤配額管理功能的提供,使得管理員可以方便合理地為用戶分配存儲(chǔ)資源,避免由于磁盤空間使用的失控可能造成的系統(tǒng)崩潰,提高了系統(tǒng)的安全性。

7、NTFS使用一個(gè)“變更”日志來(lái)跟蹤記錄文件所發(fā)生的變更。

【Ext2】:

Ext2是 GNU/Linux 系統(tǒng)中標(biāo)準(zhǔn)的文件系統(tǒng),其特點(diǎn)為存取文件的性能極好,對(duì)于中小型的文件更顯示出優(yōu)勢(shì),這主要得利于其簇快取層的優(yōu)良設(shè)計(jì)。

其單一文件大小與文件系統(tǒng)本身的容量上限與文件系統(tǒng)本身的簇大小有關(guān),在一般常見的 x86 電腦系統(tǒng)中,簇最大為 4KB,則單一文件大小上限為 2048GB,而文件系統(tǒng)的容量上限為 16384GB。

但由于目前核心 2.4 所能使用的單一分割區(qū)最大只有 2048GB,實(shí)際上能使用的文件系統(tǒng)容量最多也只有 2048GB。

至于Ext3文件系統(tǒng),它屬于一種日志文件系統(tǒng),是對(duì)ext2系統(tǒng)的擴(kuò)展。它兼容ext2,并且從ext2轉(zhuǎn)換成ext3并不復(fù)雜。

【Ext3】:

Ext3是一種日志式文件系統(tǒng),是對(duì)ext2系統(tǒng)的擴(kuò)展,它兼容ext2。日志式文件系統(tǒng)的優(yōu)越性在于:由于文件系統(tǒng)都有快取層參與運(yùn)作,如不使用時(shí)必須將文件系統(tǒng)卸下,以便將快取層的資料寫回磁盤中。因此每當(dāng)系統(tǒng)要關(guān)機(jī)時(shí),必須將其所有的文件系統(tǒng)全部shutdown后才能進(jìn)行關(guān)機(jī)。

如果在文件系統(tǒng)尚未shutdown前就關(guān)機(jī) (如停電) 時(shí),下次重開機(jī)后會(huì)造成文件系統(tǒng)的資料不一致,故這時(shí)必須做文件系統(tǒng)的重整工作,將不一致與錯(cuò)誤的地方修復(fù)。然而,此一重整的工作是相當(dāng)耗時(shí)的,特別是容量大的文件系統(tǒng),而且也不能百分之百保證所有的資料都不會(huì)流失。

為了克服此問(wèn)題,使用所謂‘日志式文件系統(tǒng) (Journal File System) ’。此類文件系統(tǒng)最大的特色是,它會(huì)將整個(gè)磁盤的寫入動(dòng)作完整記錄在磁盤的某個(gè)區(qū)域上,以便有需要時(shí)可以回溯追蹤。

由于資料的寫入動(dòng)作包含許多的細(xì)節(jié),像是改變文件標(biāo)頭資料、搜尋磁盤可寫入空間、一個(gè)個(gè)寫入資料區(qū)段等等,每一個(gè)細(xì)節(jié)進(jìn)行到一半若被中斷,就會(huì)造成文件系統(tǒng)的不一致,因而需要重整。

然而,在日志式文件系統(tǒng)中,由于詳細(xì)紀(jì)錄了每個(gè)細(xì)節(jié),故當(dāng)在某個(gè)過(guò)程中被中斷時(shí),系統(tǒng)可以根據(jù)這些記錄直接回溯并重整被中斷的部分,而不必花時(shí)間去檢查其他的部分,故重整的工作速度相當(dāng)快,幾乎不需要花時(shí)間。

【Ext4】:

Linux kernel 自 2.6.28 開始正式支持新的文件系統(tǒng) Ext4。Ext4 是 Ext3 的改進(jìn)版,修改了 Ext3 中部分重要的數(shù)據(jù)結(jié)構(gòu),而不僅僅像 Ext3 對(duì) Ext2 那樣,只是增加了一個(gè)日志功能而已。Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能:

1、與 Ext3 兼容。執(zhí)行若干條命令,就能從 Ext3 在線遷移到 Ext4,而無(wú)須重新格式化磁盤或重新安裝系統(tǒng)。原有 Ext3 數(shù)據(jù)結(jié)構(gòu)照樣保留,Ext4 作用于新數(shù)據(jù),當(dāng)然,整個(gè)文件系統(tǒng)因此也就獲得了 Ext4 所支持的更大容量。

2、更大的文件系統(tǒng)和更大的文件。較之 Ext3 目前所支持的最大 16TB 文件系統(tǒng)和最大 2TB 文件,Ext4 分別支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系統(tǒng),以及 16TB 的文件。

3、無(wú)限數(shù)量的子目錄。Ext3 目前只支持 32,000 個(gè)子目錄,而 Ext4 支持無(wú)限數(shù)量的子目錄。

4、Extents。Ext3 采用間接塊映射,當(dāng)操作大文件時(shí),效率極其低下。比如一個(gè) 100MB 大小的文件,在 Ext3 中要建立 25,600 個(gè)數(shù)據(jù)塊(每個(gè)數(shù)據(jù)塊大小為 4KB)的映射表。而 Ext4 引入了現(xiàn)代文件系統(tǒng)中流行的 extents 概念,每個(gè) extent 為一組連續(xù)的數(shù)據(jù)塊,上述文件則表示為“該文件數(shù)據(jù)保存在接下來(lái)的 25,600 個(gè)數(shù)據(jù)塊中”,提高了不少效率。

5、多塊分配。當(dāng)寫入數(shù)據(jù)到 Ext3 文件系統(tǒng)中時(shí),Ext3 的數(shù)據(jù)塊分配器每次只能分配一個(gè) 4KB 的塊,寫一個(gè) 100MB 文件就要調(diào)用 25,600 次數(shù)據(jù)塊分配器,而 Ext4 的多塊分配器“multiblock allocator”(mballoc) 支持一次調(diào)用分配多個(gè)數(shù)據(jù)塊。

6、延遲分配。Ext3 的數(shù)據(jù)塊分配策略是盡快分配,而 Ext4 和其它現(xiàn)代文件操作系統(tǒng)的策略是盡可能地延遲分配,直到文件在 cache 中寫完才開始分配數(shù)據(jù)塊并寫入磁盤,這樣就能優(yōu)化整個(gè)文件的數(shù)據(jù)塊分配,與前兩種特性搭配起來(lái)可以顯著提升性能。

7、快速 fsck。以前執(zhí)行 fsck 第一步就會(huì)很慢,因?yàn)樗獧z查所有的 inode,現(xiàn)在 Ext4 給每個(gè)組的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系統(tǒng)就可以跳過(guò)它們而只去檢查那些在用的 inode 了。

8、日志校驗(yàn)。日志是最常用的部分,也極易導(dǎo)致磁盤硬件故障,而從損壞的日志中恢復(fù)數(shù)據(jù)會(huì)導(dǎo)致更多的數(shù)據(jù)損壞。Ext4 的日志校驗(yàn)功能可以很方便地判斷日志數(shù)據(jù)是否損壞,而且它將 Ext3 的兩階段日志機(jī)制合并成一個(gè)階段,在增加安全性的同時(shí)提高了性能。

9、“無(wú)日志”(No Journaling)模式。日志總歸有一些開銷,Ext4 允許關(guān)閉日志,以便某些有特殊需求的用戶可以借此提升性能。

10、在線碎片整理。盡管延遲分配、多塊分配和 extents 能有效減少文件系統(tǒng)碎片,但碎片還是不可避免會(huì)產(chǎn)生。Ext4 支持在線碎片整理,并將提供 e4defrag 工具進(jìn)行個(gè)別文件或整個(gè)文件系統(tǒng)的碎片整理。

11、inode 相關(guān)特性。Ext4 支持更大的 inode,較之 Ext3 默認(rèn)的 inode 大小 128 字節(jié),Ext4 為了在 inode 中容納更多的擴(kuò)展屬性(如納秒時(shí)間戳或 inode 版本),默認(rèn) inode 大小為 256 字節(jié)。Ext4 還支持快速擴(kuò)展屬性(fast extended attributes)和 inode 保留(inodes reservation)。

12、持久預(yù)分配(Persistent preallocation)。P2P 軟件為了保證下載文件有足夠的空間存放,常常會(huì)預(yù)先創(chuàng)建一個(gè)與所下載文件大小相同的空文件,以免未來(lái)的數(shù)小時(shí)或數(shù)天之內(nèi)磁盤空間不足導(dǎo)致下載失敗。Ext4 在文件系統(tǒng)層面實(shí)現(xiàn)了持久預(yù)分配并提供相應(yīng)的 API(libc 中的 posix_fallocate()),比應(yīng)用軟件自己實(shí)現(xiàn)更有效率。

13、默認(rèn)啟用 barrier。磁盤上配有內(nèi)部緩存,以便重新調(diào)整批量數(shù)據(jù)的寫操作順序,優(yōu)化寫入性能,因此文件系統(tǒng)必須在日志數(shù)據(jù)寫入磁盤之后才能寫 commit 記錄,若 commit 記錄寫入在先,而日志有可能損壞,那么就會(huì)影響數(shù)據(jù)完整性。Ext4 默認(rèn)啟用 barrier,只有當(dāng) barrier 之前的數(shù)據(jù)全部寫入磁盤,才能寫 barrier 之后的數(shù)據(jù)。(可通過(guò) “mount -o barrier=0” 命令禁用該特性。)

【ZFS】:

ZFS源自于Sun Microsystems為Solaris操作系統(tǒng)開發(fā)的文件系統(tǒng)。ZFS是一個(gè)具有高存儲(chǔ)容量、文件系統(tǒng)與卷管理概念整合、嶄新的磁盤邏輯結(jié)構(gòu)的輕量級(jí)文件系統(tǒng),同時(shí)也是一個(gè)便捷的存儲(chǔ)池管理系統(tǒng)。ZFS是一個(gè)使用CDDL協(xié)議條款授權(quán)的開源項(xiàng)目。

【HFS】:

1、HFS文件系統(tǒng)概念

分層文件系統(tǒng)(Hierarchical File System,HFS)是一種由蘋果電腦開發(fā),并使用在Mac OS上的文件系統(tǒng)。最初被設(shè)計(jì)用于軟盤和硬盤,同時(shí)也可以在在只讀媒體如CD-ROM上見到。

2、HFS文件系統(tǒng)開發(fā)過(guò)程

HFS首次出現(xiàn)在1985年9月17日,作為Macintosh電腦上新的文件系統(tǒng)。它取代只用于早期Mac型號(hào)所使用的平面文件系統(tǒng)Macintosh File System(MFS)。因?yàn)镸acintosh電腦所產(chǎn)生的數(shù)據(jù),比其它通常的文件系統(tǒng),如DOS使用的FAT或原始Unix文件系統(tǒng)所允許存儲(chǔ)的數(shù)據(jù)更多。蘋果電腦開發(fā)了一種新式更適用的文件系統(tǒng),而不是采用現(xiàn)有的規(guī)格。例如,HFS允許文件名最多有31個(gè)字符的長(zhǎng)度,支持metadata和雙分支(每個(gè)文件的數(shù)據(jù)和資源支分開存儲(chǔ))文件。

盡管HFS象其它大多數(shù)文件系統(tǒng)一樣被視為專有的格式,因?yàn)橹挥兴鼮榇蠖鄶?shù)最新的操作系統(tǒng)提供了很好的通用解決方法以存取HFS格式磁盤。

在1998年,蘋果電腦發(fā)布了HFS Plus,其改善了HFS對(duì)磁盤空間的地址定位效率低下,并加入了其它的改進(jìn)。當(dāng)前版本的Mac OS仍舊支持HFS,但從Mac OS X開始HFS卷不能作為啟動(dòng)用。

3、構(gòu)成方式

分層文件系統(tǒng)把一個(gè)卷分為許多512字節(jié)的“邏輯塊”。這些邏輯塊被編組為“分配塊”,這些分配塊可以根據(jù)卷的尺寸包含一個(gè)或多個(gè)邏輯塊。HFS對(duì)地址分配塊使用16位數(shù)值,分配塊的最高限制數(shù)量是65536。

組成一個(gè)HFS卷需要下面的五個(gè)結(jié)構(gòu):

1)卷的邏輯塊0和1是啟動(dòng)塊,它包含了系統(tǒng)啟動(dòng)信息。例如,啟動(dòng)時(shí)載入的系統(tǒng)名稱和殼(通常是Finder)文件。

2)邏輯塊2包含主目錄塊(Master Directory Block,簡(jiǎn)稱MDB)。

3)邏輯塊3是卷位圖(Volume Bitmap)的啟動(dòng)塊,它追蹤分配塊使用狀態(tài)。

4)總目錄文件(Catalog File)是一個(gè)包含所有文件的記錄和儲(chǔ)存在卷中目錄的B*-tree。

5)擴(kuò)展溢出文件(Extent Overflow File)是當(dāng)最初總目錄文件中三個(gè)擴(kuò)展占用后,另外一個(gè)包含額外擴(kuò)展記錄的分配塊對(duì)應(yīng)信息的B*-tree。

內(nèi)核怎樣管理你的內(nèi)存

在分析了進(jìn)程的虛擬地址布局,我們轉(zhuǎn)向內(nèi)核以及他管理用戶內(nèi)存的機(jī)制。下圖是gonzo的例子:

Linux進(jìn)程在內(nèi)核中是由task_struct進(jìn)程描述符實(shí)現(xiàn)的,task_struct的mm字段指向內(nèi)存描述符mm_struct,他是進(jìn)程的一個(gè)內(nèi)存執(zhí)行摘要。如上圖所示,mm_struct存儲(chǔ)了內(nèi)存各個(gè)段的開始和結(jié)束地址、進(jìn)程所使用的內(nèi)存頁(yè)面數(shù)(rss代表常駐集合大小)、使用的虛擬地址空間總數(shù)等等。在內(nèi)存描述符中我們也可以找到兩個(gè)用于管理進(jìn)程內(nèi)層的字段:虛擬內(nèi)存集合和頁(yè)表。Gonzo的內(nèi)存區(qū)域如下圖:

每個(gè)虛擬內(nèi)存區(qū)域(VMA)是一個(gè)虛擬地址空間上連續(xù)的區(qū)域;這些區(qū)域不會(huì)彼此覆蓋。Vm_area_struct結(jié)構(gòu)描述了一個(gè)內(nèi)存區(qū)域,包括他的開始和技術(shù)地址、flags字段指定了他的行為和訪問(wèn)權(quán)限,vm_file字段指定了該區(qū)域映射的實(shí)際文件。一個(gè)沒(méi)有映射文件的VMA成為匿名的。除了內(nèi)存映射段以外,上面的每個(gè)內(nèi)存段(堆、棧等等)相當(dāng)于一個(gè)單獨(dú)的VMA。這不是必須的,盡管在x86機(jī)器上通常是這樣。VMA不會(huì)關(guān)心他在哪個(gè)段里面。

一個(gè)進(jìn)程的所有VMA以兩種方式存儲(chǔ)在他的內(nèi)存描述符中,一種是以鏈表的方式存放在mmap字段,以開始虛擬地址進(jìn)行了排序,另一種是以紅黑樹的方式存放,mm_rb字段為這顆紅黑樹的根。紅黑樹可以讓內(nèi)核根據(jù)給定的虛擬地址快速地找到內(nèi)存區(qū)域。當(dāng)我們讀取文件/proc/pid_of_process/maps,內(nèi)核僅僅是通過(guò)進(jìn)程VMA的鏈接同時(shí)打印出每一個(gè)。

作為運(yùn)營(yíng),不管是大師級(jí)還是菜鳥級(jí),我覺得都要問(wèn)清幾個(gè)問(wèn)題,以防后續(xù)工作無(wú)法進(jìn)行

1,有沒(méi)有美工?

2,廣告費(fèi)愿意投入多少?

3,店鋪有幾個(gè)運(yùn)營(yíng),現(xiàn)在很多企業(yè)往往一個(gè)天貓有很多運(yùn)營(yíng),終究還是前面的運(yùn)營(yíng)不行,又不舍得開除,然后又想找一個(gè)新的,這過(guò)程中就很多矛盾了,他說(shuō)他有理,你說(shuō)你有理

4,運(yùn)營(yíng)能不能做得了主

5,一般面試?yán)习蹇隙ㄟ會(huì)問(wèn)你,多久能把店鋪?zhàn)銎饋?lái)啊,這個(gè)時(shí)候我個(gè)人覺得要反問(wèn)一下老板,心里能接受的時(shí)間是多久,如果一個(gè)店剛開,老板說(shuō)1個(gè)月就想看到效果,還有些老板說(shuō)3個(gè)月想看到幾百萬(wàn)的銷售額,這些不搞清后期有理說(shuō)不清啊


【系統(tǒng)運(yùn)營(yíng)面試】相關(guān)文章:

運(yùn)營(yíng)專員面試技巧07-02

運(yùn)營(yíng)面試常見問(wèn)題07-03

怎樣面試運(yùn)營(yíng)經(jīng)理08-08

有關(guān)于運(yùn)營(yíng)面試的自我評(píng)價(jià)06-30

運(yùn)營(yíng)專員面試自我介紹03-23

運(yùn)營(yíng)專員面試自我介紹04-20

面試網(wǎng)站運(yùn)營(yíng)專員簡(jiǎn)歷怎么寫?07-11

操作系統(tǒng)面試題準(zhǔn)備07-11

各地衛(wèi)生系統(tǒng)面試題07-13

衛(wèi)生系統(tǒng)事業(yè)單位面試07-02