【笔记整理】unix/linux的进程管理(一)

Unix/Linux 下的进程管理

1. 进程与程序

~~~~~~~~~~~~~

1) 进程就是运行中的程序。一个运行着的程序,

可能有多个进程。进程在操作系统中执行特定的任务。

2) 程序是存储在磁盘上,

包含可执行机器指令和数据的静态实体。

进程或者任务是处于活动状态的计算机程序。

2. 进程的分类

~~~~~~~~~~~~~

1) 进程一般分为交互进程、批处理进程和守护进程三类。

2) 守护进程总是活跃的,一般是后台运行。

守护进程一般是由系统在开机时通过脚本自动激活启动,

或者由超级用户root来启动。

3. 查看进程

~~~~~~~~~~~

1) 简单形式

# ps

以简略方式显示当前用户有控制终端的进程信息。

2) BSD风格常用选项

# ps -axu

a - 所有用户有控制终端的进程

x - 包括无控制终端的进程

u - 以详尽方式显示

w - 以更大列宽显示

3) SVR4风格常用选项

# ps -efl

-e或-A            - 所有用户的进程

-a                - 当前终端的进程

-u 用户名或用户ID - 特定用户的进程

-g 组名或组ID     - 特定组的进程

-f                - 按完整格式显示

-F                - 按更完整格式显示

-l                - 按长格式显示

4) 进程信息列表

USER/UID: 进程的用户ID。

PID: 进程ID。

%CPU/C: CPU使用率。

%MEM: 内存使用率。

VSZ: 占用虚拟内存大小(KB)。

RSS: 占用物理内存大小(KB)。

TTY: 终端次设备号,“?”表示无控制终端,如后台进程。

STAT/S: 进程状态。可取如下值:

O - 就绪。等待被调度。

R - 运行。Linux下没有O状态,就绪状态也用R表示。

S - 可唤醒睡眠。系统中断,获得资源,收到信号,

都可被唤醒,转入运行状态。

D - 不可唤醒睡眠。只能被wake_up系统调用唤醒。

T - 暂停。收到SIGSTOP信号转入暂停状态,

收到SIGCONT信号转入运行状态。

W - 等待内存分页(2.6内核以后被废弃)。

X - 死亡。不可见。

Z - 僵尸。已停止运行,但其父进程尚未获取其状态。

< - 高优先级。

N - 低优先级。

L - 有被锁到内存中的分页。实时进程和定制IO。

s - 会话首进程。

l - 多线程化的进程。

+ - 在前台进程组中。

START/STIME: 进程开始时间。

TIME: 进程运行时间。

COMMAND/CMD: 进程指令。

F: 进程标志。可由下列值取和:

1 - 通过fork产生但是没有exec。

4 - 拥有超级用户特权。

PPID: 父进程ID。

NI: 进程nice值,-20到19,可通过系统调用或命令修改。

PRI: 进程优先级。

静态优先级 = 80 + nice,60到99,值越小优先级越高。

内核在静态优先级的基础上,

根据进程的交互性计算得到实际(动态)优先级,

以体现对IO消耗型进程的奖励,

和对处理器消耗型进程的惩罚。

ADDR: 内核进程的内存地址。普通进程显示“-”。

SZ: 占用虚拟内存页数。

WCHAN: 进程正在等待的内核函数或事件。

PSR: 进程当前被指派给哪个处理器运行。

4. 父进程、子进程、孤儿进程和僵尸进程

-------------------------------------

内核进程(0)

init(1)

xinetd

in.telnetd <- 用户登录

login

bash

vi

1) 父进程启动子进程后,

子进程在操作系统的调度下与其父进程同时运行。

2) 子进程先于父进程结束,

子进程向父进程发送SIGCHLD(17)信号,

父进程回收子进程的相关资源。

3) 父进程先于子进程结束,子进程成为孤儿进程,

同时被init进程收养,即成为init进程的子进程。

4) 子进程先于父进程结束,

但父进程没有回收子进程的相关资源,

该子进程即成为僵尸进程。

5. 进程标识符(进程ID)

~~~~~~~~~~~~~~~~~~~~~

PID - 进程号,是进程在操作系统中的唯一标识,进程号的分配采用延迟重用的策略进行的,在每一个时刻都可以保证进程号唯一。

二、getxxxid

------------

getpid - 获取进程ID

getppid - 获取父进程ID

getuid - 获取实际用户ID

geteuid - 获取有效用户ID

getgid - 获取实际组ID

getegid - 获取有效组ID

时间: 2024-08-27 19:37:15

【笔记整理】unix/linux的进程管理(一)的相关文章

linux内核——进程管理

在讲进程之前先说一下进程的堆栈的吧: 1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈.每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间.当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈:当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈. 2.进程用户栈和内核栈的切换 当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈转到内核栈. 进程陷

Linux之进程管理(2)相关命令之二

Linux之进程管理(2)相关命令之二 进程监控工具命令使用:uptime  top  vmstat  pmap  dstat uptime  命令 uptime - Tell how long the system has been running. 显示当前已经运行的时长及cpu核心处理状态 说明:显示系统当前时间,系统运行时长,以及当前上线人数,系统平均负载(一般按1.5.10分钟的平均负载,一般不会超过1). 选项及用法: uptime  [option] -p, --pretty  :

Linux下进程管理工具之(二):htop

实验环境: CentOS release 6.6(Final)  一台 IP地址:172.16.249.230 Htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统的top.与top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器.swap和内存状态. 用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop.比如,在查找应用程序的内存泄漏问题时.与top相比,htop提供更方便.光标控制的界面来杀死进程. htop用C语

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a

Linux基础--进程管理相关命令介绍(2)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等. (1)top ①功能:用来查看CPU,内存以及进程的状态. ②用例: ③相关注释: load average表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟 Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用百分比,ni表示调整NICE值所占用的    CPU百分比,id表示CPU的空闲比例,wa表示等待磁盘IO完成所占用的时间比例,hi表示硬件中断占     据的百分比,si表示软中断所

linux系统-进程管理-基本概念和命令

linux系统-进程管理-基本概念和命令 一 基本概念 1 进程:是程序的执行过程,是动态的,有生命周期,动态产生和消亡,程序和进程不是一一对应的 2 父进程和子进程: 子进程是有一个进程产生的进程,产生这个进程的进程成为该进程的父进程 父进程是由linux系统中调用fork产生,fork复制的内容包括父进程的数据和堆栈段以及父进程的堆栈环境 3 父进程与子进程的关系 父进程终止子进程自然终止,如不终止,则为孤儿进程,父进程自动指向init进程 子进程终止父进程没有终止,这父进程成为僵死进程 4

linux系统-进程管理-计划任务

linux系统-进程管理-计划任务 一 计划任务命令 1 at 某一时刻执行任务 2 batch 在系统负载不重的时候执行 3 cron 周期性执行 二 at命令及使用 1 at [-f文件名]时间 2 at [-d删除任务] 3 at [-l查看任务] 4 绝对计时法:hh:mm MM/DD/YY at 17:30 4/18/15 5 交互方式:at 9:00 6 使用命令文件的方式:生成文件at.script 使用at命令 at -f at.srcipt 9:00 4/18/15 or at

Linux之进程管理(2)相关命令之三

Linux之进程管理(2)相关命令之三 (IPC)进程间通信及信号控制命令 kill  killall   kill 命令 kill - terminate a process,Inter Process Communication 进程通信工具,默认为发送终止信号 选项及用法: kill  -l  #显示所有信号CODE及名称 kill  [-SIGNAL]  pid...#指定发送信号给对应pid的进程,不指定信号代码默认为15信号 常见的信号:(注:可以使用man 7 signal打开帮助

Linux之进程管理(2)相关命令之四

Linux之进程管理(2)相关命令之四 设置或调整进程优先级命令: nice  rnice nice 命令 nice - run a program with modified scheduling priority 运行一个程序时修改调度其进程优先级 格式及用法: nice  [options]  [command [args]] -n  # :#表示要设置此程序nice值,-20到19,值越下,优先级越高 注:-20到19的每个nice值分别对应(Centos5中为100-139,CentO