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)性干毅。