天天看點

Linux01-Linux程序管理淺談43

一、程序相關概念

   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)

       優點:多線程可實作使用者共享打開的檔案;線程比記憶體更節省空間;

本文出自 “” 部落格,請務必保留此出處

繼續閱讀