cr3暫存器:用來記錄頁目錄表的物理基位址的暫存器,簡稱pdbr(page directory base register)
切換cr3暫存器意味著切換位址空間
不同程序擁有不同的位址空間(cr3內容)隔離的保護
執行緒:cpu的排程單位
任務任務狀態段(task state segment)
程序:執行緒的住所—容器(container)
os組織和管理程式的重要單位
程序終止的方式:
主程的入口函式返回(推薦方式)
程序主動退出:乙個執行緒呼叫exitprocess
程序被動終止:另乙個程序呼叫了terminate process
程序中的所有執行緒都終止
執行緒組成部分:
乙個核心態的物件,作業系統用來儲存系統資訊
執行緒堆疊,用來存放執行緒執行時的函式引數和區域性變數
gui程序有乙個主ui執行緒,處理訊息迴圈和使用者互動
如果這個執行緒被掛起來或者忙於處理任務,應用程式會失去響應
沒有介面,在後台工作,如分析資料、資料庫操作
執行緒的上下文context:
instruction-pointer:使用者和核心態堆疊指標
指向這個執行緒所在的位址空間的指標(page table directory)
windows使用32個優先級別,從0~31數值越大,優先順序越高
使用者態虛擬空間的狀態:
free 自由,可被分配
reserving 被預留,不再分配,沒有影射到物理記憶體,不能訪問
commited 被影射到物理記憶體
程序使用的記憶體:
private bytes:位址的虛擬位址空間中已分配的記憶體,不包括和其他程序共享的記憶體
working set:程序所使用的物理記憶體的大小
記憶體對映檔案
作業系統使用記憶體對映檔案來裝載.exe和.dll檔案
使用記憶體對映檔案來處理大檔案,每次只對映一部分檔案內容對映到程序的位址空間
pagefile用來儲存程序正在使用的修改過的記憶體,當這部分被訪問時,這些內容再被從page file轉移到物理記憶體
page fault缺頁處理:
被訪問的頁面不在物理記憶體裡,但是在硬碟檔案裡或paging file裡或記憶體映像檔案裡
作業系統分配物理記憶體。把所需訪問內容轉移。這個程序對應用程式是透明的
程序使用記憶體的型別總結
虛擬記憶體:用於儲存大塊的陣列或資料結構
記憶體對映檔案:用於對映可執行檔案,大檔案或多程序之間共享檔案
堆:用於大量的小塊分配,程序使用的記憶體大部分來自堆。堆實際上就是作業系統的堆管理器,是從虛擬記憶體分配的
堆疊:儲存執行緒執行時的變數,暫存器資訊等。堆疊空間有限,如果乙個執行緒的堆疊用完,而且不能再增長,應用程式會崩潰
dll:
dll不能直接執行,必須裝載到乙個程序中
dll的image檔案對映到程序的位址空間,然後所有執行緒可呼叫dll中函式ntdll.dll,kernel.dll,usersz.dll
如果應用程式沒有處理異常,應用程式會崩潰
參與啟動過程的軟硬體:
rom中的post(power onself-test)**
bios/efi(extended firmware inte***ce)
mbr(main boot record)
引導扇區(boot sector)
ntldr/winload
ntoskrnl/hal/bootvid/kdrom
smss.exe
csrss.exe
winlogan.exe
HashMap內部原理深入理解
hashing 雜湊法 的概念 雜湊法 hashing 是一種將字元組成的字串轉換為固定長度 一般是更短長度 的數值或索引值的方法,稱為雜湊法,也叫雜湊法。由於通過更短的雜湊值比用原始值進行資料庫搜尋更快,這種方法一般用來在資料庫中建立索引並進行搜尋,同時還用在各種解密演算法中。hashmap概念和...
深入理解simhash原理
lsh locality sensitive hashing 是區域性敏感性hashing,它與傳統的hash是不同的。傳統hash的目的是希望得到o 1 的查詢效能,將原始資料對映到相應的桶內。lsh的基本思想是將空間中原始資料相鄰的2個資料點通過對映或者投影變換後,這兩個資料點在新的空間中的相鄰...
HDFS原理深入理解
1 hdfs概述 1 資料量越來越多,在乙個作業系統管轄的範圍存不下了,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,因此迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統 2 是一種允許檔案通過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。...