據的表示
最小的數據單位:b最小的存儲單位:byte
進制的轉換
- R進制轉十進制:將每一位數字用$R^k$表示然后相加,k與該位與小數點的距離有關,小數點左邊第一位為0,右邊第一位為-1,往左遞增,往右遞減如:二進制數 100.01=12^4+12^2+1*2^{-2}$
- 十進制轉R進制: 整數位使用短除法,即將十進制數除以R再取余,直至余數為零,然后將余數由下往上按順序排列,小數位乘以R,每乘一次就取它的整數位(整數位為零時就取零),直至小數位為零,然后將取得的整數位由上往下排列即可。
- 二進制轉八進制及二進制轉十六進制:將二進制數以小數點為界向左及向右每三個一組(轉八進制),或者每四個一組(轉十六進制),缺的數用零來補充,然后依次轉化為相應的進制數然后按順序排列即可。
原碼反碼補碼移碼
- 原碼:將數值轉換為二進制數,并且該二進制數的首位(最高位)表示正負,0表示正,1表示負,不足八位的就在首位與二進制數中間用零填充。例:$[-1]_{原}=10000001$
- 反碼:正數的反碼為本身,負數的反碼為其原碼除首位不變外全部取反原碼在計算機中進行加減不能得到正確的答案,而反碼的加減則符合事實
- 補碼:正數的補碼與原碼和反碼相同,負數的補碼即為其反碼加1補碼的運算也符合正確答案補碼的補碼就是原碼
- 移碼:將正數和負數的補碼首位取反,其余位不改變移碼的運算也符合正確答案
- 各自數值表示范圍:其中n一般等于8
| 整數 |
原碼 | $-(2^{n-1}-1) \sim 2^{n-1}-1$ |
反碼 | $-(2^{n-1}-1) \sim 2^{n-1}-1$ |
補碼 | $-2^{n-1} \sim 2^{n-1}-1$ |
浮點數
- 浮點數的概念:浮點數即科學計數法,如 00=1*10^3$ ; 其中,1為尾數,10為基數,3為指數
- 表示格式:階符+階碼+數符+尾數
- 計算機中浮點數的運算:當兩個指數不等的浮點數相加時,計算機會把低階浮點數的指數轉化為高階浮點數的指數,如: .010^3+1.1910^2$ ,計算機會將 .1910^2$ 轉化為 >10^2$ 轉化為 $0.119<.11910^3$ ,然后作和,然后結果規格化(將尾數的絕對值限定在區間[0.5,1]),如:得到 .301910^3$ 以后,要化為 .1301910^4$
- 浮點數所能表示的數值范圍主要由階碼決定,所表示的數值精度則由尾數決定
中央處理器(CPU)
CPU由運算器和控制器組成
- 運算器(ALU)累加寄存器(AC):專門存放算術或邏輯運算的一個操作數和運算結果的寄存器。能進行加、減、讀出、移位、求補等操作。是運算器的主要部分狀態寄存器(PSW):該部件用來存放兩類信息,一類是體現當前指令執行結果的各種狀態信息(條件碼),如有無進位、有無溢出、結果正負、信息是否為零等;另一類是存放控制信息,如允許中斷、跟蹤標志等
- 控制器程序計數器(PC):程序計數器中存放的是下一條指令的地址。由于多數情況下程序是順序執行的,所以程序計數器設計成自動加一的裝置。當出現轉移指令時,就需重填程序計數器指令寄存器(IR):中央處理器正在執行的操作碼表存放在這里,即當前正在執行的所有指令指令譯碼器(ID):將操作碼解碼,告訴中央處理器該做什么時序部件
尋址
- 立即尋址。操作數就包含在指令中
- 直接尋址。操作數存放在內存單元中,指令中直接給出操作數所在存儲單元的地址
- 寄存器尋址。操作數存放在某一寄存器中,指令中給出存放操作數的寄存器名。寄存器間接尋址。操作數存放在內存單元中,操作數所在存儲單元的地址在某個寄存器中
- 間接尋址。指令中給出操作數地址的地址
- 相對尋址。指令地址碼給出的是一個偏移量(可正可負),操作數地址等于本條指令的地址加上該偏移量
- 變址尋址。操作數地址等于變址寄存器的內容加偏移量。
CPU采用多種尋址方式是為了在效率和方便性上找一個平衡CPU根據指令周期的不同階段來區分內存中以二進制編碼形式存放的指令和數據指令最先進入到數據寄存器暫存起來,然后再拿到指令寄存器中,再交由指令譯碼器來解碼進而運算(交給運算器),而這一過程一結束,就會迅速提取程序計數器中的指令(即下一條指令),因此,程序計數器中存儲的始終是暫未執行的,下一條指令的“地址”在匯編語言程序中,程序員可以直接訪問通用寄存器以存取數據,可以訪問狀態字寄存器以獲取有關數據處理結果的相關信息,可以通過相對程序計數器進行尋址,但是不能訪問指令寄存器,即指令寄存器對用戶是完全透明的
計算機體系結構分類(Flynn)
體系結構類型 | 結構 | 關鍵特性 | 代表 |
單指令流單數據流SISD | 控制部分:一個 處理器:一個 主存模塊:一個 |
| 單處理器系統 |
單指令流多數據流SIMD | 控制部分:一個 處理器:多個 主存模塊:一個 | 各處理器以異步的形式執行同一條指令 | 并行處理機 陣列處理機 超級向量處理機 |
多指令流單數據流MISD | 控制部分:多個 處理器:一個 主存模塊:多個 | 被證不可能,至少是不實際 | 目前沒有,有文獻稱流水線計算機為此類 |
多指令流多數據流MIMD | 控制部分:多個 處理器:多個 主存模塊:多個 | 能夠實現作業、任務、指令等各級全面并行 | 多處理機系統 多計算機 |
CISC和RISC
指令系統類型 | 指令 | 尋址方式 | 實現方式 | 其他 |
CISC(復雜) | 數量多,使用頻率差別大,可變長格式 | 支持多種 | 微程序控制技術(微碼) | 研制周期長 |
RISC(精簡) | 數量少,使用頻率接近,定長格式,大部分為單調期指令,操作寄存器,只有Load/Store操作內存 | 支持方式少 | 增加了通用寄存器;硬布線邏輯控制為主;適合采用流水線 | 優化編譯,有效支持高級語言 |
流水線
- 基本概念:流水線是指在程序執行時多條指令重疊進行操作的一種準并行處理實現技術。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度
- 周期計算流水線周期(操作周期)為執行時間最長的一段計算公式:1條指令執行時間+(指令條數-1)*流水線周期理論公式:(t1+t2+··+tk)+(n-1)*△t實踐公式:(k+n-1)*△t
優先使用理論公式
- 吞吐率計算定義:指單位時間內流水線所完成的任務數量或輸出的結果數量基本公式:$TP=\frac{指令條數}{流水線執行時間}$流水線最大吞吐率:$TP_{max}=\lim\limits_{n\to\infty}\frac{n}{(k+n-1)\triangle t}=\frac{1}{\triangle t}$
- 加速比定義:完成同樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比公式:$S=\frac{不使用流水線執行時間}{使用流水線執行時間}$
- 效率定義:流水線的設備利用率。在時空圖上,流水線的效率定義為n個任務占用的時空區與k個流水段總的時空區之比公式:$E=\frac{n個任務占用的時空區}{k個流水段的總的時空區}=\frac{T_0}{kT_k}$
層次化存儲器結構
內存存儲外存的部分內容,cache存儲內存的部分內容,CPU只處理cache中的指令,cache的作用是精簡內存中重復出現的指令,提高CPU的執行效率,使得計算機的運算速度得到極大的提升;此外,結構中由上至下,速度越來越慢,但容量越來越大
Cache
- Cache的功能:提高CPU輸入輸出的速率,突破馮諾依曼瓶頸,即CPU與存儲器系統間數據傳送帶寬限制,在程序執行過程中,Cache與主存的地址映射是由硬件自動完成的
- 與cache相關的計算:如果以h代表Cache的訪問命中率,$t_1$表示Cache的周期時間,$t_2$表示主存儲器周期時間,以讀操作為例,使用“Cache+主存儲器”的系統的平均周期為$t_3$,則$t_3=h*t_1+(1-h)*t_2-h稱為失效率(未命中率)
CPU會在cache中尋找它需要的數據,如果不能找到,CPU就將前往內存中尋找,而chche的訪問命中率就是CPU需要的數據在cache中被找到的比例,未能找到的數據CPU將前往內存中進行再次尋找
- 內存與cache地址映射的三種方式直接映像:cache的區號與內存的區號一一對應全相連映像:cache的一個塊號可以對應多個內存的塊號,內存的一個塊號也可以對應cache的多個塊號組相連映像:兩種方式相結合的方法
這三種映射方式都是計算機硬件自動完成的,不是軟件
- 替換算法:替換算法的目的是使cache獲得盡可能高的命中率,有以下四種:隨機替換算法、先進先出算法、近期最少使用算法、優化替換算法
現代的計算機cache系統是分為了三個級別的,訪問時先從第一層開始訪問,直至三個級別的cache都被訪問完全時才會訪問內存
- 虛擬存儲器:即CPU在給出需要訪問的內存地址時,給出的并不是真正的物理地址,而是物理地址的抽象,虛擬存儲器是由主存-輔存兩級存儲器組成
- 時間局限性:如果某條指令被執行,則不久以后該指令很可能再次被執行;如果某條數據結構被訪問,則不久以后該數據結構很可能再次被訪問。產生時間局限性的主要原因是程序中有大量的循環操作
- 空間局限性:一旦程序訪問了某個內存單元,不久以后,其附近的內存單元也要被訪問,即程序在一段時間內所訪問的存儲器空間可能集中在一定的范圍之內,其最常見情況就是程序的順序執行。工作集是指在某段時間隔內,進程所要訪問的頁面集合。雖然程序只需少量的幾頁內存就可以運行,但為了使程序更有效地運行,必須使程序的工作集全部在內存(主存儲器)當中,否則會使進程在運行中頻繁出現缺頁中斷,從而出現頻繁的頁面調入/調出現象
主存
分類
- 隨機存取存儲器DRAM (Dynamic RAM ,動態 RAM )——SDRAMSRAM (Static RAM ,靜態)
- 只讀存儲器MROM(Mask ROM ,掩模式 ROM )PROM(ProgrammabIe ROM,一次可編程 ROM)EPROM (Erasable PROM, 可擦除的 PROM)閃速存儲器 (flash memory ,閃存)
編址
- 概念:主存的編址就是把許多塊芯片組成相應的存儲器
- 一般表示方式如下圖,其中左圖一中的8表示它有8個地址空間,4表示每一個地址空間存儲了4位的信息
磁盤結構與參數
- 存取時間=尋道時間+等待時間(平均定位時間+轉動延遲)尋道時間是指磁頭移動到磁道所需的時間等待時間為等待讀寫的扇區轉到磁頭下方所需的時間
- 磁道一般分為許多個小的扇形區,即物理塊,磁頭在依次讀取這些物理塊時(磁頭必須依次讀取),會在讀取的同時將其存放進緩存區,緩存區可以是單個,也可以是多個,存放完成后會在緩存區花費時間進行處理,處理期間磁頭的讀取不會停止,因此,如果緩存區過少,就會出現讀取一個物理塊花費了一個周期甚至更長的時間
- 磁盤調度管理中,先進行移臂調度尋找磁道,再進行旋轉調度尋找扇區
總線
- 概念:總線是連接計算機有關部件的一組信號線,是計算機中用來傳送信息代碼的公共通道
- 內部總線:微機內部的,各個外圍芯片與處理器之間的總線,屬于芯片級別
- 系統總線:系統總線即為各個插線板和系統板之間的總線數據總線:如32位,64位等一次性能夠傳輸的位地址總線:假設該計算機的地址總線為32位,那就代表它的地址空間為^{32}$個字節控制總線:發送相應的控制信號的總線
- 外部總線:即微機和外部設備的總線
總線上的多個部件之間只能分時向總線發送數據,但可以同時從總線接收數據
可靠性
串聯系統
- 只要一個子系統失效,則整個系統都將失效
- 可靠性:累乘
- 失效率(近似):累加
并聯系統
- 少數子系統的失效將不會影響整個系統
- 可靠性:-(1-R_1)*(1-R_2)···(1-R_3)$
- 失效率:$\mu=\frac{1}{\frac{1}{\lambda}\sum_{j=1}^{n} \frac{1}{j}}$
n模冗余模型
- 數據輸入n個子系統中,它們各自得出自己的結果,然后匯總到表決器,表決器將遵循少數服從多數的原則,輸出大多數子系統得到的那個答案然后進行輸出
校驗碼
奇偶校驗碼
- 在編碼中增加一維校驗位來使校驗碼中1的個數為奇數(奇校驗)或偶數(偶校驗)
- 常用奇偶校驗碼:水平奇偶校驗碼、垂直奇偶校驗碼、水平垂直校驗碼
- 可以檢測出奇數位(出錯的位數)出錯的編碼,但不能發現偶數位出錯的情況
- 只能檢錯,不能糾錯
海明碼
- 利用奇偶性來檢錯和糾錯的校驗方法
- 設數據位是n位,校驗位為k位,則必須滿足:^k-1>=n+k$
例:求信息1011的海明碼
(1)^r\ge x+r+1$,確定校驗碼為三位:^3\ge4+3+1$.分別放在^0=1、2^1=2、2^2=4$位
x為信息位的個數
(2)列出校驗位公式
=2^2+2^1+2^0,6=2^2+2^1,5=2^2+2^0,3=2^1+2^0$
$r_2=I_4\oplus I_3\oplus I_2$
$r_1=I_4\oplus I_3\oplus I_1$
$r_0=I_4\oplus I_2\oplus I_1$
(3)根據公式得$r_2=0,r_1=0,r_0=1$
(4)將數據填入表格
7 | 6 | 5 | 4 | 3 | 2 | 1 | 位數 |
$I_4$ | $I_3$ | $I_2$ |
| $I_1$ |
|
| 信息位 |
|
|
| $r_2$ |
| $r_1$ | $r_0$ | 校驗位 |
海明碼- 知乎
循環冗余校驗碼
- 在發送端,先把數據劃分為組。假定每組 k 個比特
- CRC 運算在每組 M 后面再添加供差錯檢測用的 n 位冗余碼,然后構成一個幀發送出去。一共發送(k + n)位
- 幀檢驗序列 FCS:在數據后面添加上的冗余碼
- 僅用循環冗余檢驗 CRC 差錯檢測技術只能做到無差錯接受
- 可以檢錯,不能糾錯
輸入輸出(I/O)控制方式
- 輸入輸出系統是一組固化到計算機內主板上一個ROM芯片上的程序程序查詢方式一次只能讀/寫一個字CPU和I/O(外設)只能串行工作,CPU需要一直輪詢檢查由CPU將數放入內存中斷驅動方式I/0設備通過中斷信號主動報告I/0操作已完成CPU和I/0 (外設) 可并行工作CPU利用率得到提升由CPU將數放入內存直接存儲器方式(DMA)CPU和I/0 (外設) 可并行工作僅在傳送數據塊的開始和結束時才需要CPU的干預由外設直接將數據放入內存一次讀寫的單位為“塊”而不是字
CPU是在一個總線周期結束時響應DMA請求的,即不是DMA一請求CPU就響應,而是CPU在接收到DMA請求后,在該系統總線周期結束后進行響應,因為DMA控制器在需要的時候會代替CPU作為總線主設備,在不受CPU干預的情況下,控制I/O設備與系統主存之間的直接數據傳輸
indows 計算機名稱 長度 最長限制多少位
基礎理論知識技術原理
在Windows操作系統中,計算機名稱的最長限制為 15 個字符。這是因為計算機名稱在網絡中被用作標識符,并且通常遵循NetBIOS命名約定,該約定限制計算機名稱的長度為15個字符。如果超過這個限制,可能會導致一些網絡功能無法正常工作。因此,在為計算機命名時,請確保不超過這個字符限制。
NetBIOS (Network Basic Input/Output System) 是一種在局域網中進行計算機通信的軟件接口。在NetBIOS命名約定中,計算機名稱的最長限制是15個字符。這是因為在早期的NetBIOS規范中,計算機名稱被限制為15個字符以內,這個限制后來也延續到了Windows操作系統中。因此,無論是在局域網中的NetBIOS通信還是在Windows系統中,計算機名稱均受到了這一限制。
計算機名稱是在網絡中用于唯一標識計算機的名稱。在Windows操作系統中,計算機名稱通常由用戶在安裝操作系統或設置網絡時指定。計算機名稱在網絡中是非常重要的,因為它用于識別和通信。在局域網中,計算機名稱通常用于本地網絡內部的通信和資源共享。計算機名稱的長度通常有限制,例如在NetBIOS命名約定中,計算機名稱的最大長度為15個字符。
通過計算機名稱,用戶可以輕松識別不同計算機,進行文件共享、打印機共享等網絡功能。同時,計算機名稱也可以用于遠程訪問和管理計算機,例如通過遠程桌面服務。在設置計算機名稱時,通常需要確保其唯一性,避免與網絡中其他計算機重名,以免引起通信混亂或沖突。
?
NetBIOS(Network Basic Input/Output System)是一種早期用于局域網通信的協議,最初設計時對計算機名稱的長度進行了限制。這種限制最初出現的原因有幾個方面:
存儲限制:在早期的計算機系統中,存儲空間非常寶貴。為了節省存儲空間和提高效率,NetBIOS限制了計算機名稱的長度,使得在網絡通信中傳輸和存儲這些名稱更加高效。
硬件和軟件的限制:在早期的計算機和操作系統中,由于硬件和軟件的限制,對于長名稱的處理可能會比較困難或低效。因此,在設計階段就限制了計算機名稱的長度,以便適應當時的硬件和軟件環境。
網絡廣播限制:NetBIOS使用了廣播來進行一些網絡發現和通信操作,較短的名稱能夠減少網絡流量和沖突,提高了網絡性能。
雖然當今的網絡和操作系統已經發生了巨大的變化,但NetBIOS的命名約定中仍然保留了15個字符的限制。這種限制可能已經不再適用于現代網絡環境,但由于兼容性和歷史原因,這個限制仍然存在。
除了15個字符的限制外,NetBIOS命名約定還具有以下特點:
僅支持大寫字母、數字和一些特殊字符:NetBIOS計算機名稱只能包含大寫字母(A-Z)、數字(0-9)以及一些特殊字符,如連字符(-)。其余的特殊字符和小寫字母將被轉換為大寫字母。
不區分大小寫:NetBIOS對計算機名稱不區分大小寫,即使用戶輸入小寫字母,系統也會自動轉換為大寫字母。
唯一性:NetBIOS計算機名稱在局域網中必須是唯一的,否則可能導致命名沖突和通信問題。
單工作組內唯一性:在同一工作組(Workgroup)內,計算機名稱也必須是唯一的。如果在同一工作組內出現重名計算機,可能會導致網絡中的沖突和通信問題。
15字符截斷:如果用戶指定的計算機名稱超過15個字符,系統會自動截斷到前15個字符,以符合NetBIOS的命名約定。
這些特點結合起來構成了NetBIOS命名約定的基本規則,幫助確保網絡中計算機名稱的唯一性和可識別性。
現代社會,銀行卡已成為我們生活中不可或缺的一部分。那么,為什么銀行卡密碼通常是 6 位數呢?
首先,6 位數的密碼長度在安全性和易用性之間達到了一個平衡。它既提供了一定的安全性,又不至于過于復雜導致用戶難以記憶。
其次,6 位數的密碼可以通過計算機快速驗證,提高交易處理的效率。
此外,從心理學角度來看,人類的短期記憶能力有限,6 位數相對容易記住。
而且,6 位數的密碼組合數量足夠大,可以提供較高的安全性。
最后,6 位數的密碼在全球范圍內被廣泛接受和使用,具有通用性。
總之,銀行卡密碼設置為 6 位數是經過多方面考慮和權衡的結果,既保證了安全性,又兼顧了用戶的使用體驗和效率。我們在設置密碼時,應選擇不易被猜到的組合,并妥善保管好自己的銀行卡和密碼。