进程相关知识梳理

  • 一、概念

程序:一组有序的指令集合,存储在磁盘中,没有执行的概念,是静态的。

进程:一个程序执行的体现,包括创建、调度、执行、消亡,是系统资源分配的最小单位。

线程:轻量级的进程,多个线程使用同一片进程空间,因此存在资源竞争问题。

  • 二、进程的组成

1、正文段

2、用户数据段

3、系统数据段

      正文段:程序中的代码。

      用户数据段:程序中的全局变量、常量或者动态开辟的空间等。

     系统数据段:堆栈、PCB(Process Control block)

      PCB:进程控制块

      Pid:进程id,是操作系统管理进程的唯一标识

      程序 = 正文段 + 用户数据段

  • 三、进程的分类

1、交互类进程:由shell控制,分为前台进程、后台进程两种。

      前台进程:可以输入,可以输出

      后台进程:可以输出,不可以输入

2、批处理进程:不属于任何终端,将一系列任务交由一个队列依次执行;

3、守护进程:是一个后台进程(不属于交互类进程),在操作系统启动的时候就可以运行的一个进程,在操作系统即将结束的时候结束的进程。

  • 守护进程实现流程

1、创建子进程,父进程结束;fork、exit

2、创建一个会话组,并使子进程成为会话组组长(摆脱终端控制);setid

3、改变进程的工作目录(建议使用不被卸载的目录);chdir

4、重设文件掩码;umask

5、关闭所有已经打开的文件描述符;getdtablesize

6、守护进程功能。

  • 四、进程的状态

运行态、等待态、停止态、僵尸态、死亡态

  • 五、进程相关命令

1、ps:查看进程信息

     ps   -aux:查看所有用户的进程详细信息

2、top:动态查看进程信息

3、kill:向进程发送信息

              kill  -l:查看系统中支持的信号(总62个)

              kill  信号编号  进程id号:向进程发送信号

4、进程  &:将进程放到后台运行

5、fg:将后台进程提到前台

            fg   任务号

            fg   %   进程号

 6、bg:将后台停止态的进程恢复到运行态

            bg   任务号

            fg   %   进程号

  • 六、进程相关的系统调用函数

1、fork:创建一个子进程

              子进程id号返回给父进程,0返回给子进程。

              子进程拷贝父进程(除进程id号)外的所有内容,不过子进程从fork函数之后开始运行程序,规定父进程会回收子进程产生的资源,如果父进程先于子进程结束,子进程将会变成孤儿进程,由init进程收养。

2、exit/_exit:结束进程

                       exit为库函数调用,因此在结束进程前会刷新缓冲区。

                       _exit为系统调用函数,因此在调用之后内核将直接结束进程,不会刷新缓冲区。

3、wait/waitpid:等待进程退出,回收进程产生的资源

                            wait:阻塞等待任 一 “子进程”退出

                            waitpid:可阻塞/非阻塞等待指定/任一进程退出,0为阻塞等待,WNOHANG为非阻塞等待。

  • 七、进程间通信方式

一、本机间进程通信

1、管道通信:有名管道(pipe)、无名管道(mkfifo);

2、信号通信;signal

IPC对象机制

3、共享内存;shmget、shmat、shmdt、shmctl

4、消息队列;msgget、msgsnd、msgrcv、msgctl

5、信号灯集;semget、semctl、semop

二、跨主机通信

6、套接字通信;

你可能感兴趣的:(linux,运维,服务器)