Linux系统编程1:进程基础
程序与进程
如果程序是菜谱,进程就是厨师烹饪;
如果程序是乐谱,进程就是乐师演奏;
如果程序是剑谱,进程就是剑客舞剑;
如果程序是棋谱,进程就是棋士复盘;
程序是静的,进程是动的。
进程与程序区别
概念
进程:程序在计算机上的一次执行过程,执行中的程序。
- 进程是一个抽象概念
- 本质
- 程序在地址空间中按照代码逻辑控制流执行
- 资源分配最小单位
从代码到程序
从程序到进程
- 内核将程序读入内存,为程序镜像分配内存空间。
- 内核为该进程分配进程标志符
PID
。 - 内核为该进程保存
PID
及相应的进程状态信息。
进程控制块(PCB)
:保存进程控制信息
程序格式ELF
ELF
(Executable and Linkable Format)文件格式,一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。
查看程序(ELF文件):readelf -S 文件名
查看进程空间大小:size 文件名
虚拟存储器/虚拟地址空间
gdb
查看内存映射信息:info proc mapping
.bss
(Block Started by Symbol)存放程序中未初始化的全局变量和静态变量,程序执行之前BSS段会自动清0
。
进程状态
类似视频/音频播放器
如何查看进程
ps命令
- 查看某进程
- 通过进程PID查看:ps -p 进程PID
- 通过命令行查看:ps -C 命令行
- 查看程序的PID: pidof 程序名
- 查看进程
Unix从操作风格分为System V风格和BSD风格。它们在目录结构、脚本、命令行等方面存在一些差异。
- System V, 曾经也被称为AT&T SystemV,是Unix操作系统众多版本中的一支。它最初由AT&T开发。
- BSD(BerkeleySoftware Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由伯克利加州大学(UniversityofCalifornia, Berkeley)开发。
随着一些并不基于这两者代码的UNIX实现的出现,例如Linux,这一归纳不再准确。像POSIX这样的标准化努力一直在试图减少各种实现之间的不同。
-
列表示说明
-
进程状态标识
pstree命令
以树状图的方式展现进程之间的派生关系 -
安装
yum install psmisc
top命令
实时显示系统中各个进程的资源占用,类似Windows任务管理器。
Linux一切皆文件,在
/proc/
下也可以查看到进程。
如何创建进程
如何杀死进程