进程、线程和进程间通信——进程的创建和回收

目录

一、进程基础

1.进程概念

2.进程内容

3.进程类型

4.进程状态

二、进程相关命令

1.查看进程信息

(1)ps     查看系统进程快照

(2)top    查看进程动态信息

(3)/proc  查看进程详细信息

2.改变进程优先级

(1)nice   按用户指定的优先级运行进程

(2)renice   改变正在运行进程的优先级

3.前台进程,后台进程

(1)jobs   查看后台进程

(2)fg      把后台运行的进程放到前台运行

(3)bg     将挂起的进程在后台运行

4.父子进程

(1)fork     创建子进程

(2)exit    进程的退出

(3)wait / waitpid    进程回收

5.子进程进阶

(1)一个父进程生成五个子进程

(2)实现一个进程链,父进程->子进程->孙进程->重孙进程->重重孙进程


一、进程基础

1.进程概念

程序(静态的 ):存放在磁盘上的指令和数据的有序集合(文件)

进程(动态的):执行一个程序所分配的资源的总称
进程是程序的一次执行过程
包括创建、调度、执行和消亡

2.进程内容

 BSS段:BSS段通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block   Started by Symbol的简称。

数据段:数据段通常是指用来存放程序中已初始化的全局变量的一块内存区域。

代码段:代码段通常是指用来存放程序执行代码(机器码)的一块内存区域。这部分区域的大小    在程序运行前就已经确定,在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

堆(heap):堆是用于存放进程运行中被动态分配的内存段,当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)

栈(stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进后出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区

进程控制块(pcb):进程标识PID 、进程用户 、进程状态、优先级 、文件描述符表

3.进程类型

交互进程:在shell下启动。以在前台运行,也可以在后台运行

批处理进程:和在终端无关,被提交到一个作业队列中以便顺序执行

守护进程:和终端无关,一直在后台运行

4.进程状态

运行态:进程正在运行,或者准备运行

等待态:进程在等待一个事件的发生或某种系统资源 可中断 不可中断

停止态:进程被中止,收到信号后可继续运行

僵尸(死亡)态(Linux特有)已终止的进程,但pcb没有被释放 

二、进程相关命令

1.查看进程信息

表头

含义

F

进程标志,说明进程的权限,常见的标志有两个:

  • 1:进程可以被复制,但是不能被执行;
  • 4:进程使用超级用户权限;

S

进程状态。进程状态。常见的状态有以下几种:

  1. -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
  2. -R:该进程正在运行。
  3. -S:该进程处于睡眠状态,可被唤醒。
  4. -T:停止状态,可能是在后台暂停或进程处于除错状态。
  5. -W:内存交互状态(从 2.6 内核开始无效)。
  6. -X:死掉的进程(应该不会出现)。
  7. -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
  8. -<:高优先级(以下状态在 BSD 格式中出现)。
  9. -N:低优先级。
  10. -L:被锁入内存。
  11. -s:包含子进程。
  12. -l:多线程(小写 L)。
  13. -+:位于后台。

UID

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值