linux系统编程 --进程基础

1概念

1.1程序与进程

程序: 2进制文件占用磁盘空间
进程: 启动的程序;1:所有数据都在内存中 2:需要占据更多的物理资源(CPU 物理内存)3:资源分配最小单位
例如:

			如果程序是棋谱,进程就是棋士复盘;
			程序是静的,进程是动的。

1.1.2从程序到进程

内核将程序读入内存,为程序镜像分配内存空间。
内核为该进程分配进程标志符PID
内核为该进程保存PID及相应的进程状态信息

在这里插入图片描述

1.2并发 并行

No. 概念 状态 硬件 特点
1 并发(concurrency) 两个或者多个进程在同时存在 单核 进程指令同时或者交错执行。
2 并行(parallellism) 两个或者多个进程在同时执行 多核 一种特殊的并发

1.3进程控制块(PCB):保存进程控制信息

1:进程id(pid_t类型表示非负数整形)
2:进程状态
3:虚拟地址信息
4:进程要依赖一个终端
5:每一个进程中都有umask掩码

1.4进程状态

在这里插入图片描述

状态 含义
1 就绪(Ready) 进程已获得到除CPU以外的所有必要的资源,获得CPU立即执行
2 运行(Running) 程序正在CPU上执行
3 阻塞(Blocked) 等待某个事件发生而无法执行时,放弃CPU

1.5程序格式ELF

ELF(Executable and Linkable Format)文件格式,一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件

查看程序(ELF文件): readelf -S 文件名
查看进程空间大小: size 文件名
在这里插入图片描述

1.6虚拟存储器/虚拟地址空间

在这里插入图片描述

段名 组成 来源
代码段 .text 可执行文件
数据段 .data bss 可执行文件
堆栈段 heap stack 请求
变量 位置
经过初始化的全局变量和静态变量 .data
未经初始化的全局变量和静态变量 .bss
函数内部声明的局部变量 stack
const修饰的全局变量 .text
const修饰的局部变量 stack
字符串常量 .text

1.7如何查看进程:

OS 命令 e.g.
1 Windows tasklist tasklist /FI “PID eq 进程PID”
2 Linux ps / pstree / top -

1.6.1ps

查看某进程
通过进程PID查看:ps -p 进程PID
通过命令行查看:ps -C 命令行

查看进程

风格 命令 属性说明
1 BSD风格 ps aux a: 终端上所有用户的进程;u:以用户为中心显示详细信息,x:无终端进程
2 System V风格 ps -ef e:所有进程;f:树状显示

查看某个进程:grep (查找) 最下面是grep进程
在这里插入图片描述
在这里插入图片描述

1.6.1.1BSD风格

在这里插入图片描述

No. 标识 含义
1 USER 用户
2 PID 进程ID
3 %CPU 进程占用的CPU百分比
4 %MEM 占用内存的百分比
5 VSZ 进程虚拟大小
6 RSS 常驻内存(内存中页的数量)
7 TTY 终端ID
8 STAT 进程状态
9 START 启动进程的时间
10 TIME 进程消耗CPU的时间
11 COMMAND 命令的名称和参数

进程状态标识

No. 标识 含义
1 D 不可中断Uninterruptible(usually IO)
2 R 正在运行,或在队列中的进程
3 S 处于休眠状态
4 T 停止或被追踪
5 Z 僵尸进程
6 W 进入内存交换(从内核2.6开始无效)
7 X 死掉的进程
8 < 高优先级
9 n 低优先级
10 s 包含子进程
11 + 位于后台的进程组

PPID 父进程 PGID进程组 SID绘画ID
在这里插入图片描述

1.6.2pstree命令

以树状图的方式展现进程之间的派生关系
在这里插入图片描述

1.6.3top命令

实时显示系统中各个进程的资源占用,类似Windows任务管理器
在这里插入图片描述

Linux一切皆文件,在/proc/下也可以查看到进程。

1.8如何创建进程

No. OS 命令
1 Windows 程序名
2 Linux 程序名

1.9如何杀死进程

No. OS 命令
1 Windows taskkill /F /PID 进程标识/taskkill /F /IM 程序名
2 Linux kill 进程标识PID

在这里插入图片描述
在这里插入图片描述

发布了30 篇原创文章 · 获赞 4 · 访问量 2020

猜你喜欢

转载自blog.csdn.net/weixin_45639955/article/details/104339172