【学习笔记】1. 进程与进程组

好烦啊,写了很久的文章,按了 ctrl + shift + H 莫名其妙的页面就关闭了

0 索引

  1. 进程与进程组
  2. 各类不一样的进程
  3. 一个进程的演变

1. 进程

关于进程的结构和性质,就不作过多介绍,具体的能够参考下以前的几篇文章。php

一般而言,咱们打开的一个软件(QQ和微信),执行的一个脚本(hello.c、hello.php/hello.java :能够当作运行的一个程序)
都是经过进程的形式。java

下图:查看的是全部运行中的进程nginx

clipboard.png

因此不管打开图形界面一个软件,或者终端运行 ,都是包装成一个进程的形式运行shell

进程的退出 : 是经过信号 退出的

2. 子进程

以nginx 和 php-fpm 为例,他们都是经过父进程,fork 多个子进程。来执行并发请求。
子进程共享父进程的资源和堆栈信息,父进程便于管理子进程。
至关于同时打开多个QQ页面,每个窗口页面和一个好友聊天,接受和发送当前好友的消息。segmentfault

clipboard.png

须要注意的是:fork 子进程,会返回二个值。 分别是当前父进程和新生成的子进程。
能够分别对他们得逻辑分别处理。bash

clipboard.png

先运行父进程逻辑,再运行子进程逻辑。(当前能够经过vfork等暂停父进程的继续流程)服务器

clipboard.png

3. 进程的状态

3.1 进程状态

进程的系统状态有一下几种微信

clipboard.png

各个状态的调用和切换以下图多线程

clipboard.png

IPC 进程通讯,也会影响状态

3.2 查看进程的状态

PS : process status 是一个管理进程状态的内核命令架构

和系统状态值对应,有如下集中状态值:

clipboard.png

最经常使用的,咱们运行的状态值

  • R : 可运行
  • l : 表示进程是多线程的

PS的参数信息

clipboard.png

-a 是全部的终端
-A: 包括内核的
-r : running 包括正在运行的
-o : 分类输出

3.3 proc

proc 里面包含什么信息

clipboard.png

clipboard.png

3.4.1 查看程序的执行文件

clipboard.png

3.4.2 查看cmd

clipboard.png

3.4.3 查看进程打开的文件

clipboard.png

参考nginx 打开的文件

clipboard.png

4. 简单介绍终端

在介绍终端以前,先简单的介绍下控制台。
以下图所述,控制台通常在服务器独享,客户端链接的地方是终端,能够有多个。

4.1 控制台:

clipboard.png

clipboard.png

4.2 终端在内核中的分类:

clipboard.png

两者之间的关系:

clipboard.png

4.3 不一样的终端

  1. 虚拟终端: tty1-tty6 能够经过快捷键切换
  2. 伪终端 PTY SSH 的界面都是伪终端

clipboard.png

伪终端的架构

clipboard.png

// 查看当前终端名
tty

5. 进程组

clipboard.png

6. 会话

clipboard.png

默认打开一个 bash 和一个虚拟终端 /dev/tty1

clipboard.png

构成了一个回话。(用户登陆)

clipboard.png

bash : 就是一个shell 进程

而后敲命令:就是从新开启新的进程组

7. 进程的切换

使用伪终端

clipboard.png

ctrl + c 终止后

clipboard.png

s + 表明 又返回了前台进程组了

ctrl + c : 发给了前台进程组了
而后经过shell 切换到了新的前台控制组

clipboard.png

没有登陆的终端,没有bash

8. shell

clipboard.png

clipboard.png

clipboard.png

不断的循环这个过程

相关文章
相关标签/搜索