深入理解windows內部原理系列 筆記二

2021-07-31 08:20:08 字數 1808 閱讀 4245

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 是一種允許檔案通過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。...