軟體中的數學計算引起的一些簡單思考

2021-08-03 00:05:37 字數 1663 閱讀 2549

1、2的10次方=1kb;

2、2的12次方=4kb;

3、2的20次方=1mb;

4、1kb*1kb=1mb;

5、1mb*1kb=1g;

6、線性位址(4g,實體地址)=目錄項(directory,10bit,1kb)+表(table,10bit,1kb)+頁幀(offset=page frame,12bit,4kb,幀表示最小單位)

=page table(20bit,directory+ table)+頁(4kb)

a.此項中的加可以理解位bit的加,kb的乘;

b.可以看到實體地址是以bit為單位,即尋找的是最小單位是位,而page table(頁表)是以4kb為最小單位,尋找的是page frame;這樣操作的目的是便於作業系統管理及提高管理效率;

c.為便於上述關係的理解,我們可做如下模擬:

32位定址空間(4gb)相當於乙個倉庫裡有4g個物料(此時的物料相當於計算機裡面的bit),如果我們以最小物料為單位,同時這些物料全部雜亂無章地擺放在這個倉庫,那麼我們尋找乙個物料,我們就需要從第乙個物料一直向第4g個物料尋找,效率非常低。那麼我們該如何解決這個問題呢?首先,我們不以物料為最小單位,我們以房間(頁)為最小基本單位(至於為什麼要分頁,也困惑了我很長時間,其實很簡單的乙個道理,一般來說,軟體在大資料量中查詢乙個資料,也是乙個乙個找的,就好比我們要在人海中找乙個人,也必須乙個乙個挨著找,但是倘若我們把這些人海分成乙個乙個塊,每個塊都具有相同的某種屬性(就好比如果把人分成男、女,尋找時間就少了一半),我們先知道他們在哪個塊,那麼我們只需要在這些塊中(人數相對而言就非常少)尋找,效率提高了幾百倍都不止,但是每個頁包含多少字最好,是1k,2k還是4k,我目前也不知道,只是知道,這些塊中的字無論太多還是太少,都不利於cpu對位址的命中率,即降低了計算機的效率)。

假設乙個房間中可以裝4k個物料(4k個物料都具有某一種相同的屬性,譬如胡蘿蔔、白菜等等),那麼我們每次只需要在4k個字中尋找我所需 要的資料,而不是在4g個字中尋找我所需要的資料了,對比之下可想而知了。

有了頁這個基本量,我們就只需要管理這些房間了,但是如果要裝4g個物料,每個房間可以裝4k個,我們最少需要1m個(100萬)房間,100萬依舊是乙個龐大的數字,目前有如下幾種管理方式:

a.胡蘿蔔房間號位0---1萬,白菜為1萬01到2萬,包菜為3萬01到4萬等等,這樣資料來了,我們就知道把對應的資料往對應的倉庫去放置;

b.不連續分配位址空間,譬如胡蘿蔔4k打包放置在第1個房間,剩餘的就沒有胡蘿蔔了,那麼我們把白菜打包成4k乙個房間放置在2-150,包菜放置在151-300,如果後面再來白菜,我們就放置在301-400等等;

這樣對倉庫管理者而言,我們只需要管理這個記錄本,就可以很高效地管理整個系統了。此時記錄各個房間對應的房間號的本子,我們就叫做頁表,頁表只是實體地址向上抽象的一層,便於管理者對實體地址的管理。

同時,通過這個模擬,也可以清晰地看到,管理方法(即演算法)差異的重要性,即:白菜、胡蘿蔔、包菜等等各需要多少個房間,是連續分配還是斷續分配,每一種菜如果不是整數怎麼辦?還有菜被取走了如何辦?需要後續學習補充;

於此同時,還遇見乙個問題:倘若我們有100萬個房間號,但是實際上,沒有給我100萬個房間,那該如何處理呢?此時,虛擬記憶體便粉墨出場了。此時就將沒有用到的空間暫存在備用倉(硬碟上),再把需要的page呼叫到記憶體中,對於系統而言,他們就相當於獨享4g記憶體空間。

d.乙個倉庫(記憶體)的最小管理單位是房間(頁),頁表就是記錄的房間號表;

數學計算的一些東西

哎 丟臉了 丟臉了 學了這麼久了 階乘今天搞了十幾分鐘,要不然就是縮排錯了,要不然就是少了乙個冒號,num int input 請輸入乙個數字 factorial 1 檢視數字是負數,0 或 正數 if num 0 print 抱歉,負數沒有階乘 elif num 0 print 0 的階乘為 1 ...

一些數學優化計算的工具

snopt 大規模線性 二次和非線性規劃 minos 線性與非線性規劃 lancelot 無約束最優化 非線性最小二乘 邊界約束最優化和一般約束最優化問題 minpack 非線性方程組和非線性最小二乘問題 proc nlp 無約束最優化 非線性最小二乘 線性約束最優化 二次規劃和一般約束最優化問題 ...

一些簡單的數學題

鑑於 ccf 欽定不考 fft 和 ntt 不在這裡寫有關 fft 和 ntt 的題。cf1278f cards 題目大意 你有一副牌,這副牌一共 n 站牌,其中有一張是 joker 你想隨機從中抽一張牌,抽 n 次,設共抽到 x 次 joker 現在你想直到 x k 的期望是多少。1 le n,m...