存儲器:
進階存儲器容量一般較小,而低級存儲器容量較大。
寄存器:
中央處理器的一部分,是有限存貯容量的高速存貯部件,可用來暫存指令、資料和位址。是CPU必須的
是中央處理器内的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、資料和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程式計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
Cache緩存:
為了彌補CPU與記憶體之間運算速度的差異而設定的的部件,并不是每個CPU都有(明顯例子是奔騰和部分賽揚間差異)
高速緩沖存儲器,是位于CPU與主記憶體間的一種容量較小但速度很高的存儲器。由于CPU的速度遠高于主記憶體,CPU直接從記憶體中存取資料要等待一定時間周期,Cache中儲存着CPU剛用過或循環使用的一部分資料,當CPU再次使用該部分資料時可從Cache中直接調用,這樣就減少了CPU的等待時間,提高了系統的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache),L1 Cache內建在CPU内部,L2 Cache早期一般是焊在主機闆上,現在也都內建在CPU内部,常見的容量有256KB或512KB L2 Cache。
補碼:
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符号位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
Cache:高速緩存
1.直接映像:Cache中隻能存放0--n塊且每塊隻有一個(不可能存在兩個塊0),如果1區0塊存進Cache中的0塊了,那麼其他區的0塊就沒辦法往Cache中存入了。是以已知塊号就能确定區号!固隻需要比較區号是否相等即可!
優點:位址映象方式簡單,資料通路時,隻需檢查區号是否相等即可,因而可以得到比較快的通路速度,硬體裝置簡單。
缺點:替換操作頻繁,命中率比較低。
這種方式的塊沖突機率較高,當稱序往返通路兩個互相沖突的塊中的資料時,Cache的命中率将急劇下降,因為這時即使Cache中有其他空閑塊,也因為固定的位址映像關系而無法應用。
2.全相連映像:主存與Cahce存儲器均分成容量相同的塊。允許主存中的任意一塊可以調入Cache存儲器中的任何一塊空間中。
優點:命中率比較高,Cache存儲空間使用率高。
缺點:通路相關存儲器時,每次都要與全部内容比較,速度低,成本高,因而應用少。
這種方式隻有當Cache中的塊全部裝滿後才會出現塊沖突,是以塊沖突的機率低,可達到很高的Cache命中率;但實作很複雜。
3.組相聯映像:是前面兩種方式的折中,即将Cache中的塊再分成組。規定組采用直接映像方式而塊采用全相聯方式。通過直接映像方式來決定組号,在組内再用全相聯映像方式來決定Cache中的塊号。
優點:塊的沖突機率比較低,塊的使用率大幅度提高,塊失效率明顯降低。
缺點:實作難度和造價要比直接映象方式高。
判斷塊命中及替換算法上都要比全相聯方式簡單,塊沖突的機率比直接映像的低,其命中率也介于直接映像和全相聯映像方式之間。
存儲管理
頁式存儲:
将一個程序的位址空間劃分成若幹個大小相等的區域,稱為頁。相應地,将主存空間劃分成與頁相同大小的若幹個實體塊。在為程序配置設定主存時,将程序中若幹個頁分别裝入多個不相鄰的塊中。
根據邏輯位址中的頁号與頁表長度寄存器對比,如果頁号大于等于頁表長度寄存器,則通路越界,産生越界中斷。若未出現越界,則根據頁表寄存器中的始址和頁号計算頁表項中的位置,得到該頁的實體塊号,裝入實體位址寄存器中,頁内位址不變
優點:頁表對程式員來說是透明的,位址變換快,調入操作簡單;
缺點:各頁不是程式的獨立子產品,不便于實作程式和資料的保護。
段式存儲:
作業的位址空間被劃分成若幹個段,每個段是一組完整的邏輯資訊,如有主程式段,子程式段,資料段及堆棧段等,每個段都有自己的名字,都是從0開始編址的一段連續的位址空間,各段長度不等。
優點:消除了記憶體零頭,易于實作存儲保護,便于程式動态裝配;
缺點:調入操作複雜,位址變換速度慢于頁式存儲管理。
段頁式存儲:
先将整個主存劃分成大小相等的存儲塊,将使用者程式按程式的邏輯關系分為若幹個段,并為每個段賦予一個段名,再将每個段劃分成若幹頁,以頁為機關離散配置設定。
缺點:
1,段頁式管理将段式和頁式兩種方式相結合,互相取長補短,充分發揮了它們的優點。
2,段頁式虛拟存儲器管理方案具有空間浪費小,存儲共享容易,存儲保護容易,能動态連接配接的特點。
3,但由于管理軟體的增加,複雜性和開銷也随之增加,需要的硬體及占用的内容也有所增加,使得執行速度大大下降。
對比:
總線帶寬計算
時鐘頻率:“若幹次周期每秒”
總線寬度:該總線可同時傳輸資料的位數,好比是車道容許并排行走的車輛的數量
總線帶寬:這條總線在機關時間内可以傳輸的資料總量,它等于總線位寬與時鐘頻率的乘積。
總線帶寬=(總線位寬/8)*總線時鐘
流水線技術
不需要額外增加太多硬體的情況下,增加處理器吞吐量、提高處理器工作速度的一種常用的有效技術
分類:運算流水線(各段與一個統一的時鐘同步)、指令流水線(需要不斷訪存,所需時間不确定,難以用統一的時鐘控制各段工作)
特點:
1.每個子過程稱為“級”、“段”;“級”數稱為流水線的“深度”
2.需要有“通過時間、裝入時間”,之後進入穩定狀态
3.不能縮短單個任務的相應時間,可以提高吞吐率
4.受限于最慢流水線段的運作速度。是以,各個功能段所需時間應盡量相等
5.适合于大量重複的處理過程
6.多任務并行處理
7.實作子過程的功能所需時間盡可能相等,避免因不等而産生處理的瓶頸,形成流水線的斷流
8.指令流不是順序執行時,回事流水過程中斷。再形成流水過程需“通過時間”。要提高效率
最大吞吐率取決于流水線中最慢一段所需的時間,是以該段稱為流水線的瓶頸
消除瓶頸:細分瓶頸段;重複設定瓶頸段
提高指令級并行的技術
1.亂序執行:
跳過相關的指令去執行後面不相關的指令,使指令的執行順序不再按原程式的順序進行
要求指令排程算法必須保證程式的運作結果和按照順序執行時的結果相同
指任務從流水線流出的次序同流入流水線的次序不一樣,也稱為亂序流動或錯序流動。性能會下降。
工作原理:在發生資料相關時,要允許沒有資料相關的後續指令進入相關指令所占用的功能段執行,并超越相關的指令繼續往前流動
相關:指令間存在的依賴關系。
冒險:因相關引起的指令流水線異常現象
使用亂序流動時會産生冒險
2.寄存器重命名
3.推測執行
解決問題:
1.訪存沖突
2.流水線相關處理:數相關、轉移相關、中斷處理
遠端登入協定:
1) Telnet(Telecommunication Network Protocol):
Telnet是通過用戶端與伺服器之間的選項協商機制,實作了提供特定功能的雙方通信。
2)Rlogin
由于用戶端程序和伺服器程序已經事先知道了對方的作業系統類型,是以也就省去了選項協商機制。
總的來說,它與telnet協定類似,不過内部實作要相對簡單。
3)SSH(Secure Shell)
優點:(1)SSH是比較可靠的的遠端登入和其他安全服務的協定,它采用了資料加密機制,能夠防止DNS欺騙和IP欺騙。(2)所傳輸的資料是經過壓縮的,是以相對來說加快了傳輸速度。
SSH協定是建立在應用層和傳輸層上的安全協定,主要包括三個部分:(1)傳輸層協定内容,提供認證,資料的完整性檢查等功能。(2)使用者認證協定層,它運作在傳輸層上,主要實作了通信過程中的身份認證,認證方式包括密碼認證,密鑰認證等。(3)連接配接協定層,負責配置設定加密通道到邏輯通道上,運作在使用者認證協定層上。
擴充:
ARP((Address Resolution Protocol)):位址解析協定,是根據IP位址擷取實體位址的一個TCP/IP協定
WEP(Wired Equivalent Privacy),有線等效保密(WEP)協定是對在兩台裝置間無線傳輸的資料進行加密的方式,用以防止非法使用者竊聽或侵入無線網絡
網絡安全:
1.實體安全:
地震、火災、裝置損壞、電源故障、被盜
裝置備援、線路備援、資料備份
2.傳輸安全:
在傳輸線路上竊取資料
VPN加密技術
3.網絡互連安全:
Internet、系統内網絡、系統外網絡、内部區域網路、撥号網絡
防火牆、實體隔離、AAA認證
4.系統安全:
作業系統的脆弱性、漏洞、錯誤配置
漏洞掃描、入侵檢測、病毒防護
5.應用安全:
應用軟體、資料庫、包括資源共享、Email、病毒
認證、病毒防護、資料備份、災難恢複
6.管理安全:
管理者權限、密碼、錯誤操作、資源卵用、内部攻擊、内部洩密
認證、通路控制、授權
多媒體:
1.感覺媒體:
人的感官能感覺到的
聲音、文字、圖像、質地、氣味、溫度、壓力……
2.表示媒體:
為了加工感覺媒體而構造出來的一種媒體
各種數字化編碼(人造媒體)、各種媒體檔案
3.展現媒體:
感覺媒體與通信電信号進行轉換的一類媒體。包括:輸入展現媒體、輸出展現媒體
I/O工具與裝置、音箱、顯示器
4.存儲媒體:
存放表示媒體的實體實體
紙、唱片、錄像帶、錄音帶、膠片、記憶體
5.傳輸媒體:
将表示媒體從一處傳送到另一處的實體傳輸媒體
通信電纜、光釺、電磁控件
軟體工程
用于解決“軟體危機”
軟體工程過程:PDCA(plan、do、check、action):軟體規格說明、軟體開發、軟體确認、軟體演進
軟體生命周期:軟體的定義、開發、運作維護(持續時間最長,花費代價最大)
6個活動階段:可行性研究與計劃制定、需求分析、軟體設計(結構設計、資料設計、接口設計、過程設計)、編碼、測試、運作維護
三要素:方法、工具、過程
原則:抽象、資訊隐蔽性、子產品化、局部化、确定性、一緻性、完備性、可驗證性
結構化分析方法:
結果:分層的資料流圖(DFD)、資料字典(DD)、加工邏輯說明
結構化設計方法:
資訊流:變換流、事務流
設計原則:分解-協調、自頂向下、資訊屏蔽與抽象、一緻性、明确性、高内聚低耦合、扇入扇出系數合理、子產品規模适當
詳細設計:
包括:代碼設計、輸入設計、輸出設計、處理過程設計、使用者界面設計、安全控制設計
軟體測試:
目的:發現錯誤
方法:人工測試、機器測試
實施:單元測試(子產品:白盒測試法)、組裝測試(內建)、确認測試、系統測試
白盒測試:結構測試
黑盒測試:功能測試
程式調試:
找出原因、具體的位置,進行改正
步驟:錯誤定位、修改設計及代碼、回歸測試
方法:強行排錯法、回溯法、原因排除法(演繹、歸納、二分)
靜态調試(主要)、動态調試(輔助)
風險暴露:風險曝光度
測量的是資産的整個安全性風險,它将表示實際損失的可能性與表示大量可能損失的資訊結合到單一數字評估中。
在形式最簡單的定量性風險分析中,風險曝光度可透過将風險可能性及影響相乘算出。
風險曝光度(RisjExposure)=錯誤出現率(風險出現率)*錯誤造成損失(風險損失)
風險的優先級通常是根據風險暴露設定
資料存儲:
棧:由編譯器在需要的時候配置設定,在不需要的時候自動清除的變量的存儲區。先進後出。裡面的變量通常是局部變量、函數參數等。
堆:由new配置設定的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式員沒有釋放掉,那麼在程式結束後,作業系統會自動回收。
自由存儲區:由malloc等配置設定的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。
全局/靜态存儲區:全局變量和靜态變量被配置設定到同一塊記憶體中。全局變量、靜态局部變量、靜态全局變量
常量存儲區:這是一塊比較特殊的存儲區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改,而且方法很多)。
代碼區:存放函數體的二進制代碼。
虛拟存儲器:
目的:邏輯上擴充主存容量
使用者角度,系統具有的記憶體空間比實際容量大的多(請求調入功能+置換功能,邏輯上對記憶體容量進行擴充)
是一個位址空間,程序通路的邏輯位址空間,而不是實體的主存空間
邏輯容量=記憶體容量+外存容量;運作速度接近記憶體速度;每位成本接近外存
基礎:局部性理論
1.時間局限性:循環操作
2.空間局限性:順序執行
實作方式:離散配置設定存儲管理方式的基礎上
1.請求分頁系統:
請求調頁、頁面置換。置換:以頁(固定常)為機關
請求分頁的頁表機制、缺頁中斷機構、位址變換機構
2.請求分段系統:
請求調段、分段置換。置換:以段(長度可變,動态分區配置設定)為機關
請求分段的段表機制、缺段中斷機構、位址變化機構
特征:
1.離散性(最基本):記憶體配置設定采用離散配置設定,是基礎。
2.多次性:作業被分多次調入記憶體。以離散性為基礎
3.對換性:作業的運過程中換進、換出。以離散性為基礎
4.虛拟性(表現):邏輯上擴充記憶體容量。以多次性、對換性為基礎
硬體支援:
1.頁表機制:将邏輯位址變換為記憶體的實體位址。
狀态位(存在位):是否已調入記憶體。通路參考
通路字段:一段時間内被通路的次數,或最近已有多長時間未被通路。置換參考
修改位:調入記憶體後,是否被修改過。置換該頁時是否需要寫回外存
外存位址:在外存上的位址,一般是實體塊号
2.缺頁中斷機構:
步驟:保護CPU環境、分析中斷原因、轉入缺頁中斷處理程式進行處理、恢複CPU環境
與一般中斷差別:
1.一般中斷:每執行完一條指令後邊去檢查中斷請求,相應中斷;
缺頁中斷:在指令執行期間,發現要通路的指令、資料不在記憶體時産生、處理
2.一條指令執行期間,可能産生多次缺頁中斷
3.位址變換機構
步驟:
1.快表中找到,修改通路位;
2.寫指令,修改位改為1;
3.塊表無,則到記憶體查頁表找。根據狀态位,判斷該頁是否已調入記憶體:(1)已調入記憶體,寫入快表;(2)未調入,産生缺頁中斷,從外存中調入
頁面配置設定:
1.程序配置設定實體塊:
1.程序所需最小實體塊數;(指令的格式、功能、尋址方式)
2.配置設定的實體塊數目是固定?可變;
3.不同程序配置設定實體塊數目的算法:平均配置設定?按程序大小的比例配置設定
2.頁面配置設定政策、置換政策
配置設定政策:固定配置設定政策、可變配置設定政策
置換政策:全局置換、局部置換
分類:
固定配置設定局部置換政策:配置設定給程序的記憶體空間不變
可變配置設定全局置換:最容易。OS自身保持一個實體塊隊列,當程序發生缺頁,将OS的空閑實體塊隊列取出一塊配置設定給程序;OS的空閑實體塊用完,需要調出時,可能是系統中任一程序的頁
可變配置設定局部置換
3.配置設定算法
平均配置設定算法、按比例配置設定算法(按程序的大小,向上取整)、考慮優先權的配置設定算法(按比例+程序優先權)
頁面調入政策
預調頁政策(順序計算)、請求調頁政策(虛拟存儲器多使用)
外存:檔案區、對換區(速度高)
1.足夠的兌換區空間:全部從對換區調入所需頁面
2.兌換區不夠:凡不被修改的檔案,直接從檔案區調入;可能被修改的部分調到對換區
3.UNIX方式:未被運作過的頁面從檔案區調入;運作後調出的頁面,放對換區,下次調入,從對換區調入。允許程序間頁面共享
頁面置換算法:
算法好壞影響系統的性能,不适當的算法會導緻程序發生“抖動”/Thrashing/颠簸/陷阱/Belady。
1.最佳置換算法:性能最好,無法實作。淘汰的頁面是永不使用,或在最長時間内不再被通路的。
2.先進先出算法:性能最差,最直覺,實際應用很少。淘汰駐留時間最長的頁面,對列實作
Belady現象:即陷阱現象。配置設定的頁面數增多,缺頁次數反而增加
3.最近最久未使用算法:LRU算法(least recently used)。每個頁面一個通路字段,記錄一個頁面自上次被通路依賴所經曆的時間t,淘汰t值最大的
硬體支援:移位寄存器、堆棧
4.Clock置換算法:
簡單的Clock置換算法:最近未用算法NUR。被通路過,通路位置為1;淘汰時,若通路位是0,換出,否知,重新置為0,暫不換出,重複執行(FIFO)
改進型Clock置換算法:增加了一個置換代價(修改位)。最近未通路過+未被修改過的頁面。
置換優先級:未通路+未修改(不改變通路位) >> 未通路+已修改(通路位=0) 重複執行,直至找到淘汰頁
5.最少使用置換算法(LFU:least frequently used):移位寄存器
6.頁面緩沖算法(PBA:page buffering algorithm):未修改淘汰連結清單+已修改淘汰連結清單,仍留在記憶體中
7.随機淘汰算法:随機選擇某個使用者的頁面
8.輪轉法:循環
影響缺頁中斷率的因素:配置設定給左耳的主存塊數、頁面的大小、排程算法、作業本身的程式編制方法
缺頁中斷時間=缺頁中斷服務時間+缺頁讀入時間(尋道時間、旋轉時間、資料傳送時間)+程序重新執行時間
主存中的頁面數>=總頁面數/2
工作集:某段時間間隔内,程序實際要通路的頁面的集合
不同時間t,工作集大小不同,包含的頁面數也不同
抖動:程序大部分時間用于進行頁面的換入/換出,幾乎不能完成任何有效工作
記憶體中引入過多的程序,産生缺頁中斷的程序一直處于等待狀态,就緒隊列空
預防:調節多道程式度
1.局部置換政策:某個程序抖動,不會引起其他程序抖動。無法根本上解決問題,磁盤I/O等待,引起其他程序缺頁中斷處理時間
2.CPU排程程式中引入工作集算法:記憶體足夠容下程序的工作集,才調入新作業
3.L=S準則:産生缺頁的平均時間=系統處理缺頁的平均時間,CPU使用率最好
4.挂起若幹程序:優先權、占用記憶體大、執行的剩餘時間最長的程序
請求分段
分段:資訊的邏輯機關,一條指令隻可能在一個分段,被傳送的一組資訊也在一個分段
1.段表機制
存取方式:隻執行、隻讀、允許讀寫
通路字段:被通路的頻繁程度
存在位:是否調入記憶體
增補位:運作過程中是否進行過動态增長
2.位址變換機構
共享段表:共享程序計數、存取控制字段(不同程序,權限不同)、段号
分段保護:越界檢查、存取控制檢查、環保護機構(低編号高優先級)、空間模型
缺頁數目=置換數目+作業配置設定的實體塊數