操作系統(tǒng)核心概念第二彈來(lái)了!
1. 塊設(shè)備(block devices):塊設(shè)備是一個(gè)能存儲(chǔ)固定大小塊信息的設(shè)備,它支持以固定大小的塊,扇區(qū)或群集讀取和(可選)寫(xiě)入數(shù)據(jù)。每個(gè)塊都有自己的物理地址。通常塊的大小在 512 - 65536 之間。所有傳輸?shù)男畔⒍紩?huì)以連續(xù)的塊為單位。塊設(shè)備的基本特征是每個(gè)塊都較為對(duì)立,能夠獨(dú)立的進(jìn)行讀寫(xiě)。常見(jiàn)的塊設(shè)備有 硬盤(pán)、藍(lán)光光盤(pán)、USB 盤(pán)
2. 字符設(shè)備(character devices):另一類 I/O 設(shè)備是字符設(shè)備。字符設(shè)備以字符為單位發(fā)送或接收一個(gè)字符流,而不考慮任何塊結(jié)構(gòu)。字符設(shè)備是不可尋址的,也沒(méi)有任何尋道操作。常見(jiàn)的字符設(shè)備有 打印機(jī)、網(wǎng)絡(luò)設(shè)備、鼠標(biāo)、以及大多數(shù)與磁盤(pán)不同的設(shè)備。
3. 設(shè)備控制器(device controller):設(shè)備控制器是處理 CPU 傳入信號(hào)和傳出信號(hào)的系統(tǒng)。設(shè)備通過(guò)插頭和插座連接到計(jì)算機(jī),并且插座連接到設(shè)備控制器。
4. ECC(Error-Correcting Code):指能夠?qū)崿F(xiàn)錯(cuò)誤檢查和糾正錯(cuò)誤技術(shù)的內(nèi)存。
5. I/O port: 也被稱為輸入/輸出端口,它是由軟件用來(lái)與計(jì)算機(jī)上的硬件進(jìn)行通信的內(nèi)存地址。
6. 內(nèi)存映射I/O(memory mapped I/O,MMIO): 內(nèi)存映射的 I/O 使用相同的地址空間來(lái)尋址內(nèi)存和 I/O 設(shè)備,也就是說(shuō),內(nèi)存映射I/O 設(shè)備共享同一內(nèi)存地址。
7. 端口映射I/O(Port-mapped I/O ,PMIO):在 PMIO中,內(nèi)存和I/O設(shè)備有各自的地址空間。端口映射I/O通常使用一種特殊的CPU指令,專門(mén)執(zhí)行I/O操作。
8. DMA (Direct Memory Access):直接內(nèi)存訪問(wèn),它是計(jì)算機(jī)系統(tǒng)的一項(xiàng)功能,它允許某些硬件系統(tǒng)能夠獨(dú)立于 CPU 訪問(wèn)內(nèi)存。如果沒(méi)有 DMA,當(dāng) CPU 執(zhí)行輸入/輸出指令時(shí),它通常在讀取或?qū)懭氩僮鞯恼麄€(gè)過(guò)程中都被完全占用,因此無(wú)法執(zhí)行其他工作。使用 DMA 后,CPU 首先啟動(dòng)傳輸信號(hào),然后在進(jìn)行傳輸時(shí)執(zhí)行其他操作,最后在完成操作后從 DMA 控制器(DMAC)接收中斷。完成執(zhí)行。
9. 周期竊取(cycle stealing):許多總線能夠以兩種模式操作:每次一字模式和塊模式。一些 DMA 控制器也能夠使用這兩種方式進(jìn)行操作。在前一個(gè)模式中,DMA 控制器請(qǐng)求傳送一個(gè)字并得到這個(gè)字。如果 CPU 想要使用總線,它必須進(jìn)行等待。設(shè)備可能會(huì)偷偷進(jìn)入并且從 CPU 偷走一個(gè)總線周期,從而輕微的延遲 CPU。它類似于直接內(nèi)存訪問(wèn)(DMA),允許I / O控制器在無(wú)需 CPU 干預(yù)的情況下讀取或?qū)懭隦AM。
10. 突發(fā)模式(burst mode):指的是設(shè)備在不進(jìn)行單獨(dú)事務(wù)中重復(fù)傳輸每個(gè)數(shù)據(jù)所需的所有步驟的情況下,重復(fù)傳輸數(shù)據(jù)的情況。
11. 中斷向量表(interrupt vector table):用來(lái)形成相應(yīng)的中斷服務(wù)程序的入口地址或存放中斷服務(wù)程序的首地址稱為中斷向量。中斷向量表是中斷向量的集合,中斷向量是中斷處理程序的地址。
12. 精確中斷(precise interrupt):精確中斷是一種能夠使機(jī)器處于良好狀態(tài)下的中斷,它具有如下特征
- PC (程序計(jì)數(shù)器)保存在一個(gè)已知的地方
- PC 所指向的指令之前所有的指令已經(jīng)完全執(zhí)行
- PC 所指向的指令之后所有的指令都沒(méi)有執(zhí)行
- PC 所指向的指令的執(zhí)行狀態(tài)是已知的
13. 非精確中斷(imprecise interrupt):不滿足以上要求的中斷,指令的執(zhí)行時(shí)序和完成度具有不確定性,而且恢復(fù)起來(lái)也非常麻煩。
14. 設(shè)備獨(dú)立性(device independence):我們編寫(xiě)訪問(wèn)任何設(shè)備的應(yīng)用程序,不用事先指定特定的設(shè)備。比如你編寫(xiě)了一個(gè)能夠從設(shè)備讀入文件的應(yīng)用程序,那么這個(gè)應(yīng)用程序可以從硬盤(pán)、DVD 或者 USB 進(jìn)行讀入,不必再為每個(gè)設(shè)備定制應(yīng)用程序。這其實(shí)就體現(xiàn)了設(shè)備獨(dú)立性的概念。
15. UNC(Uniform Naming Convention) :UNC 是統(tǒng)一命名約定或統(tǒng)一命名約定的縮寫(xiě),是用于命名和訪問(wèn)網(wǎng)絡(luò)資源(例如網(wǎng)絡(luò)驅(qū)動(dòng)器,打印機(jī)或服務(wù)器)的標(biāo)準(zhǔn)。例如,在 MS-DOS 和 Microsoft Windows 中,用戶可以通過(guò)鍵入或映射到類似于以下示例的共享名來(lái)訪問(wèn)共享資源。
- \\computer\path
然而,在 UNIX 和 Linux 中,你會(huì)像如下這么寫(xiě)
- //computer/path
16. 掛載(mounting) :掛載是指操作系統(tǒng)會(huì)讓存儲(chǔ)在硬盤(pán)、CD-ROM 等資源設(shè)備上的目錄和文件,通過(guò)文件系統(tǒng)能夠讓用戶訪問(wèn)的過(guò)程。
17. 錯(cuò)誤處理(Error handling):錯(cuò)誤處理是指對(duì)軟件應(yīng)用程序中存在的錯(cuò)誤情況的響應(yīng)和恢復(fù)過(guò)程。
18. 同步阻塞(synchronous):同步是阻塞式的,CPU 必須等待同步的處理結(jié)果。
19. 異步響應(yīng)(asynchronous):異步是由中斷驅(qū)動(dòng)的,CPU 不用等待每個(gè)操作的處理結(jié)果繼而執(zhí)行其他操作
20. 緩沖區(qū)(buffering):緩沖區(qū)是內(nèi)存的臨時(shí)存儲(chǔ)區(qū)域,它的出現(xiàn)是為了加快內(nèi)存的訪問(wèn)速度而設(shè)計(jì)的。對(duì)于經(jīng)常訪問(wèn)的數(shù)據(jù)和指令來(lái)說(shuō),CPU 應(yīng)該訪問(wèn)的是緩沖區(qū)而非內(nèi)存
21. Programmed input–output,PIO:它指的是在 CPU 和外圍設(shè)備(例如網(wǎng)絡(luò)適配器或 ATA 存儲(chǔ)設(shè)備)之間傳輸數(shù)據(jù)的一種方法。
22. 輪詢(polling):輪詢是指通過(guò)客戶端程序主動(dòng)通過(guò)對(duì)每個(gè)設(shè)備進(jìn)行訪問(wèn)來(lái)獲得同步狀態(tài)的過(guò)程。
23. 忙等(busy waiting):當(dāng)一個(gè)進(jìn)程正處在某臨界區(qū)內(nèi),任何試圖進(jìn)入其臨界區(qū)的進(jìn)程都必須等待,陷入忙等狀態(tài)。連續(xù)測(cè)試一個(gè)變量直到某個(gè)值出現(xiàn)為止,稱為忙等。
24. 可重入(reentrant):如果一段程序或者代碼在任意時(shí)刻被中斷后由操作系統(tǒng)調(diào)用其他程序或者代碼,這段代碼調(diào)用子程序并能夠正確運(yùn)行,這種現(xiàn)象就稱為可重入。也就是說(shuō)當(dāng)該子程序正在運(yùn)行時(shí),執(zhí)行線程可以再次進(jìn)入并執(zhí)行它,仍然獲得符合設(shè)計(jì)時(shí)預(yù)期的結(jié)果。
25. 主設(shè)備編號(hào)(major device number)、副設(shè)備編號(hào)(minor device number) :所有設(shè)備都有一個(gè)主,副號(hào)碼。主號(hào)碼是更大,更通用的類別(例如硬盤(pán),輸入/輸出設(shè)備等),而次號(hào)碼則更具體(即告訴設(shè)備連接到哪條總線)。
26. 多重緩沖區(qū)(double buffering):它指的是使用多個(gè)緩沖區(qū)來(lái)保存數(shù)據(jù)塊,每個(gè)緩沖區(qū)都保留數(shù)據(jù)塊的一部分,讀取的時(shí)候通過(guò)讀取多個(gè)緩沖區(qū)的數(shù)據(jù)進(jìn)而拼湊成一個(gè)完整的數(shù)據(jù)。
27. 環(huán)形緩沖區(qū)(circular buffer):它指的是首尾相連的緩沖區(qū),常用來(lái)實(shí)現(xiàn)數(shù)據(jù)緩沖流。
28. 假脫機(jī)(Spooling) :假脫機(jī)是多程序的一種特殊形式,目的是在不同設(shè)備之間復(fù)制數(shù)據(jù)。 在現(xiàn)代系統(tǒng)中,通常用于計(jì)算機(jī)應(yīng)用程序和慢速外圍設(shè)備(例如打印機(jī))之間的中介。
29. 守護(hù)進(jìn)程(Daemon):在計(jì)算機(jī)中,守護(hù)程序是作為后臺(tái)進(jìn)程運(yùn)行的計(jì)算機(jī)程序,而不是在交互式用戶的直接控制下運(yùn)行的程序。
30. 邏輯塊尋址(logical block addressing, LBA):邏輯塊尋址是一種通用方案,用于指定存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上的數(shù)據(jù)塊的位置。
31. RAID:全稱是 Redundant Array of Inexpensive Disks ,廉價(jià)磁盤(pán)或驅(qū)動(dòng)器的冗余陣列,它是一種數(shù)據(jù)存儲(chǔ)虛擬化的技術(shù),將多個(gè)物理磁盤(pán)驅(qū)動(dòng)器組件組合成一個(gè)或多個(gè)邏輯單元,以實(shí)現(xiàn)數(shù)據(jù)冗余,改善性能。
32. MBR(Master Boot Record):主引導(dǎo)記錄(MBR)是任何硬盤(pán)或軟盤(pán)的第一扇區(qū)中的信息,用于標(biāo)識(shí)操作系統(tǒng)的放置方式和位置,以便可以將其加載到計(jì)算機(jī)的主存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器中。
33. FCFS (First-Come, First-Served):先進(jìn)先出的調(diào)度算法,也就是說(shuō),首先到達(dá) CPU 的進(jìn)程首先進(jìn)行服務(wù)。
34. SSF (Shortest Seek First) 最短路徑優(yōu)先算法,這是對(duì)先進(jìn)先出算法的改進(jìn),這種算法因?yàn)闇p少了總的磁臂運(yùn)動(dòng),從而縮短了平均響應(yīng)時(shí)間。
35. 穩(wěn)定存儲(chǔ)(stable storage):它是計(jì)算機(jī)存儲(chǔ)技術(shù)的一種分類,該技術(shù)可確保任何給定的寫(xiě)操作都具有原子性。
36. 時(shí)鐘(Clocks):也被稱為 timers。通常,時(shí)鐘是指調(diào)節(jié)所有計(jì)算機(jī)功能的時(shí)序和速度的微芯片。芯片中是一個(gè)晶體,當(dāng)通電時(shí),晶體會(huì)以特定的頻率振動(dòng)。任何一臺(tái)計(jì)算機(jī)能夠執(zhí)行的最短時(shí)間是一個(gè)時(shí)鐘或時(shí)鐘芯片的一次振動(dòng)。
37. QR Code:二維碼的一種,它的全稱是快速響應(yīng)矩陣圖碼,能夠快速響應(yīng)。一般應(yīng)用于手機(jī)讀碼操作,國(guó)內(nèi)火車(chē)票上的二維碼就是 QR 碼
38. 顯卡(Video card),是個(gè)人電腦最基本組成部分之一,用途是將計(jì)算機(jī)系統(tǒng)所需要的顯示信息進(jìn)行轉(zhuǎn)換驅(qū)動(dòng)顯示器,并向顯示器提供逐行或隔行掃描信號(hào),控制顯示器的正確顯示,是連接顯示器和個(gè)人電腦主板的重要組件,是人機(jī)對(duì)話的重要設(shè)備之一。
39. GDI (Graphics Device Interface):圖形接口,是微軟視窗系統(tǒng)提供的應(yīng)用程序接口,也是其用來(lái)表征圖形對(duì)象、將圖形對(duì)象傳送給諸如顯示器、打印機(jī)之類輸出設(shè)備的核心組件。
40. 設(shè)備上下文(device context):設(shè)備上下文是 Windows 數(shù)據(jù)結(jié)構(gòu),其中包含有關(guān)設(shè)備(例如顯示器或打印機(jī))的圖形屬性的信息。所有繪圖調(diào)用都是通過(guò)設(shè)備上下文對(duì)象進(jìn)行的,該對(duì)象封裝了用于繪制線條,形狀和文本的 Windows API。設(shè)備上下文可用于繪制到屏幕,打印機(jī)或圖元文件。
41. 位圖(bitmap):在計(jì)算機(jī)中,位圖是從某個(gè)域(例如,整數(shù)范圍)到位的映射。也稱為位數(shù)組或位圖索引。
42. 電阻式觸摸屏(Resistive touchscreens):電阻式觸摸屏基于施加到屏幕上的壓力來(lái)工作。電阻屏由許多層組成。當(dāng)按下屏幕時(shí),外部的后面板將被推到下一層,下一層會(huì)感覺(jué)到施加了壓力并記錄了輸入。電阻式觸摸屏用途廣泛,可以用手指,指甲,手寫(xiě)筆或任何其他物體進(jìn)行操作。
43. 電容式觸摸屏(capacitive touchscreen):電容式觸摸屏通過(guò)感應(yīng)物體(通常是指尖上的皮膚)的導(dǎo)電特性來(lái)工作。手機(jī)或智能手機(jī)上的電容屏通常具有玻璃表面,并且不依賴壓力。當(dāng)涉及到手勢(shì)(如滑動(dòng)和捏合)時(shí),它比電阻式屏幕更具響應(yīng)性。電容式觸摸屏只能用手指觸摸,而不能用普通的手寫(xiě)筆,手套或大多數(shù)其他物體來(lái)響應(yīng)。
44. 死鎖(deadlock):死鎖常用于并發(fā)情況下,死鎖 是一種狀態(tài),死鎖中的每個(gè)成員都在等待另一個(gè)成員(包括其自身)采取行動(dòng)。
相信你一定看過(guò)這個(gè)圖
45. 可搶占資源(preemptable resource):可以從擁有它的進(jìn)程中搶占而并不會(huì)產(chǎn)生任何副作用。
46. 不可搶占資源(nonpreemptable resource):與可搶占資源相反,如果資源被搶占后,會(huì)導(dǎo)致進(jìn)程或任務(wù)出錯(cuò)。
47. 系統(tǒng)檢查點(diǎn)(system checkpointed):系統(tǒng)檢查點(diǎn)是操作系統(tǒng)(OS)的可啟動(dòng)實(shí)例。檢查點(diǎn)是計(jì)算機(jī)在特定時(shí)間點(diǎn)的快照。
48. 兩階段加鎖(two-phase locking, 2PL):經(jīng)常用于數(shù)據(jù)庫(kù)的并發(fā)控制,以保證可串行化
這種方法使用數(shù)據(jù)庫(kù)鎖在兩個(gè)階段:
- 擴(kuò)張階段:不斷上鎖,沒(méi)有鎖被釋放
- 收縮階段:鎖被陸續(xù)釋放,沒(méi)有新的加鎖
49. 活鎖(Livelock):活鎖類似于死鎖,不同之處在于,活鎖中僅涉及進(jìn)程的狀態(tài)彼此之間不斷變化,沒(méi)有進(jìn)展。舉一個(gè)現(xiàn)實(shí)世界的例子,當(dāng)兩個(gè)人在狹窄的走廊里相遇時(shí),就會(huì)發(fā)生活鎖,每個(gè)人都試圖通過(guò)移動(dòng)到一邊讓對(duì)方通過(guò)而禮貌,但最終卻沒(méi)有任何進(jìn)展就左右搖擺,因?yàn)樗麄兛偸峭瑫r(shí)移動(dòng)相同的方式。
50. 饑餓(starvation):在死鎖或者活鎖的狀態(tài)中,在任何時(shí)刻都可能請(qǐng)求資源,雖然一些調(diào)度策略能夠決定一些進(jìn)程在某一時(shí)刻獲得資源,但是有一些進(jìn)程永遠(yuǎn)無(wú)法獲得資源。永遠(yuǎn)無(wú)法獲得資源的進(jìn)程很容易產(chǎn)生饑餓。
51. 沙盒(sandboxing):沙盒是一種軟件管理策略,可將應(yīng)用程序與關(guān)鍵系統(tǒng)資源和其他程序隔離。它提供了一層額外的安全保護(hù),可防止惡意軟件或有害應(yīng)用程序?qū)δ愕南到y(tǒng)造成負(fù)面影響。
52. VMM (Virtual Machine Monitor):也被稱為 hypervisor,在同一個(gè)物理機(jī)器上創(chuàng)建出來(lái)多態(tài)虛擬機(jī)器的假象。
53. 虛擬化技術(shù)(virtualization):是一種資源管理技術(shù),將計(jì)算機(jī)的各種實(shí)體資源(CPU、內(nèi)存、磁盤(pán)空間、網(wǎng)絡(luò)適配器等),進(jìn)行抽象、轉(zhuǎn)換后呈現(xiàn)出來(lái)并可供分割、組合為一個(gè)或多個(gè)電腦配置環(huán)境。
54. 云(cloud):云是目前虛擬機(jī)最重要、最時(shí)髦的玩法。
55. 解釋器(interpreter):解釋器是一種程序,能夠把編程語(yǔ)言一行一行解釋運(yùn)行。每次運(yùn)行程序時(shí)都要先轉(zhuǎn)成另一種語(yǔ)言再運(yùn)行,因此解釋器的程序運(yùn)行速度比較緩慢。它不會(huì)一次把整個(gè)程序翻譯出來(lái),而是每翻譯一行程序敘述就立刻運(yùn)行,然后再翻譯下一行,再運(yùn)行,如此不停地進(jìn)行下去。
56. 半虛擬化(paravirtualization):半虛擬化的目的不是呈現(xiàn)出一個(gè)和底層硬件一摸一樣的虛擬機(jī),而是提供一個(gè)軟件接口,軟件接口與硬件接口相似但又不完全一樣。
57. 全虛擬化(full virtualization):全虛擬化是硬件虛擬化的一種,允許未經(jīng)修改的操作系統(tǒng)隔離運(yùn)行。對(duì)于全虛擬化,硬件特征會(huì)被映射到虛擬機(jī)上,這些特征包括完整的指令集、I/O操作、中斷和內(nèi)存管理等。
58. 客戶操作系統(tǒng)(guest operating system) : 客戶操作系統(tǒng)是安裝在計(jì)算機(jī)上操作系統(tǒng)之后的操作系統(tǒng),客戶操作系統(tǒng)既可以是分區(qū)系統(tǒng)的一部分,也可以是虛擬機(jī)設(shè)置的一部分。客戶操作系統(tǒng)為設(shè)備提供了備用操作系統(tǒng)。
59. 主機(jī)操作系統(tǒng)(host operating system):主機(jī)操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的硬盤(pán)驅(qū)動(dòng)器上安裝的主要操作系統(tǒng)。在大多數(shù)情況下,只有一個(gè)主機(jī)操作系統(tǒng)。
文章參考:
https://www.techopedia.com/definition/15763/host-operating-system
https://en.wikibooks.org/wiki/Operating_System_Design/Concurrency/Livelock
https://www.studytonight.com/operating-system/first-come-first-serve
https://blog.csdn.net/liuchuo/article/details/51986201
https://docs.openstack.org/ceilometer/6.1.5/architecture.html
https://www.techopedia.com/definition/16626/error-handling
https://simple.wikipedia.org/wiki/Device_controller
https://blog.csdn.net/zhangjg_blog/article/details/20380971
https://www.techopedia.com/definition/4763/address-space
https://en.wikipedia.org/wiki/Direct_Media_Interface