Linux进程管理

进程管理:
进程:应用程序或者数据在系统中按照一定的顺序执行的活动过程,是操作系统架构的基本,磁盘中的应用程序或者数据在内存当中的映射
OS:kernel+process:进程只能运行在CPU和内存中
进程特性:动态性   并发性   

CPU:分环运行,
0环:特权环,运行内核(内核空间)
1-2环:库文件
3环:进程环(用户空间)
CPU:在一个时间点只能运行一个应用程序,CPU按照时间片为应用程序分配运行时间

mkdir:mkdir/data:system call;系统    I/O

CPU:暂时的退出
内存:也分为用户空间和内核空间
task struct:进程的数据结构(存放在内核中)
task struct结构:状态,进程信息和内核栈,运行列表(指令等),MM内存管理(memrory managment)  PID:进程的ID号     group info:群组信息    用户信息   ,文件系统,文件描述符等
 
线性地址:
物理地址:

MMU:内存管理单元  memory managment unit

context switch:进程切换就是上线文切换

进程内存结构:
forbiden:内核空间
program text:指定
data+bss:全局变量
heap:堆空间,系统进程所调用的数据
shared:共享库
thread:线程。轻量级线程
stack:栈空间。局部变量

运行进程的模式:多进程模式(每一个请求生成一个线程:进程切换)
单进程多线程:每一个线程去响应一个请求,线程所使用的资源是进程的资源

kernel:内存管理  网络管理 安全管理  进程管理

lock:死锁,自旋锁等
task_uninterruptible:不可中断睡眠    
task_interruptible:可中断睡眠
stopped:停止状态(不能调入cpu运行)
zombie:僵尸状态(借宿和父进程猜能够退出当前进程的僵尸状态)

进程分类:和终端相关的进程:用户进程
还有一个和终端无关的进程:内核进程

PS:process status:进程状态查看,运行PS那个时刻的进程状态
-a:显示和终端有关的进程   u:显示进程用户的信息    x:显示和终端无关的进程
-e:显示所有进程的信息       l:显示进程长格式             f:显示进程的完整信息

ps -aux:结果解析
PPID:父进程号
 user:该进程是由哪个用户发起的
  PID:进程号/proc/目录存放着pid进程相关的信息  在centok7中PID为1的进程是systemd,在os6中,PID为1的进程是init进程
%CPU:占用CPU的百分比 
%MEM:该进程占用内存的百分比
  VSZ :虚拟内存集(计算进程所占物理内存时,物理内存包括共享库的空间)
RSS :重驻内存机(不能被交换出去的数据)
TTY :运行在哪个终端
STAT:进程状态 
  D:不可中断睡眠状态
  S:可中断睡眠状态
  R:运行状态
  T:停止状态
  Z:僵尸状态
  S:session leader:会话的领导者
  <:优先级较高的进程,用户不可控
  N:优先级较低的进程,用户可控进程
  l:多线程进程
  L:在内存中锁定分页
  +:前台进程组中的进程

START:进程启动的时间
TIME :该进程在CPU中实际运行的时长
COMMAND:该进程的名称


ps  -elfL结果分析
  PRI:系统分配的优先级(用户不可更改)
  NI:nice值
调整进程的nice值:
   调整正在运行进程的nice值
      renice【nice_num】PID
   指定进程运行的nice值(让某个命令也指定nice值)
    nice -n【nice_num】


TOP命令:动态查看进程的命令
  第一行:当前系统的时间,系统运行时长,登陆系统的个数,过去一分钟,五分钟,15分支平均荷载
第二行:进程总数,正在运行的进程数,睡眠的进程数,停止状态进程数,僵尸状态进程数
第三行:(按1键可以查看每个CPU的信息)CPU相关信息:   us:用户进程所占CPU百分比,sy系统进程所占百分比,  ni:nice所占进程的百分比,    id:空闲进程所占百分比,  hi:硬件中断所占百分比    hi:软件中断所占百分比,st:被hypervisor偷走的CPU的百分比
第四行:物理内存相关信息
第五行:交换分区相关信息

TOP:交互式命令
 M:按所占内存百分比进行排序
 P:按所占CPU备份比进行排序
 T:按进程运行时长进行排序
 C:是否显示command列完整路径
 l:是否显示top第一行
 t:是否显示top第二行和第三行
 m:是否显示内存的相关信息 
 k:杀死某个进程
 q:退出top进程

pgrep:查看某个进程PID号
pidof:查看某个进程PID号
kill:杀死某个进程(向进程传递某个信号)
    kill -l:查看进程信号
killall

   









































 

posted @ 2018-06-10 11:54  市委李达康  阅读(88)  评论(0)    收藏  举报