【我的筆記】復(fù)試題目準(zhǔn)備

1、系統(tǒng)調(diào)用和庫函數(shù)的聯(lián)系區(qū)別

區(qū)別:

系統(tǒng)調(diào)用(system call),指運行在用戶空間應(yīng)用程序操作系統(tǒng)內(nèi)核請求某些服務(wù)的調(diào)用過程。系統(tǒng)調(diào)用提供了用戶程序與操作系統(tǒng)之間的接口。一般來說,系統(tǒng)調(diào)用都在內(nèi)核態(tài)執(zhí)行。由于系統(tǒng)調(diào)用不考慮平臺差異性,由內(nèi)核直接提供,因而移植性較差(幾乎無移植性)。

庫函數(shù)(library function),是由用戶或組織自己開發(fā)的,具有一定功能的函數(shù)集合,一般具有較好平臺移植性,通過庫文件(靜態(tài)庫或動態(tài)庫)向程序員提供功能性調(diào)用。程序員無需關(guān)心平臺差異,由庫來屏蔽平臺差異性。

聯(lián)系:

跟內(nèi)核功能與操作系統(tǒng)特性緊密相關(guān)的服務(wù),由系統(tǒng)調(diào)用提供;具有共通特性的功能一般需要較好的平臺移植性,故而由庫函數(shù)提供。庫函數(shù)與系統(tǒng)調(diào)用在功能上相互補充,如進程間通信資源的管理,進程控制等功能與平臺特性和內(nèi)核息息相關(guān),必須由系統(tǒng)調(diào)用來實現(xiàn)。文件?I/O操作等各平臺都具有的共通功能一般采用庫函數(shù),也便于跨平臺移植。某些情況下,庫函數(shù)與系統(tǒng)調(diào)用也有交集,如庫函數(shù)中的I/O操作的內(nèi)部實現(xiàn)依然需要調(diào)用系統(tǒng)的I/O方能實現(xiàn)。


2、進程與線程的區(qū)別

(1)進程是資源的分配和調(diào)度的一個獨立單元,而線程是CPU調(diào)度的基本單元

(2)同一個進程中可以包括多個線程,并且線程共享整個進程的資源(寄存器、堆棧、上下文),一個進程至少包括一個線程。

(3)進程的創(chuàng)建調(diào)用fork或者vfork,而線程的創(chuàng)建調(diào)用pthread_create,進程結(jié)束后它擁有的所有線程都將銷毀,而線程的結(jié)束不會影響同個進程中的其他線程的結(jié)束

(4)線程是輕量級的進程,它的創(chuàng)建和銷毀所需要的時間比進程小很多,所有操作系統(tǒng)中的執(zhí)行功能都是創(chuàng)建線程去完成的。

(5)線程中執(zhí)行時一般都要進行同步和互斥,因為他們共享同一進程的所有資源

(6)線程有自己的私有屬性TCB,線程id,寄存器、硬件上下文,而進程也有自己的私有屬性進程控制塊PCB,這些私有屬性是不被共享的,用來標(biāo)示一個進程或一個線程的標(biāo)志


3、n 個進程 m 個同類資源,每個進程 i 需要資源 xi(1<=xi<=m),證明:當(dāng)所有進程最大需求量之和小于 m+n,死鎖無關(guān)。

解:設(shè)每個進程對共享資源的最大需求量為x(0<x≤m)

由于每個進程最多申請使用x個資源,在最壞的情況下,每個進程都得到了(x-1)個資源i,并且都需申請最后一個資源。

這時系統(tǒng)剩余資源數(shù)為:m-n(x-1)

只要系統(tǒng)還有一個資源可用,就可使其中的一個進程獲得所需的全部資源。該進程運行結(jié)束后釋放出它所占用的資源,其他進程的資源需求也可全部得到滿足。

因此,當(dāng)m-m(x-1)≥1時,即x≤(m+n-1)/n時系統(tǒng)不會發(fā)生死鎖

進而可得系統(tǒng)中所有進程的最大需求量之和n?x≤(m+n-1)時系統(tǒng)不會發(fā)生死鎖。

該題中,所有進程最大需求量之和小于m+n,所以,該系統(tǒng)是死鎖無關(guān)的。


4、動態(tài)分區(qū)算法比較

動態(tài)分區(qū)算法不會產(chǎn)生內(nèi)部碎片,但會產(chǎn)生外部碎片。

最先適應(yīng)算法First-Fit:第一個滿足要求的空閑塊。-->高地址空間有大塊的空閑分區(qū);but外部碎片多,分配大塊時慢。

最佳適應(yīng)算法Best-Fit:滿足要求的最小空閑塊。-->大部分分配尺寸較小時效果較好,可避免大的空閑分區(qū)被拆分;but釋放分區(qū)較慢,易產(chǎn)生許多無用的小碎片。

下一個適應(yīng)算法Next-Fit:從上次分配的位置開始,第一個滿足的空閑塊。-->

最差適應(yīng)算法Worst-Fit:滿足要求的最大空閑塊。-->中等大小的分配較多時效果最好,避免出現(xiàn)太多的小碎片;but釋放分區(qū)較慢,易破壞大的空閑分區(qū),后續(xù)難以分配大的分區(qū)。


5、spooling 組成

spooling系統(tǒng)的三大組成部分:

<1>輸入井和輸出井

<2>輸入緩沖和輸出緩沖

<3>輸入進程SPi和輸出進程SPo

SPOOLing 技術(shù)實際上是一種外圍設(shè)備同時聯(lián)機操作技術(shù),又稱為排隊轉(zhuǎn)儲技術(shù)。


6、操作系統(tǒng)的體系結(jié)構(gòu)

模塊組合結(jié)構(gòu)、層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)。

操作系統(tǒng)分類:批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、嵌入式操作系統(tǒng)、集群系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)


7、并發(fā)程序特點

間斷性、失去封閉性、不可重現(xiàn)性。

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

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