top of page
作家相片Ruiqing Guo

計算機概論筆記

已更新:2019年6月1日

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)猛移現象:

在Multiprogramming採demand paging,若頁面不足,頁面缺失,需搶奪其他行程頁面,CUP使用下降,O.S.引進更多行程,造成頁框不足。


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,國與國之間通訊。


1,122 次查看0 則留言

Comments


bottom of page