九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
程序是怎么跑起來的(上)

CPU

單元前問題:

程序是什么:指示計(jì)算機(jī)每一步動(dòng)作的一組指令

程序是由什么組成的:指令和數(shù)據(jù)(例如在C語言中:printf(“helloworld”);中,printf是指令,helloworld是數(shù)據(jù))

什么是機(jī)器語言:CPU可以直接識(shí)別并直接使用的語言

正在運(yùn)行的程序存儲(chǔ)在什么位置:內(nèi)存(硬盤和磁盤等媒介上保存的程序被復(fù)制到內(nèi)存后才能執(zhí)行)

什么是內(nèi)存地址:內(nèi)存中,用來表示命令和數(shù)據(jù)存儲(chǔ)位置的數(shù)值(內(nèi)存中保存命令和數(shù)據(jù)的場(chǎng)所,通過地址來標(biāo)記和指定。地址由整數(shù)值表示)

計(jì)算機(jī)的構(gòu)成元件中,負(fù)責(zé)程序的解釋和運(yùn)行的是哪個(gè):CPU

CPU的內(nèi)部結(jié)構(gòu)解析

CPU所負(fù)責(zé)的就是解釋和運(yùn)行最終轉(zhuǎn)化成機(jī)器語言的程序內(nèi)容

CPU和內(nèi)存是由許多晶體管組成的電子部件。通常成為IC(集成電路)

CPU包括:

寄存器:用來暫存指令,數(shù)據(jù)等處理對(duì)象。可當(dāng)作內(nèi)存的一種。一個(gè)CPU有20-100個(gè)寄存器。

控制器:把內(nèi)存上的指令,數(shù)據(jù)讀入寄存器。并根據(jù)指令結(jié)構(gòu)控制整個(gè)計(jì)算機(jī)。

運(yùn)算器:運(yùn)算從內(nèi)存讀入寄存器的數(shù)據(jù)。

時(shí)鐘:發(fā)出CPU開始計(jì)時(shí)的時(shí)鐘信號(hào)。有的計(jì)算機(jī)的時(shí)鐘位于CPU的外部。

控制是什么

其實(shí)所謂的控制就是指數(shù)據(jù)運(yùn)算以外的處理(主要是數(shù)據(jù)輸入輸出的時(shí)機(jī)控制機(jī)制)。比如內(nèi)存和磁盤等媒介的輸入輸出、鍵盤和鼠標(biāo)的輸入,顯示器和打印機(jī)的輸出等,這些都是控制的內(nèi)容。

CPU是寄存器的集合

匯編

匯編語言用助記符來編寫程序。每一個(gè)原本是電器信號(hào)的機(jī)器語言指令會(huì)有一個(gè)與其對(duì)應(yīng)的助記符,助記符通常為指令功能的英語單詞的簡(jiǎn)寫。例如(mov:數(shù)據(jù)存儲(chǔ),add:相加)

匯編語言基本上和機(jī)器語言是一一對(duì)應(yīng)的。

匯編:講匯編語言編寫的程序轉(zhuǎn)化為機(jī)器語言的過程

反匯編:把機(jī)器語言轉(zhuǎn)化為匯編語言程序的過程。


編譯

講使用的高級(jí)編程語言編寫成的程序轉(zhuǎn)化為機(jī)器語言的過程,其中用于轉(zhuǎn)化的程序被稱為編譯器。

寄存器

CPU四個(gè)組成中,程序員只需要了解寄存器即可,其余三個(gè)不用太過關(guān)注。因?yàn)槌绦蚴前鸭拇嫫鳟?dāng)作對(duì)象來描述的。對(duì)于程序員來說,CPU是具有各種功能的寄存器的集合體

內(nèi)存的存儲(chǔ)場(chǎng)所通過地址編號(hào)來區(qū)分,而寄存器的種類則通過名字來區(qū)分。例如eax:累加寄存器,ebp:基址寄存器

根據(jù)功能:可以將寄存器大致劃分為8類。寄存器中既可以是指令,也可以是數(shù)據(jù)。其中數(shù)據(jù)分為:用于運(yùn)算的數(shù)值,表示內(nèi)存地址的數(shù)值。

一般程序計(jì)數(shù)器,累加寄存器,標(biāo)值寄存器,指令寄存器和棧寄存器都只有一個(gè)。其他寄存器一般都多個(gè)


決定程序流程的程序計(jì)數(shù)器


說明

實(shí)際上,一個(gè)命令和數(shù)據(jù)通常被存儲(chǔ)在多個(gè)地址上。

流程:操作系統(tǒng)把程序從硬盤復(fù)制到內(nèi)存——將程序計(jì)數(shù)器設(shè)置為0100——開始運(yùn)行——CPU每執(zhí)行一條指令,程序計(jì)數(shù)器的值就增加1

(當(dāng)執(zhí)行的指令占據(jù)多個(gè)內(nèi)存地址時(shí),增加與指令長(zhǎng)度相應(yīng)的數(shù)值,)

CPU控制器會(huì)參照程序計(jì)數(shù)器的數(shù)值,從內(nèi)存中讀取命令并執(zhí)行

條件分支和循環(huán)結(jié)構(gòu)


程序流程

順序執(zhí)行:按照地址內(nèi)容的順序執(zhí)行指令

條件分支:根據(jù)條件執(zhí)行任意地址的指令

循環(huán):只重復(fù)執(zhí)行同一地址的指令

(若程序中存在條件分支和循環(huán),機(jī)器語言指令就可以將程序計(jì)數(shù)器的值設(shè)置為任意地址。不是+1)。

標(biāo)志寄存器

無論當(dāng)前累加寄存器的運(yùn)算結(jié)果是負(fù)數(shù),零還是正數(shù),標(biāo)值寄存器都會(huì)將其保存(也負(fù)責(zé)存放溢出和奇偶校驗(yàn)的結(jié)構(gòu))

CPU運(yùn)算時(shí),標(biāo)志寄存器的數(shù)值會(huì)根據(jù)運(yùn)算結(jié)果自動(dòng)設(shè)定。


CPU比較機(jī)制

實(shí)際上就是在CPU內(nèi)部做減法運(yùn)算

函數(shù)調(diào)用機(jī)制

即使是高級(jí)語言編寫的程序,函數(shù)調(diào)用處理也是通過把程序計(jì)數(shù)器的值設(shè)定成函數(shù)的存儲(chǔ)地址來實(shí)現(xiàn)的。

函數(shù)調(diào)用與循環(huán)和分支不同的地方是:?jiǎn)渭兊奶D(zhuǎn)指令無法實(shí)現(xiàn)函數(shù)的調(diào)用。函數(shù)的調(diào)用需要完成函數(shù)內(nèi)部的處理后,處理流程返回到函數(shù)調(diào)用點(diǎn)。

call指令

函數(shù)調(diào)用使用的是call指令,而不是跳轉(zhuǎn)指令。在將函數(shù)的入口地址設(shè)定到程序計(jì)數(shù)器之前,call指令會(huì)把調(diào)用函數(shù)后要執(zhí)行的指令地址存儲(chǔ)在名為棧的主存內(nèi)。

return指令

函數(shù)處理完畢后,再通過函數(shù)的出口來執(zhí)行return命令。Return命令的功能是把保存在棧中的地址設(shè)定到程序計(jì)數(shù)器中。



通過地址和索引實(shí)現(xiàn)數(shù)組

變址寄存器、基址寄存器

例如查看10000000地址~1000FFFF地址時(shí),可以將10000000存入基址尋址器,并使變址寄存器的值在00000000~0000FFFF變化。CPU會(huì)把基址寄存器+變址寄存器的值解釋為實(shí)際查看的內(nèi)存地址。變址寄存器的值就相當(dāng)于高級(jí)編程語言程序中數(shù)組的索引功能。

CPU的處理其實(shí)很簡(jiǎn)單

CPU可以進(jìn)行的處理非常少,所以盡管高級(jí)編程語言編寫的程序看起來非常負(fù)責(zé),但CPU實(shí)際處理的事情就是這么簡(jiǎn)單


數(shù)據(jù)是用二進(jìn)制表示的

用二進(jìn)制數(shù)表示計(jì)算機(jī)信息的原因

計(jì)算機(jī)內(nèi)部是由IC這種電子部件構(gòu)成的。IC(IntegratedCircuit)集成電路,IC分為模擬IC和數(shù)字IC,這里講的是數(shù)字電路

IC的所有引腳,只有直流電壓0V或5V兩個(gè)狀態(tài)。(即IC的一個(gè)引腳只能表示兩個(gè)狀態(tài))IC的這個(gè)特性決定了計(jì)算機(jī)的信息數(shù)據(jù)只能用二進(jìn)制來處理。

IC的一個(gè)引腳表示二進(jìn)制數(shù)的1位

對(duì)于用二進(jìn)制表示的信息,計(jì)算機(jī)不會(huì)區(qū)分它是數(shù)值、文字,還是某種圖片的模式,而是根據(jù)編寫程序的各位對(duì)計(jì)算機(jī)發(fā)出的指示來進(jìn)行信息的處理。

二進(jìn)制數(shù)

移位運(yùn)算和乘除運(yùn)算的關(guān)系

移位運(yùn)算能替代乘法運(yùn)算和除法運(yùn)算

補(bǔ)碼

計(jì)算機(jī)做減法運(yùn)算時(shí),其實(shí)是內(nèi)部在做加法運(yùn)算

為了實(shí)現(xiàn)這個(gè)功能,就要將負(fù)數(shù)用正數(shù)來表示,類似于時(shí)鐘撥一圈,搞出個(gè)補(bǔ)碼概念

邏輯右移和算數(shù)右移的區(qū)別

當(dāng)二進(jìn)制表示圖形模式而非數(shù)值時(shí),移位后需要在最高位補(bǔ)0.類似于霓虹燈往右滾動(dòng)的效果,這就是邏輯右移

當(dāng)二進(jìn)制數(shù)作為帶符號(hào)的數(shù)值進(jìn)行運(yùn)算時(shí),移位后要在最高位填充移位前符號(hào)位的值,這就是算術(shù)右移。

符號(hào)填充

邏輯運(yùn)算

邏輯非(NOT運(yùn)算)

邏輯與(AND運(yùn)算):同時(shí)為1時(shí)結(jié)果為1,其他情況都為0

邏輯或(OR運(yùn)算):至少有一方為1時(shí),運(yùn)算結(jié)果為1

邏輯異或(XOR運(yùn)算):排斥相同數(shù)值的運(yùn)算。兩個(gè)數(shù)值不同,運(yùn)算結(jié)果為1

計(jì)算機(jī)進(jìn)行小數(shù)運(yùn)算時(shí)出錯(cuò)的原因

將0.1累加100次也得不到10


用二進(jìn)制表示小數(shù)

計(jì)算機(jī)運(yùn)算出錯(cuò)的原因

因?yàn)橛幸恍┦M(jìn)制的小數(shù)無法轉(zhuǎn)化成二進(jìn)制數(shù)(例如:0.1)

例如二進(jìn)制小數(shù)點(diǎn)后面四位表示的數(shù)

數(shù)值范圍為0.0000~0.1111。因此,這里只能表示0.5,0.25,0.125,0.0625這四個(gè)二進(jìn)制小數(shù)點(diǎn)后面的位權(quán)組合組成的小數(shù)。

浮點(diǎn)數(shù)

由來

像1011.0011這樣的帶小數(shù)點(diǎn)的表現(xiàn)形式,完全是紙面上二進(jìn)制數(shù)表現(xiàn)行式,在計(jì)算機(jī)內(nèi)部是無法使用的。

浮點(diǎn)數(shù):用符號(hào),尾數(shù),基數(shù)和指數(shù)這四個(gè)部分來表示的小數(shù)。計(jì)算機(jī)基數(shù)為2,故只用符號(hào)、尾數(shù)、指數(shù)這三個(gè)部分即可表示浮點(diǎn)數(shù)

正則表達(dá)式

尾數(shù)部分使用正則表達(dá)式,可以將表現(xiàn)形式多樣的浮點(diǎn)數(shù)統(tǒng)一為一種表現(xiàn)行式。二進(jìn)制中使用的是:“將小數(shù)點(diǎn)前面的值固定為1的正則表達(dá)式”(由于第一位必須是1,因此,省略該部分后就省略了一個(gè)數(shù)據(jù)位,從而也就可以表示更多的數(shù)據(jù)范圍)


EXCESS系統(tǒng)

指數(shù)部分中使用的EXCESS系統(tǒng):是為了表示負(fù)數(shù)時(shí)不使用符號(hào)位

含義:通過將指數(shù)部分表示范圍的中間值設(shè)置為0,使得負(fù)數(shù)不需要用符號(hào)來表示

如何避免計(jì)算機(jī)計(jì)算出錯(cuò)

回避

根據(jù)程序目的不同,有時(shí)一些微小的偏差不會(huì)造成什么問題

將小數(shù)轉(zhuǎn)化為整數(shù)

進(jìn)行整數(shù)運(yùn)算只要不超過可處理的數(shù)值范圍,就一定不會(huì)出現(xiàn)問題

比如0.1相加100倍可以轉(zhuǎn)換為1相加100倍再除以10

BCD編碼

用4位來表示0-9的一位數(shù)字

在設(shè)計(jì)財(cái)務(wù)計(jì)算等不允許出現(xiàn)誤差的情況,一定要將小數(shù)轉(zhuǎn)化成整數(shù)或者BCD方法,以確保最終得到準(zhǔn)確的數(shù)值

二進(jìn)制數(shù)和十六進(jìn)制數(shù)

二進(jìn)制位數(shù)太多的話,看起來比較麻煩,故有時(shí)會(huì)采用十六進(jìn)制代替2進(jìn)制

內(nèi)存

單元前問題

高級(jí)編程語言中的數(shù)據(jù)類型表示的是什么:占據(jù)內(nèi)存區(qū)域的大小和存儲(chǔ)在該區(qū)域的數(shù)據(jù)類型

在32位內(nèi)存地址的環(huán)境中,指針變量的長(zhǎng)度是多少位:32位

與物理內(nèi)存有著相同構(gòu)造的數(shù)組的數(shù)據(jù)類型長(zhǎng)度是多少:1字節(jié)(物理內(nèi)存是以字節(jié)為單位進(jìn)行數(shù)據(jù)存儲(chǔ)的)

用LIFO方式進(jìn)行數(shù)據(jù)讀寫的數(shù)據(jù)結(jié)構(gòu)成為什么:棧(LastInFirstOut)

根據(jù)數(shù)據(jù)的大小鏈表分叉成兩個(gè)方向的數(shù)據(jù)結(jié)構(gòu)稱為什么:二叉查找樹

內(nèi)存的物理機(jī)制很簡(jiǎn)單

內(nèi)存實(shí)際上是一種名為內(nèi)存IC的電子元件

(包含DRAM,SRAM,ROM等多種形式)

內(nèi)存IC中有電源、地址信號(hào)、數(shù)據(jù)信號(hào)、控制信號(hào)等用于輸入輸出的大量引腳(IC的引腳),通過為其指定地址來進(jìn)行數(shù)據(jù)的讀寫)

點(diǎn)擊加載圖片

上圖表示的內(nèi)存IC中,VCC和GND是電源,A0-A9是地址信號(hào)的引腳,D0-D7是數(shù)字信號(hào)的引腳,RD和WR是控制信號(hào)的引腳。

含義:數(shù)據(jù)引腳有8個(gè),表示一次可以輸入輸出8位。此外,地址信號(hào)引腳有10個(gè),表示可以指定0000000000-1111111111共1024個(gè)地址。而地址表示數(shù)據(jù)的存儲(chǔ)場(chǎng)所,因此我們可以得出這個(gè)內(nèi)存可以存儲(chǔ)1024個(gè)字節(jié)的數(shù)據(jù)。所以該內(nèi)存IC的容量就是1KB。

讀寫過程

點(diǎn)擊加載圖片

點(diǎn)擊加載圖片

內(nèi)存的邏輯模型是樓房

假設(shè)存儲(chǔ)為低字節(jié)序(小端模式):將多字節(jié)數(shù)據(jù)的低位字節(jié)存儲(chǔ)在內(nèi)存低位地址的方式

點(diǎn)擊加載圖片

點(diǎn)擊加載圖片

簡(jiǎn)單的指針

指針

指針:是一種變量。表示的不是數(shù)據(jù)的值,而是存儲(chǔ)著數(shù)據(jù)的內(nèi)存的地址。

指針長(zhǎng)度:在32的機(jī)器上,指針變量的長(zhǎng)度是32位,64位上為了兼容也設(shè)置為32位

各種數(shù)據(jù)類型指針含義

目的是從指針存儲(chǔ)的地址中一次能讀寫的數(shù)據(jù)的字節(jié)數(shù)

點(diǎn)擊加載圖片

點(diǎn)擊加載圖片

數(shù)組是高效使用內(nèi)存的基礎(chǔ)

數(shù)組的索引和內(nèi)存地址的變換工作是由編譯器自動(dòng)實(shí)現(xiàn)的

數(shù)組是使用內(nèi)存的基本,因?yàn)閿?shù)組和內(nèi)存的物理構(gòu)造是一樣的

點(diǎn)擊加載圖片

棧、隊(duì)列以及環(huán)形緩存區(qū)

鏈表使元素的追加和刪除更容易

二叉查找樹使數(shù)據(jù)結(jié)構(gòu)搜索更有效

內(nèi)存和磁盤的親密關(guān)系

單元前問題

通過使用內(nèi)存來提高磁盤訪問速度的機(jī)制稱為什么:

DiskCache(磁盤緩存)(把從磁盤中讀出來的數(shù)據(jù)存儲(chǔ)在主存中,當(dāng)該數(shù)據(jù)再次被讀時(shí),不是從磁盤而是直接從內(nèi)存中高速讀?。?/p>

把磁盤的一部分作為假象內(nèi)存來使用的機(jī)制稱為什么:

虛擬內(nèi)存(VirtualMemory)(借助虛擬內(nèi)存,哪怕時(shí)內(nèi)存容量不足的計(jì)算機(jī),也能運(yùn)行很大的程序)

Windows中,在程序運(yùn)行時(shí),存儲(chǔ)著可以動(dòng)態(tài)加載調(diào)用的函數(shù)和數(shù)據(jù)的文件稱為什么:

DLL(DLL文件)(DynamicLinkLiabrary)

在EXE程序文件中,靜態(tài)加載函數(shù)的方式稱為什么:

靜態(tài)鏈接

內(nèi)存利用電流來實(shí)現(xiàn)存儲(chǔ),磁盤使用磁效應(yīng)實(shí)現(xiàn)存儲(chǔ)

通常內(nèi)存高速高價(jià),磁盤低速低價(jià)

不讀入內(nèi)存就無法運(yùn)行

磁盤中存儲(chǔ)的程序,必須加載到內(nèi)存后才能運(yùn)行。在磁盤中保存的原始程序是無法直接運(yùn)行的。因?yàn)椋?fù)責(zé)解析和運(yùn)行程序內(nèi)容的CPU,需要通過內(nèi)部程序計(jì)數(shù)器來指定內(nèi)存地址,然后才能讀出程序,即使CPU能直接讀出來并運(yùn)行磁盤中保存的程序,但是這樣速度會(huì)很慢

磁盤緩存加快了磁盤訪問速度

現(xiàn)在效果沒有之前那么明顯

把低速設(shè)備的數(shù)據(jù)保存在高速設(shè)備上,需要時(shí)可以直接將其從高速設(shè)備中讀出,這種在其他情況下也會(huì)用到:例如在Web瀏覽器中使用,會(huì)把比如圖片緩存在磁盤上

點(diǎn)擊加載圖片

虛擬內(nèi)存把磁盤當(dāng)作部分內(nèi)存來使用

虛擬內(nèi)存:把磁盤的一部分當(dāng)作假想的內(nèi)存來使用

借助虛擬內(nèi)存,在內(nèi)存不足時(shí)也可以運(yùn)行程序。

(例如在只剩下5M內(nèi)存空間情況下也能運(yùn)行10M大小的程序(但是CPU只能執(zhí)行加載到內(nèi)存中的程序,虛擬內(nèi)存雖說把磁盤作為內(nèi)存的一部分來使用,但實(shí)際上正在運(yùn)行的程序部分,在這個(gè)時(shí)間點(diǎn)上時(shí)必須存在在內(nèi)存中的,也就是說,為了實(shí)現(xiàn)虛擬內(nèi)存,就必須把實(shí)際內(nèi)存的內(nèi)容,和磁盤上的虛擬內(nèi)存上的內(nèi)容進(jìn)行部分置換,并同時(shí)運(yùn)行程序))

Windows提供了虛擬內(nèi)存機(jī)制作為操作系統(tǒng)。

虛擬內(nèi)存方法有兩種:分頁式,分段式。Windows采用的是分頁式。大小為4KB

為了實(shí)現(xiàn)虛擬內(nèi)存的功能,Windows在磁盤上提供了虛擬內(nèi)存用的文件,頁文件(pagefile)。該文件由Windows自動(dòng)做成管理。文件的大小也就是虛擬內(nèi)存的大小,通常是實(shí)際內(nèi)存的相同程度至兩倍程度。(通過Windows控制面板可以查看或改變當(dāng)前虛擬內(nèi)存的設(shè)定)

點(diǎn)擊加載圖片

節(jié)約內(nèi)存的編程方法

虛擬內(nèi)存無法從根本上解決內(nèi)存不足的問題。

虛擬內(nèi)存確實(shí)能避免因內(nèi)存不足導(dǎo)致的應(yīng)用無法啟動(dòng),不過由于低速的訪問,整個(gè)過程會(huì)變得遲鈍。虛擬內(nèi)存無法從根本上解決內(nèi)存不足的問題。

解決方法

增加內(nèi)存容量

把運(yùn)行的應(yīng)用文件變小

把應(yīng)用程序變小的方法

一、通過DLL文件實(shí)現(xiàn)函數(shù)共有

DLL(DynamicLinkLibrary)文件,程序運(yùn)行時(shí)可以動(dòng)態(tài)加載Library(函數(shù)和數(shù)據(jù)的集合)的文件,且多個(gè)應(yīng)用可以共有同一個(gè)DLL文件。通過共用同一個(gè)DLL文件就可以達(dá)到節(jié)約內(nèi)存的效果

Windows操作系統(tǒng)本身也是多個(gè)DLL文件的集合。又是有時(shí)安裝新應(yīng)用時(shí),DLL文件也會(huì)被追加。應(yīng)用則會(huì)通過利用這些DLL文件的功能來運(yùn)行。

DLL文件還有一個(gè)優(yōu)點(diǎn)就是,在不變更EXE文件的情況下,只通過升級(jí)DLL文件就可以更新

點(diǎn)擊加載圖片

點(diǎn)擊加載圖片

二、通過調(diào)用_stdcall來減小程序文件的大小

_stdcall是standardcall(標(biāo)準(zhǔn)調(diào)用)

Windows提供的DLL文件內(nèi)的函數(shù),基本上都是_stdcal調(diào)用方式

C語言特有的調(diào)用方式稱為C調(diào)用。C語言之所以默認(rèn)不使用_stdcall,是因?yàn)镃語言所對(duì)應(yīng)的函數(shù)的傳入?yún)?shù)是可變的(可以設(shè)定任意參數(shù)),只有函數(shù)調(diào)用方才能知道到底有多少個(gè)參數(shù),而在這種情況下,棧的清理作業(yè)便無法進(jìn)行。不過在C語言中,如果函數(shù)的參數(shù)數(shù)量固定的話,指定_stdcall時(shí)沒有任何問題的

函數(shù)調(diào)用時(shí),需要用到棧,當(dāng)函數(shù)調(diào)用完成后,棧需要清除。(棧清理處理:把不需要的數(shù)據(jù)從接收和傳遞函數(shù)的參數(shù)時(shí)使用的內(nèi)存上的棧區(qū)域中清理出去。該命令不是程序記述的,而是在程序編譯時(shí)由編譯器自動(dòng)附加到程序中的。編譯器默認(rèn)將該處理附加在函數(shù)的調(diào)用方。)

C語言中,函數(shù)的返回值是通過寄存器,而非棧,來返回的

棧清除處理,比起在調(diào)用方進(jìn)行,在反復(fù)被調(diào)用的函數(shù)一方進(jìn)行時(shí),程序整體要小一些。這是使用的就是_stdcall,就可以把棧清理處理變?yōu)楸徽{(diào)用函數(shù)一方進(jìn)行,intMyFunc(inta,intb)部分寫成int_stdcallMyFunc(inta,intb),進(jìn)行編譯后,add,esp,8同樣的處理就會(huì)在函數(shù)MyFunc一方執(zhí)行。

點(diǎn)擊加載圖片

點(diǎn)擊加載圖片

磁盤的物理結(jié)構(gòu)

磁盤的物理結(jié)構(gòu)是指磁盤存儲(chǔ)數(shù)的形式。磁盤通過把物理表面劃分為多個(gè)空間來使用的

劃分方式:扇區(qū)方式(劃分成固定長(zhǎng)度的空間),可變長(zhǎng)方式(把磁盤劃分為長(zhǎng)度可變的空間)

磁道:扇區(qū)方式中,把磁盤表面分成若干個(gè)同心圓的空間

扇區(qū):把磁道按照固定大?。艽鎯?chǔ)的數(shù)據(jù)長(zhǎng)度相同)劃分而成的空間就是扇區(qū),是對(duì)磁盤進(jìn)行讀寫的最小的單位

Windows中使用的磁盤,一般一個(gè)扇區(qū)為512字節(jié)

不過在邏輯方面,對(duì)磁盤進(jìn)行讀一些的單位是扇區(qū)整數(shù)倍的簇。根據(jù)磁盤的容量不同,1簇可以是512(1扇區(qū))字節(jié),可以是1KB(2扇區(qū)),可以是2KB。。。磁盤的容量越大,簇的容量也越大。

在軟盤中,1簇=512字節(jié)=一扇區(qū),簇和扇區(qū)的大小是相等的。

不管是硬盤還是軟盤,不同的文件時(shí)不能存儲(chǔ)在同一個(gè)簇中的,否則就會(huì)導(dǎo)致只有一方的文件不能被刪除。因此,不管多么小的文件,都會(huì)占用1簇的空間。這樣,所有的文件都會(huì)棧用1簇的整數(shù)倍的磁盤空間。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
匯編語言入門教程
簡(jiǎn)單!代碼原來是這樣被CPU跑起來的
CPU是怎么認(rèn)識(shí)代碼的二(一個(gè)程序的執(zhí)行流程總體上可以分為3個(gè)步驟磁盤RAM內(nèi)存CPU)時(shí)鐘控制CPU做加法后把結(jié)果存入既定的寄存器電路信號(hào)動(dòng)畫圖
我對(duì)計(jì)算機(jī)系統(tǒng)的理解
全國計(jì)算機(jī)一級(jí)考試題(150個(gè)選擇題一),學(xué)會(huì)你也是高手!
30天自制操作系統(tǒng)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服