1、作業系統需要提供乙個易用(easy to use)的物理記憶體抽象。這個抽象叫作位址空間(address space),是執行的程式看到
的系統中的記憶體。
3、棧和堆:
棧(stack)來儲存當前的函式呼叫資訊,分配空間給區域性變數,傳遞引數和函式返回值。4、隔離是建立可靠系統的關鍵原則。堆(heap)用於管理動態分配的、使用者管理的記憶體。
5、虛擬記憶體系統的主要目標:
1、記憶體兩種型別:
2、malloc()呼叫:
基本用法:malloc 函式非常簡單:傳入要申請的堆空間的大小,它成功就返回乙個指向新申請空間的指標,失敗就返回null。比如:
//size_t 型別引數,該引數表示你需要多少個位元組
void *malloc(size_t size);
或者double *d = (double *) malloc(sizeof(double));
再或者int *x = malloc(10 * sizeof(int));
3、free()呼叫:
要釋放不再使用的堆記憶體,程式設計師只需呼叫free()。
int *x = malloc(10 * sizeof(int));
...free(x);
4、值得注意的是:malloc()呼叫和free()呼叫。都不是系統呼叫,而是庫呼叫。
1、回顧:
在實現cpu 虛擬化時,我們遵循的一般準則被稱為受限直接訪問(limited direct execution,lde)。
lde 背後的想法很簡單:讓程式執行的大部分指令直接訪問硬體,只在一些關鍵點(如程序發起系統呼叫或發生時鐘中斷)由作業系統介入來確保「在正確時間,正確的地點,做正確的事」。
2、位址轉換(address translation):
可以看成是受限直接執行這種一般方法的補充。
作用:將指令中的虛擬(virtual)位址轉換為資料實際儲存的物理(physical)位址。
3、動態(基於硬體)重定位:稱為基址加界限機制(base and bound),有時又稱為動態重定位。
具體實現:每個cpu 需要兩個硬體暫存器:基址(base)暫存器和界限(bound)暫存器,有時稱為限制(limit)暫存器。
physical address = virtual address + base1、外部碎片和內部碎片:
2、底層機制:
3、基本策略:
4、其他方式:
作業系統基礎知識點
作業系統是管理計算機硬體與軟體資源的電腦程式,也是計算機系統的核心及基石 作業系統需要處理的事務,如管理與配置記憶體,決定系統資源供需的優先次序,控制輸入裝置與輸出裝置,操作網路與管理檔案系統等基本事務,作業系統也提供乙個讓使用者與系統互動的操作介面。作用 控制計算機硬體的基本執行,把使用硬體的複雜...
作業系統 記憶體的基礎知識
什麼是記憶體 1.儲存單元 用於存放資料的硬體,程式執行前先放到記憶體中才能被cpu處理 2.記憶體位址 給記憶體儲存單元編位址,從0開始每個位址對應乙個儲存單元,可以按位元組編址,也可以按字長編址,乙個儲存單元乙個位元組或字長 記憶體執行的基本原理 1.指令的工作原理 記憶體有資料段和程式段,指令...
作業系統知識點
tcp的擁塞控制由4個核心演算法組成。https 把資料進行非對稱加密,然後客戶端從第三方伺服器獲取證書 加密後的公鑰 http完整請求 建立tcp連線,傳送http命令請求頭,web伺服器應答,關閉tcp連線 tcp 三次握手 缺陷 洪氾攻擊 解決辦法 四次揮手 長連線 短連線 程序 執行緒 併發...