一、程序相關概念
1、OS運作
Kernel和 process(程序);
2、記憶體位址:
線性記憶體
實體記憶體
3、CPU:
a)x86CPU執行環:
第0環是執行特權指令(最内圈);
第1和2環是沒使用的;
第3環是使用者的運作程式(最外圈);
b)程式運作采用輪流替換的方式,這種方式可以有優先級控制,由核心主導運作;
4、核心運作機制:
a)核心空間和使用者空間;
b)核心空間中的核心資料結構:
task structure(任務結構),資訊:
PPID:
PID:7
Name:Jerry
c)程序執行在記憶體中,程序的描述資訊在核心中;
d)當舊的程序退出,新的程序在記憶體中執行,會出現記憶體出現千瘡百孔的現象。當程式的程序有bug,也極有可能出現此程序吞噬其他程序; 是以為避免出現記憶體當中的bug,在80286的cpu之後,把記憶體分為線性位址和實體位址;
e)記憶體空間又被換分為頁框;
二、程序淺談
1、記憶體中的程序空間組成:
forbidden: 記憶體保留的
program text:隻讀的,存放全局變量
資料:uninitialized
initialized data
runtime heap:堆記憶體,核心發現記憶體中的堆動态的增長,增長到一定程度核心會申請新的頁面讀入新的檔案;
user stack:棧,存放本地變量
Memory mappe region for shared libraried:共享庫;
2、程序
a)CPU中的晶片有MMU:Memory Management Unit,用于把程序的頁面轉換成CPU的實體頁框,轉換的過程需要用到的共享資源儲存在緩存中;緩存内容更新的過程使用TLB調整;
b)cpu中程序之間的切換叫Context (上下文切換)或者叫環境切換;
c)程序屬性:
程序号
占用多少記憶體空間
使用者cron任務
父程序
CPU time
d)檢視CPU記憶體空間時會出現2種空間:
RSS:residentsize,常駐記憶體集
VSZ:虛拟記憶體集
3、線程(thread)
優點:多線程可實作使用者共享打開的檔案;線程比記憶體更節省空間;
本文出自 “” 部落格,請務必保留此出處