1. 程式人生 > >作業系統核心概念第二彈來了!

作業系統核心概念第二彈來了!

1. `字元裝置(character devices)`:另一類 I/O 裝置是`字元裝置`。字元裝置以`字元`為單位傳送或接收一個字元流,而不考慮任何塊結構。字元裝置是不可定址的,也沒有任何尋道操作。常見的字元裝置有 **印表機、網路裝置、滑鼠、以及大多數與磁碟不同的裝置**。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110021800-1086785557.png) 2. `裝置控制器(device controller)`: 裝置控制器是處理 CPU 傳入訊號和傳出訊號的系統。裝置通過插頭和插座連線到計算機,並且插座連線到裝置控制器。 3. `ECC(Error-Correcting Code)`: 指能夠實現錯誤檢查和糾正錯誤技術的記憶體。 4. `I/O port`: 也被稱為輸入/輸出埠,它是由軟體用來與計算機上的硬體進行通訊的記憶體地址。 5. `記憶體對映I/O(memory mapped I/O,MMIO)`: 記憶體對映的 I/O 使用相同的地址空間來定址記憶體和 I/O 裝置,也就是說,記憶體對映I/O 裝置共享同一記憶體地址。 6. `埠對映I/O(Port-mapped I/O ,PMIO)`:在 PMIO中,記憶體和I/O裝置有各自的地址空間。 埠對映I/O通常使用一種特殊的CPU指令,專門執行I/O操作。 7. `DMA (Direct Memory Access)`: 直接記憶體訪問,它是計算機系統的一項功能,它允許某些硬體系統能夠獨立於 CPU 訪問記憶體。如果沒有 DMA,當 CPU 執行輸入/輸出指令時,它通常在讀取或寫入操作的整個過程中都被完全佔用,因此無法執行其他工作。使用 DMA 後,CPU 首先啟動傳輸訊號,然後在進行傳輸時執行其他操作,最後在完成操作後從 DMA 控制器(DMAC)接收中斷。完成執行。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110032720-1324809529.png) 8. `週期竊取(cycle stealing)`:許多匯流排能夠以兩種模式操作:**每次一字模式和塊模式**。一些 DMA 控制器也能夠使用這兩種方式進行操作。在前一個模式中,DMA 控制器請求傳送一個字並得到這個字。如果 CPU 想要使用匯流排,它必須進行等待。裝置可能會偷偷進入並且從 CPU 偷走一個匯流排週期,從而輕微的延遲 CPU。它類似於直接記憶體訪問(DMA),允許I / O控制器在無需 CPU 干預的情況下讀取或寫入RAM。 9. `突發模式(burst mode)`: 指的是裝置在不進行單獨事務中重複傳輸每個資料所需的所有步驟的情況下,重複傳輸資料的情況。 10. `中斷向量表(interrupt vector table)`: 用來形成相應的中斷服務程式的入口地址或存放中斷服務程式的首地址稱為中斷向量。 中斷向量表是中斷向量的集合,中斷向量是中斷處理程式的地址。 11. `精確中斷(precise interrupt)`:精確中斷是一種能夠使機器處於良好狀態下的中斷,它具有如下特徵 * PC (程式計數器)儲存在一個已知的地方 * PC 所指向的指令之前所有的指令已經完全執行 * PC 所指向的指令之後所有的指令都沒有執行 * PC 所指向的指令的執行狀態是已知的 12. `非精確中斷(imprecise interrupt)`:不滿足以上要求的中斷,指令的執行時序和完成度具有不確定性,而且恢復起來也非常麻煩。 13. `裝置獨立性(device independence)`:**我們編寫訪問任何裝置的應用程式,不用事先指定特定的裝置**。比如你編寫了一個能夠從裝置讀入檔案的應用程式,那麼這個應用程式可以從硬碟、DVD 或者 USB 進行讀入,不必再為每個裝置定製應用程式。這其實就體現了裝置獨立性的概念。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110222898-1351042795.png) 14. `UNC(Uniform Naming Convention)` :UNC 是統一命名約定或統一命名約定的縮寫,是用於命名和訪問網路資源(例如網路驅動器,印表機或伺服器)的標準。 例如,在 MS-DOS 和 Microsoft Windows 中,使用者可以通過鍵入或對映到類似於以下示例的共享名來訪問共享資源。 ```shell \\computer\path ``` 然而,在 UNIX 和 Linux 中,你會像如下這麼寫 ```shell //computer/path ``` 15. `掛載(mounting)` :掛載是指作業系統會讓儲存在硬碟、CD-ROM 等資源裝置上的目錄和檔案,通過檔案系統能夠讓使用者訪問的過程。 16. `錯誤處理(Error handling)`: 錯誤處理是指對軟體應用程式中存在的錯誤情況的響應和恢復過程。 17. `同步阻塞(synchronous)`: 同步是阻塞式的,CPU 必須等待同步的處理結果。 18. `非同步響應(asynchronous)`: 非同步是由中斷驅動的,CPU 不用等待每個操作的處理結果繼而執行其他操作 19. `緩衝區(buffering)`: 緩衝區是記憶體的臨時儲存區域,它的出現是為了加快記憶體的訪問速度而設計的。對於經常訪問的資料和指令來說,CPU 應該訪問的是緩衝區而非記憶體 20. `Programmed input–output,PIO`:它指的是在 CPU 和外圍裝置(例如網路介面卡或 ATA 儲存裝置)之間傳輸資料的一種方法。 21. `輪詢(polling)`: 輪詢是指通過客戶端程式主動通過對每個裝置進行訪問來獲得同步狀態的過程。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110237227-1103748498.png) 22. `忙等(busy waiting)`:當一個程序正處在某臨界區內,任何試圖進入其臨界區的程序都必須等待,陷入忙等狀態。連續測試一個變數直到某個值出現為止,稱為忙等。 23. `可重入(reentrant)`: 如果一段程式或者程式碼在任意時刻被中斷後由作業系統呼叫其他程式或者程式碼,這段程式碼呼叫子程式並能夠正確執行,這種現象就稱為可重入。也就是說當該子程式正在執行時,執行執行緒可以再次進入並執行它,仍然獲得符合設計時預期的結果。 24. `主裝置編號(major device number)、副裝置編號(minor device number)` : 所有裝置都有一個主,副號碼。 主號碼是更大,更通用的類別(例如硬碟,輸入/輸出裝置等),而次號碼則更具體(即告訴裝置連線到哪條匯流排)。 25. `多重緩衝區(double buffering)`: 它指的是使用多個緩衝區來儲存資料塊,每個緩衝區都保留資料塊的一部分,讀取的時候通過讀取多個緩衝區的資料進而拼湊成一個完整的資料。 26. `環形緩衝區(circular buffer)`: 它指的是首尾相連的緩衝區,常用來實現資料緩衝流。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110249188-1954024846.png) 27. `假離線(Spooling)` :假離線是多程式的一種特殊形式,目的是在不同裝置之間複製資料。 在現代系統中,通常用於計算機應用程式和慢速外圍裝置(例如印表機)之間的中介。 28. `守護程序(Daemon)`: 在計算機中,守護程式是作為後臺程序執行的計算機程式,而不是在互動式使用者的直接控制下執行的程式。 29. `邏輯塊定址(logical block addressing, LBA)`:邏輯塊定址是一種通用方案,用於指定儲存在計算機儲存裝置上的資料塊的位置。 30. `RAID`:全稱是 Redundant Array of Inexpensive Disks ,廉價磁碟或驅動器的冗餘陣列,它是一種資料儲存虛擬化的技術,將多個物理磁碟驅動器元件組合成一個或多個邏輯單元,以實現資料冗餘,改善效能。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110331152-2047221112.png) 31. `MBR(Master Boot Record)`:主引導記錄(MBR)是任何硬碟或軟盤的第一扇區中的資訊,用於標識作業系統的放置方式和位置,以便可以將其載入到計算機的主儲存器或隨機存取儲存器中。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110938645-1390669406.png) 32. `FCFS (First-Come, First-Served)`: 先進先出的排程演算法,也就是說,首先到達 CPU 的程序首先進行服務。 33. `SSF (Shortest Seek First)` 最短路徑優先演算法,這是對先進先出演算法的改進,這種演算法因為減少了總的磁臂運動,從而縮短了平均響應時間。 34. `穩定儲存(stable storage)`: 它是計算機儲存技術的一種分類,該技術可確保任何給定的寫操作都具有原子性。 35. `時鐘(Clocks)`:也被稱為 timers。通常,時鐘是指調節所有計算機功能的時序和速度的微晶片。晶片中是一個晶體,當通電時,晶體會以特定的頻率振動。 任何一臺計算機能夠執行的最短時間是一個時鐘或時鐘晶片的一次振動。 36. `QR Code`: 二維碼的一種,它的全稱是快速響應矩陣圖碼,能夠快速響應。一般應用於手機讀碼操作,國內火車票上的二維碼就是 QR 碼 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110430382-1445451433.png) 37. `顯示卡(Video card)`,是個人電腦最基本組成部分之一,用途是將計算機系統所需要的顯示資訊進行轉換驅動顯示器,並向顯示器提供逐行或隔行掃描訊號,控制顯示器的正確顯示,是連線顯示器和個人電腦主機板的重要元件,是`人機對話`的重要裝置之一。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110441225-1133538875.png) 38. `GDI (Graphics Device Interface)`:圖形介面,是微軟視窗系統提供的應用程式介面,也是其用來表徵圖形物件、將圖形物件傳送給諸如顯示器、印表機之類輸出裝置的核心元件。 39. `裝置上下文(device context)`:裝置上下文是 Windows 資料結構,其中包含有關裝置(例如顯示器或印表機)的圖形屬性的資訊。 所有繪圖呼叫都是通過裝置上下文物件進行的,該物件封裝了用於繪製線條,形狀和文字的 Windows API。 裝置上下文可用於繪製到螢幕,印表機或圖元檔案。 40. `點陣圖(bitmap)`:在計算機中,點陣圖是從某個域(例如,整數範圍)到位的對映。也稱為位陣列或點陣圖索引。 41. `電阻式觸控式螢幕(Resistive touchscreens)`:電阻式觸控式螢幕基於施加到螢幕上的壓力來工作。 電阻屏由許多層組成。 當按下螢幕時,外部的後面板將被推到下一層,下一層會感覺到施加了壓力並記錄了輸入。 電阻式觸控式螢幕用途廣泛,可以用手指,指甲,手寫筆或任何其他物體進行操作。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110448267-1467932418.png) 42. `電容式觸控式螢幕(capacitive touchscreen)`:電容式觸控式螢幕通過感應物體(通常是指尖上的面板)的導電特性來工作。 手機或智慧手機上的電容屏通常具有玻璃表面,並且不依賴壓力。 當涉及到手勢(如滑動和捏合)時,它比電阻式螢幕更具響應性。 電容式觸控式螢幕只能用手指觸控,而不能用普通的手寫筆,手套或大多數其他物體來響應。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110459368-1126546334.png) 43. `死鎖(deadlock)`:死鎖常用於併發情況下,`死鎖` 是一種狀態,死鎖中的每個成員都在等待另一個成員(包括其自身)採取行動。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110506025-163049114.png) 相信你一定看過這個圖 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110514371-1915413954.png) 44. `可搶佔資源(preemptable resource)`:可以從擁有它的程序中搶佔而並不會產生任何副作用。 45. `不可搶佔資源(nonpreemptable resource)`:與可搶佔資源相反,如果資源被搶佔後,會導致程序或任務出錯。 46. `系統檢查點(system checkpointed)`:系統檢查點是作業系統(OS)的可啟動例項。檢查點是計算機在特定時間點的快照。 47. `兩階段加鎖(two-phase locking, 2PL)`:經常用於資料庫的併發控制,以保證可序列化 這種方法使用資料庫鎖在兩個階段: * 擴張階段:不斷上鎖,沒有鎖被釋放 * 收縮階段:鎖被陸續釋放,沒有新的加鎖 48. `活鎖(Livelock)`:活鎖類似於死鎖,不同之處在於,活鎖中僅涉及程序的狀態彼此之間不斷變化,沒有進展。舉一個現實世界的例子,當兩個人在狹窄的走廊裡相遇時,就會發生活鎖,每個人都試圖通過移動到一邊讓對方通過而禮貌,但最終卻沒有任何進展就左右搖擺,因為他們總是同時移動相同的方式。 49. `飢餓(starvation)`:在死鎖或者活鎖的狀態中,在任何時刻都可能請求資源,雖然一些排程策略能夠決定一些程序在某一時刻獲得資源,但是有一些程序永遠無法獲得資源。永遠無法獲得資源的程序很容易產生`飢餓`。 50. `沙盒(sandboxing)`:沙盒是一種軟體管理策略,可將應用程式與關鍵系統資源和其他程式隔離。它提供了一層額外的安全保護,可防止惡意軟體或有害應用程式對你的系統造成負面影響。 51. `VMM (Virtual Machine Monitor)`:也被稱為 hypervisor,在同一個物理機器上創建出來多型虛擬機器器的假象。 ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110523608-339767517.png) 52. `虛擬化技術(virtualization)`: 是一種資源管理技術,將計算機的各種實體資源(CPU、記憶體、磁碟空間、網路介面卡等),進行抽象、轉換後呈現出來並可供分割、組合為一個或多個電腦配置環境。 53. `雲(cloud)`:雲是目前虛擬機器最重要、最時髦的玩法。 54. `直譯器(interpreter)`: 直譯器是一種程式,能夠把程式語言一行一行解釋執行。每次執行程式時都要先轉成另一種語言再執行,因此直譯器的程式執行速度比較緩慢。它不會一次把整個程式翻譯出來,而是每翻譯一行程式敘述就立刻執行,然後再翻譯下一行,再執行,如此不停地進行下去。 55. `半虛擬化(paravirtualization)`: 半虛擬化的目的不是呈現出一個和底層硬體一摸一樣的虛擬機器,而是提供一個軟體介面,軟體介面與硬體介面相似但又不完全一樣。 56. `全虛擬化(full virtualization)`:全虛擬化是硬體虛擬化的一種,允許未經修改的客作業系統隔離執行。對於全虛擬化,硬體特徵會被對映到虛擬機器上,這些特徵包括完整的指令集、I/O操作、中斷和記憶體管理等。 57. `客戶作業系統(guest operating system)` : 客戶作業系統是安裝在計算機上作業系統之後的作業系統,客戶作業系統既可以是分割槽系統的一部分,也可以是虛擬機器設定的一部分。客戶作業系統為裝置提供了備用作業系統。 58. `主機作業系統(host operating system)`: 主機作業系統是計算機系統的硬碟驅動器上安裝的主要作業系統。 在大多數情況下,只有一個主機作業系統。 59. `塊裝置(block devices)`:塊裝置是一個能儲存`固定大小塊`資訊的裝置,它支援**以固定大小的塊,扇區或群集讀取和(可選)寫入資料**。每個塊都有自己的`實體地址`。通常塊的大小在 512 - 65536 之間。所有傳輸的資訊都會以`連續`的塊為單位。塊裝置的基本特徵是每個塊都較為對立,能夠獨立的進行讀寫。常見的塊裝置有 **硬碟、藍光光碟、USB 盤** ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110015607-235381738.png) 文章參考: 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 https://en.wikipedia.org/wiki/Bus_(computing) https://en.wikipedia.org/wiki/Interrupt_vector_table https://en.wikipedia.org/wiki/Busy_waiting https://en.wikipedia.org/wiki/Context_switch https://en.wikipedia.org/wiki/Read-only_memory https://www.techopedia.com/definition/6306/cache-hit ![](https://img2020.cnblogs.com/blog/1515111/202004/1515111-20200425110541382-18336752