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

函数也可以接受参数。

你可能感兴趣的:(管理,p)