10.6 內核與進程管理 與函數

一,進程的管理

1,內核的功能:

內核三部分:

   /boot/vmlinuz-Version

   /boot/initrd-Version

   /lib/modules/Version

系統初始化

驅動程序

進程調度

內存管理

通過緩存,緩衝對系統加速

安全功能

文件系統

網絡功能

2,內核設計機制;

單內核

     Linux

微內核

     Windows

     sloris

/proc內核的接口

3。模塊安裝

modprobe  模塊名字  安裝模塊

  -r  卸載模塊

   /etc/modprobe.conf

 

4.修改內核參數

sysctl –w  kernel.hostname=www.ibuler.com 比如

/etc/sysctl.conf

/proc/sys下的

sysctl –p 讓修改的 /etc/sysctl.conf 修改生效

sysctl –a 顯示所有內核參數

5.lspci 查看pci設備

lsusb

x86info

dmidecode  查看bios信息

hal-device 所有設備

6.udev

mknod  創建設備節點

   mknod  name type major  minor

        -m MODE  權限

   主設備號:標識設備類型

   次設備號:標識同一種類型的不同設備

    特殊設備只有元數據

/dev/null    /dev/zero

/dev/random  /dev/urandom  隨機數生成器

熵池:保存隨即數的存儲空間

mkinitrd

       mkinitrd  /root/initrd-`uname-r` `uname -r`

 

7,process

資源分配的單位

執行的程序的一部分副本

進程有父子關係,任何一個進程都是由父進程fork自身而來

  fork 系統調用  

  COW:Copy On Write

          多線程(thread):進程的子系統

進程狀態:1,R  runing ,ready 執行,就緒

              2,S  sleeping

                      可中斷睡眠

                 D   不可中斷睡眠

              3,Z Zombie

              4,T  Stop

systime,ustime  3:7

idle time   空閒時間

進程優先級:

       交互式進程(動態調高優先級,較少cpu時間)

       批處理進程 (調低其優先級,較多cpu時間)

       實時進程

動態優先級:由內核調整(0-99)

靜態優先級:用戶指定

用戶空間的進程:(100-139)-20-19

     默認:120

     進程

跟終端相關的進程:終端tty退出,進程終止

跟終端無關的進程

8,ps –process stat

    BSD風格

a:跟終端相關相關的進程

x:跟終端無關的進程

u:以用戶爲中心顯示

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

stat:

    <:高優先級的進程

    N:低優先級進程

    l: 多線程進程

    +:前臺進程組中的進程

     s: 會話進程的領導者

COMMAND

    兩側加中括號,表示這是內核線程

     Sysv風格:

-e 顯示所有進程信息

-F 更詳細的信息

    自定義顯示:

        -o 自定義顯示類別

             如:ps auo pid,rss

    top  動態顯示系統狀況

           M按內存排序

           P根據cpu佔用排序

           T根據累計佔用時間排序

            l:是否顯示平均負載和啓動時間

            t:是否顯示進程和cpu狀態

            m:是否顯示內存相關信息

            c:是否顯示完整命令行

          

     pstree

     vmstat [-n]  delay [count]   

               表頭   延時    顯示次數

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

r:運行和等待cpu時間片的進程數

b:等待資源完成數的進程數

swpd:切換到交換分區的大小

free:當前空閒物理內存空間大小

buff:對塊設備讀寫緩衝

cache:對文件讀寫時緩存大小

si:從swap調入內存

so:由內存調入磁盤

bi:由塊設備讀進來的數據

bo:寫如塊設備的數據

in:interrupt每秒終端數   終止當前進程,去做緊急進程

cs:每秒鐘上下文切換數

us:用戶空間佔用的比例

sy:內核空間消耗cpu時間比例

id:空閒比例

wa:等待io完成時間的比例

st:被虛擬機偷走的時間

9.進程通信:IPC

恭享內存

信號:signal 

      1:SIGHUP  不需要重啓進程,重讀配置文件 

      2:SIGINT  Ctrl+C 

      9:SIGKILL  強行殺死

      15:SIGTERM   正常終止

      19:SIGSTOP 停止

      18: SIGCONT 繼續

      kill –signal pid

      killall  processname 殺死某個進程

管道:

套接字:

10,調整進程優先級

nice –n # COMMAND

renice # PID

11,作業控制

&後臺運行

nohup不依靠終端運行

bg %jobnum 讓作業後臺運行

jobs查看後臺運行列表

fg 調回前臺運行

kill %jobnum 殺死作業

12,pidof 查看進程pid

 

 

 

 

二,函數:

結構化編程,不能獨立運行,需要調用時執行,可以多次調用

定義一個函數:

   function  FUNCNAME {

          command

   }

  自定義狀態返回值:return

函數也可以接受參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章