1. 機器指令週期:
CPU執行一個指令花多少時間;執行過程順序為:1.IF(指令擷取)。2.DE(解碼)。3.FO(擷取運算元)。4.EX(執行)。5.WM(寫回記憶體)。
2. 位址匯流排:
2的n平方(位址)。
3. 資料匯流排:
N條資料線。
4. 1bits=8Bytes
5. CUP速度:
MIPS:1秒=10的6次方指令。
6. MFLOPS:
每秒執行百萬浮點數。
7. CPI:
1條指令多久,1MHZ=10的6次方。
8. 內頻(CPU工作效率)
=外頻(周邊設備)*倍頻(調整達到超頻)。
9. RISC:
精簡指令,例如:Android、RAM。
10. CISC:
大量指令,可變指令長度,例如:PC X86。
11. 1KB
=1024Bytes大約10的3次方Bytes。
12. 1GB
=2的20次方KB=2的30次方Bytes大約10的9次方Bytes。
13. 1Second
=10的3次方 (ms)毫秒=10的6次方 (MS)微秒=10的9次方 (ns)奈秒=10的12次方 (ps)皮秒。
14. Ven Veumann(逢紐曼):
提出Menory的概念。
15. CPU中包含的東西:
Control Unit+A.L.U=大型電腦+Register+Cache memory=PC中
16. RAM:
容量比ROM大,快取記憶體如:DDR3、DDR4。
17. ROM種類:
1.PROM:只能寫一次。2.EPROM:紫外線抹除資料。3.EEPROM:多次修改資料。
18. I/O的定址:
1.隔離式:I/O device address 和Memory adress不相干,不會佔到Memory空間。2.記憶體映像式:儲存同一個空間,所以會佔到Memory空間。
19. 圖形表示:
1.點陣圖:Pixcel(png、gif等)。2.向量貝茲數學所以不失真,放大不會有鋸齒狀(ai、esp等等)。
20. 全彩、黑白:
全彩:24bits、黑白:8bits
21. 無號數:
n個bits、範圍0<=x<=(2的n次方)-1。
22. 有號數:
0正數、1負數。
23. Bootstrap program靴帶程式:
BIOS。
24. 作業系統型態:
1.Batch System(批次系統):相似工作整批集中憶起處理。2.Multiprogramming(多重程式):I/O完成一件事後,把CPU交給其他使用,讓CPU保持忙碌。3.Time-sharing(分時系統):不斷切換執行工作,CUP排班功能。4.Multiprocessing(多處理器系統):擁有一個以上CPU處理器。5.分散式系統(Distributed System):分散不同地方處理器有主從式、對等式。6.Real-time System(即時系統):特殊控制安全,即時性要求高。7.Handheld System(手持系統):智慧型手機。
25. 作業系統演進:
提升使用率、避免直接對低速(指設備的I/O)可以大致分為:1.Offline(離線作業):用Tape。2.Buffering(緩衝):用Memory。3.Spooling(電腦周邊同步):用Disk。4.Caching(快取):write through、write back。
26. I/O處理方式1.Polling(詢問式):
回詢問上一個I/O是否完成,但是可能存在資料遺失的風險。2.Interrupt(中斷式):1.wait->2.General Register、Buffer Register->3.發出I/O計算中止->4.Stop目前工作à5.執行ISR:找出中斷服務常式->回到原本工作。4.DMA:資料自己的緩衝儲存區直接傳送或取出記憶體、不需要CPU介入(驅動程式,設定DMA,DMA控制I/O動作;如:資料àMemoryàDMAàI/O(驅動))。
27. 硬體保護:
1.Resident monitor取得控制權à監督模式,保證不會讓使用者不當操作。
28. 雙模式運作:
使用者、監督者。
29. 常見的硬體保護:
1.I/O保護:只能透過O.S操作I/O。2.記憶體保護:防止常駐監督程式受到使用者的存取。3.CPU保護:用計時器(timer)配置其他等待行程使用。
30. 作業系統結構:
(人àCommand Systemàkernel)、(User programàInterpreter callàkernel)。
31. Kernel:
作業系統核心:核心:管理程式、硬體分配。微核心:核心模組化,去核心非必要元件;優點:容易擴張、容易修改、安全、實用。
32. 命令直譯器(Command Interpreter):
收到輸入的命令後去執行。
33. 系統呼叫(System call):
類似function、subroutine。
34. Virtual machine(虛擬機器):
1.CPU排班法則、可共用CPU。2.共享設備。3.共享記憶體。
35. JVM(java 虛擬機器):
1.是否有效位元碼。2.是否造成堆疊溢出。3.不能執行指標算不能執行指標算術會造成非法記憶體存取;(流程:Java.class file->JVM->任何系統)。
36. 行程:
現在CPU以多工的方式進行。
37. Program(程式):
Passive,檔案存在磁盤裡。
38. Process(行程):
Active,下一個要執行的指令。
39. 行程狀態:
其中一項行程執行,其他行程正等待和就緒;過程:1.初始化:初始化行程。à2.執行:指令執行。à3.等待:等待特定事件發生。à4.就緒:行程正在等待指另一個處理器。à5.結束:該行程完成執行。
40. 行程控制表:
O.S管理process把process資訊及合成一個紀錄單位(PCB):1.process ID:唯一識別碼。2.process state:Initial、ready、running、terminate、….。3.process counter:指該行程制執行的指令。4.CPU Register Information。5.CPU Scheduling Algorithm:行程使用的排班法則。6.Memory Management Information:基底暫存、限制暫存…。7.I/O Information:配置行程輸出入裝置;例如:磁帶等等…。8.Accounting:CPU使用狀態。
41. Context Switch(內容轉換):
行程被迫方器,則先把資料先保存到PCB再載入新的行程。
42. 排班佇列:
1.工作佇列:裝置上等待的主記憶體行程組成。2.就緒佇列:等待執行的行程”Link List”前後保存PCB指標。3.等待某I/O裝置上的行程串列”稱為裝置佇列”。
43. 排班佇列種類:
依照排班次序重佇列選取行程:1.長期排班:選取行程載入記憶體,頻率不平凡,作時間相隔長。2.短期排班:重記憶體中選取已準備好的了,執行頻率過高。3.中期排班:將優先權低或執行頻率過長先移走。
44. CPU調度演算法:橫量標準:
1.CPU utilization:CPU使用率。2.Throughput:單位時間內完成的工作。3.Waiting time:process待在read queue時間總和。4.Turnaround time:process交付系統完成時間。5.Respone time:process交付系統,系統產出第一個訊息回應時間。
45. CPU Seheduling Algorithms:CPU調度法的種類:
1.FIFO先進先出:process達到時間越小,優先獲取CPU:平均等待時間A.W.T/平均回復時間A.T.T。2.SJF最短優先:所需要的CPU time衡量,越小越先取得。3.SRJF對短剩餘時間優先:比SJF好但是Context switch時間較多(常用於及時、交談式等等系統)。4.Priority Scheduling優先排班法則:挑選Ready Queue(準備排序)中highest priority最高優先權之process獲得CPU,若有多個priority相同則用FIF(用priority決定順序)。5.Round-Robin(RR)循環:所有的CPU使用相同的時間,如超過時間則放棄CPU等待下一個循環。6.Multilevel Queue(多重佇列):把Ready Queue拆成許多Queue採多,priority可搶奪資源法則。7.Multilevel Feedback Queue:和Multilevel方法一樣的Queue允許process可在各Queue之間移動,可避免Starvation(飢餓)。
46. Summary摘要:
1.preemptive先占資源:SRJF、RR、Preemptive、Multilevel Queue。2.Non-preemptive 不是先占資源: Multilevel Feedback Queue。3. Starvation(飢餓):SJF、SRJF、Preemptive and Non-Preemptive、Multilevel Queue。4.Non-Starvation(非飢餓):FIFO、RR、Multilevel Feedback Queue。5.Fair公平:FIFO、RR。
47. Thread執行:
為CPU執行的一個單位,又稱Lightweight process和process的相異處:Tack的Thread可共享的包括有,記憶體、檔案、系統。
48. Thread 種類:
1.User-Level Thread:所有的執行旭和排班都在使用者空間完成,不需要核心介入。2.Kernel-Level Thread:由作業系統直接支援,執行續的產生排班和管理由核心控制。
49. Thread Pool(執行續池):
當request進來時分為1.工作池中剩餘Thread:給予thread及request。2.工作池中無剩餘Thread:需Waie直到有Thread閒置。
50. Deadlock:
死結條件有:1. Mutual exclusion (互斥):只允許一個process使用。2.Hold & Wait(持有並等待):持有部分資源,有在等待其他資源。3.No preemptive(不可搶奪):不能取其他process所有資源,除非自願放棄。4.Circular waiting(循環並等待):互相等。
51. 死結處理方法:
1.打破Mutual exclusion:不容易資源性質無法被打破。2.打破Hold & Wait:無法完成必須空手,不可持有資源,P要提出資源前,先把所有資源先放掉。3.打破No preemptive:變成可以搶奪。4.打破Circular waiting:給客資源獨立編號,process以編號遞增的方式申請。
52. 死結偵測:
可能存在死結則O.S需檢測系統是否有死結若有死結recovery修改成Wait-for Graph,利用死結偵測演算法:當M個資源N個Process所需時間複雜度為O(m*📷)。
53. 程序間溝通:
1.獨立行程:行程執行不會影響其他行程。2.合作行程:會影響其他行程,因為要和其他行程溝通而產生行程溝通。
54. 行程溝通架構:
共享記憶體->存取時間不同而有不同結果(競爭情況)->(解決)同間只能一個行程使用->用Critical Section管制(C.S.臨界區間)共項變數存取區域設計,管理存取共享資料同時間只允許一個;(R.S.):剩餘時間,不想進入臨界區間時則存在R.S。
55. Process程式片段:
()Entry Section->C.S.->()Exit Section->R.S.
56. C.S.特質:
1.互斥:只允許一個行程。、2.可進行性:R.S不能妨礙其他想進入C.S.行程。3.有限性等待:進入C.S.最多等(n-1)次不會有無限等待。
57. Semaphore(號誌):
解決同步問題(初始值為1):Wait(s)、Signal(s)。
58. 如果兩種可能稱為二元號誌(binary Semaphore)。
59. Counting Semaphore計算信量號:
可能為1、-1、0…-n表示有n個process在Wait中;利用Block、Wakeup系統呼叫及佇列,利用Binary Semaphore製作。
60. 記憶體管理:
記憶體空間(free blocks)不連續的使用(AV List)管理。1.記憶體管理策略:AV List管理。1-1:First fit :free block size>=n為止。1-2.Best fit:free block size>=n最小size-n者。1-3.Worst fit:free block size>=n最大者。1-4:Next fit:浪費時間,前面已經搜尋過了。
61. 記憶體經常發生的問題:
1.外部碎裂:可以用的空間大小>過程記憶體卻不能配置。2.內部碎裂:系統配置記憶體>Process需求空間。
62. 解決記憶體問題:
1.Multiple Base/Limit Register Set(多重基底限制占存器)把程式猜成小部分存放。2.Compaction(壓縮):移動執行中的process,使用不連續的Free block ,合成一個連續可用空間。3.Paging Memory Management(分頁記憶體管理,分為實體記憶體:Physical Memory:視一組frame合大小相同。邏輯記憶體:Logical Memory:視為一組頁面集合。
63. TLB關聯式暫存器:
存放Register佔空間,Memory太慢,折衷方案TLB。
64. Segment Memory Management(分段記憶體管理):
Logical Memory視為一組段 Segment組合Main 、Sub、Data。Logicalàphysical(需要加法器、比較器、蒐尋器)。
65. 虛擬記憶體:
允許程式大小>實體記憶體,仍可運行;優點:不受記憶體空間限制。2.提高多元程式規劃分支度(Multiprogramming degree)。3.載入程式到記憶體I/O減少。4.不用擔心記憶體大小。
66. 虛擬記憶體做法:
1.Dyamic loading(動態載入),技巧為Overlay,需要指令時再載入就好。做法2:Demand Paging(需求分頁):載入部份分頁,其他頁面以page fault 處理載入。
67. 虛擬記憶體效能評估:由存取時間效能決定:
(1-頁面缺失頻率)*正常的Memory access time +頁面缺失*(Page fault process time :頁面缺失處理時間)。
68. Page Replacement Algo(頁面替換):
當page fault發生且記憶體中無可用頁框,需Victim page(犧牲頁面)。
69. Page Replacement Algo步驟:
1.選出犧牲頁面。2.將犧牲頁面移出記憶體到disk。
70. Page Replacement Algo種類:
1.FIFO(先進先出):先載入page,先換出去。2.OPT(最佳法則):替換長期不用頁面。3.LRU(最近不常用):替換最近不常用頁面。4.LRU近似法則:需要大量硬體支援才能有LRU近似法則。
71. Frequency of reference:
紀錄頁面參考值:1.LFU:最小值 Victim page。2.MFU:最大值當 Victim page。
72. 採用需求分頁可能發生問題(Thrashing)猛移現象:
73. 解決猛移現象:
1.Work set Model:利用Memory存取局部特質,預估process大小,用working set分配大小:1-1.時間局部:最近參考,不久後又要參考。1-2.空間局部:被參考程式、附近程式頁可能被參考。2. page fault frequency增加上下限,合理的範圍避免猛移現象的發生。
74. 磁碟管理:
1.Free space management:
1-1 Bit Vector:給予disk上各區塊Block額外的bit找出連續的free block(即連續三個零)。1-2Link List:free block以link串接。1-3:Combination:用n個空間組合在一起。1-4Counting :將link list加在一個空間儲存連續的free block。
75. Allocation Methods (磁碟配置):
1.contiguous Allocation(連續配置):當一個檔案大小為n個Block,則O.S.須找到>=n個的”連續的”free block就即可配置。2.Linked Allocation(連結配置): Allocation:當一個檔案大小為n個Block,則O.S.須找到>=n個的free block就即可配置。3.Index Allocation(索引配置):用index block將指標組合在一起,每個檔皆有自己的index block。
76. 磁碟運作速度:
由下列三項組成:1.seek time:磁碟到track時間。2.Latency time:磁碟到磁頭下。3.Transfer time:資料在記憶體和disk傳輸時間。
77. Disk seheduling algo :
磁碟調度演算法種類:1.FCFS先來先服務。2.SSJF最近的Track先服務。3.SCAN掃描法。4.LOOK類似SCAN但不碰到底。5.C-SCAM:單項服務,快速拉回。6.C-LOOK類似LOOK但是單向。
78. RAID:
CPU效能快速提升,但disk I/O過慢會造成CPU idle time提升由多個實體磁碟機,組成一個邏輯磁碟機,節由RAID,降低I/O存取時間。
79. RAID 0(stripting):
最快磁碟陣列。
80. RAID 1(mirror):
2個相同的disk,且存放相同資料。
81. RAID 0+1:
結合RAID0和RAID1。
82. RAID 2:
使用ECC(Error-correcting code)漢明碼記錄。
83. RAID 3:
採用相同位元交錯校正。
84. RAID 4:
RAID 3 相似。
85. RAID 5:
不會把資料放在同一位子,避免無法修正。
86. RAID 6:
同位元檢查+所羅門代碼,可以2台disk損壞。
87. 軟體種類:Application(應用軟體):
1.免費軟體:免費使用,版權所屬。2.公共領域軟體:免費軟體,無所有權。3.Open source software:免費可修改。4.共享軟體:免費但有時間限制,須付費註冊。5.試用軟體:試用一段時間後,須付費購買。System Software(系統軟體):System program系統程序。
88. Assembler 組譯器:
assemble source ->assemble->object code-> linker/loader ->load to memory。
89. Interpreter 直譯器:
source code-> interpreter->output。
90. Compiler 編譯器:
source program->compiler。
91. Marco巨集開放副程式:
已被定義過的形成本文片段,遇到巨集呼叫將此成是本文插入原始呼叫處。
92. Subroutine 封閉式副程式:
副程式->(控制權)到->原程式。
93. P-code compiler:
source cod->(P-code)compile->(P-code)object code。
94. Java compiler :
source->java compiler->Byte code->1.應用:裝有Java interpreter。2.程式: .class的檔案。
95. CGI:
共用閘道介面:動態HTML。
96. Stack and Queue堆疊與佇列:
1.stack:先進先出、先進後出。2.先進先出。
97. Stack操作:
1.creat(s):建立空的(s)、2.push(i、s):把i放進s、stack中TOP端。3.isempty(s):判別s是否為空。4.isfull(s):判斷s是否滿。Top(s):傳回top元素(不用刪)。5.pop(i、s):取出s中的i刪除。
98. Queue操作:
1.weate(Q):建立空佇列Q。2.add(item、Q):item加入Q尾端。3.delete(item、Q):移走Q前端元素給item。4.isEmpty(Q):判別Q是否為空。5.isFull:判別Q是否為滿。
99. OSI網路7層:
7.應用:Http、FTP、www。6.表達:加密、壓縮。5.交談:SMTP、DNS。4.傳輸:TCP、UDP。3.網路:路由器、閘道器。2.資料連結:橋接器、交換器。1.實體層:網卡、網路線、集線器、中繼器、數據機。
100. 雙絞線:
無遮蔽:UTP、有遮蔽:STP。
101. Class:
class A:1-126(國家)、class B:128-191(跨國)、class C:192-223(企業)、class D:224-239(特殊)。Class E:240-255(保留:留給實驗)。
102. IPV4、IPV6轉換技術:
dual-stack、tunneling、NAT-PT。
103. TCP/UDP:
提供IP環境下數據可靠傳輸;電腦之間傳輸應用,將連接埠編號和IP結合起來稱為Socket;網路透過IP是別電腦、應用程式透過連接埠,兩者結合稱為Socket,ARP將IP找到MAC。
104. ICMP:
檢查IP是否有錯誤。
105. Tracert:
找到目的端IP位子,經由路由器。
106. DNS:
網路存在地方(樹狀結構)。
107. FQDN:
把數字轉換成好記的文字。
108. Repeater(中斷器):
恢復訊號強度。
109. Hub(集線器):
提供多組RJ-45街頭共享頻寬。
110. Bridge(橋接器):
網路分割。
111. Switch(交換器):
多埠的hub但可以識別電腦位子、避免碰撞資料。
112. Routing(路由器):
由標頭,找到最佳路徑。
113. Gateway(閘道器):
連結不同的網路系統。
114. 區域網路:
LAN,公司內部之間通訊。
115. 都會網路:
MAN,都市之間網路。
116. 廣域網路:
WAN,國與國之間通訊。
Comments