技術(shù)交流QQ群:1027579432吮播,歡迎你的加入!
歡迎關(guān)注我的微信公眾號:CurryCoder的程序人生
1.內(nèi)核同步的原因
- 在現(xiàn)代操作系統(tǒng)里眼俊,同一時(shí)間可能有多個(gè)內(nèi)核執(zhí)行流在執(zhí)行意狠,因此內(nèi)核其實(shí)像多進(jìn)程多線程編程一樣,也需要一些同步機(jī)制來同步各執(zhí)行單元對共享數(shù)據(jù)的訪問疮胖。尤其是在多處理器系統(tǒng)上环戈,更需要一些同步機(jī)制來同步不同處理器上的執(zhí)行單元對共享的數(shù)據(jù)的訪問。
2.同步方式
- 原子操作澎灸、信號量(semaphore)院塞、讀寫信號量(rw_semaphore)、自旋鎖(spinlock)性昭、大內(nèi)核鎖(BKL拦止,Big Kernel Lock)吊档、讀寫鎖(rwlock)匠题、大讀者鎖(brlock-Big Reader Lock)、讀-拷貝修改(RCU感猛,Read-Copy Update)姻乓、順序鎖(seqlock)
3.死鎖
- 產(chǎn)生原因:系統(tǒng)資源不足概页、資源分配不當(dāng)血筑、進(jìn)程運(yùn)行推進(jìn)順序不合適
- 產(chǎn)生條件:互斥嫌吠、請求和保持、不剝奪搁拙、環(huán)路
- 預(yù)防:
- 打破互斥條件:改造獨(dú)占性資源為虛擬資源,大部分資源已無法改造
- 打破不可搶占條件:當(dāng)一進(jìn)程占有一獨(dú)占性資源后又申請一獨(dú)占性資源而無法滿足法绵,則退出原占有的資源
- 打破占有且申請條件:采用資源預(yù)先分配策略箕速,即進(jìn)程運(yùn)行前申請全部資源,滿足則運(yùn)行朋譬,不然就等待盐茎,這樣就不會占有且申請
- 打破循環(huán)等待條件:實(shí)現(xiàn)資源有序分配策略,對所有設(shè)備實(shí)現(xiàn)分類編號徙赢,所有進(jìn)程只能采用按序號遞增的形式申請資源
- 有序資源分配法
- 銀行家算法
4.文件系統(tǒng)
- Windows:FCB 表 + FAT + 位圖
- Unix:inode + 混合索引 + 成組鏈接
5.主機(jī)字節(jié)序與網(wǎng)絡(luò)字節(jié)序
- 5.1主機(jī)字節(jié)序(CPU字節(jié)序)
- 概念:主機(jī)字節(jié)序又叫 CPU 字節(jié)序字柠,其不是由操作系統(tǒng)決定的,而是由 CPU 指令集架構(gòu)決定的狡赐。主機(jī)字節(jié)序分為兩種:
- 大端字節(jié)序(Big Endian):高序字節(jié)存儲在低位地址窑业,低序字節(jié)存儲在高位地址
-
小端字節(jié)序(Little Endian):高序字節(jié)存儲在高位地址,低序字節(jié)存儲在低位地址
存儲方式.jpg
- 概念:主機(jī)字節(jié)序又叫 CPU 字節(jié)序字柠,其不是由操作系統(tǒng)決定的,而是由 CPU 指令集架構(gòu)決定的狡赐。主機(jī)字節(jié)序分為兩種:
- 5.2網(wǎng)絡(luò)字節(jié)序
- 概念:網(wǎng)絡(luò)字節(jié)順序是 TCP/IP 中規(guī)定好的一種數(shù)據(jù)表示格式枕屉,它與具體的 CPU 類型常柄、操作系統(tǒng)等無關(guān),從而可以保重?cái)?shù)據(jù)在不同主機(jī)之間傳輸時(shí)能夠被正確解釋搀擂。網(wǎng)絡(luò)字節(jié)順序采用:大端(Big Endian)排列方式西潘。
6.頁面置換算法
- 概念:在地址映射過程中,若在頁面中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存中哨颂,則產(chǎn)生缺頁中斷喷市。當(dāng)發(fā)生缺頁中斷時(shí),如果操作系統(tǒng)內(nèi)存中沒有空閑頁面威恼,則操作系統(tǒng)必須在內(nèi)存選擇一個(gè)頁面將其移出內(nèi)存品姓,以便為即將調(diào)入的頁面讓出空間。而用來選擇淘汰哪一頁的規(guī)則叫做頁面置換算法箫措。
- 分類:
- 全局置換:在整個(gè)內(nèi)存空間置換
- 局部置換:在本進(jìn)程中進(jìn)行置換
- 算法:
- 全局:
- 工作集算法
- 缺頁率置換算法
- 局部:
- 最佳置換算法(OPT)
- 先進(jìn)先出置換算法(FIFO)
- 最近最久未使用(LRU)算法
- 時(shí)鐘(Clock)置換算法
- 全局: