进程与线程

一、进程

1、查看进程:ps-aux  ps-ef ps-axj top pstree

2、什么是进程

     程序的一次动态执行过程,包括创建、调度、消亡

3、进程和程序的区别

程序(a.out)是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念

进程(./a.out)是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡

4、

 4、进程的类型

    交互进程  (后台进程 、前台进程)  批处理进程  守护进程

5、进程的状态

     运行态、等待态(可中断、不可中断)、停止态、死亡态

6、进程的模式

     用户进程、内核进程

7、进程相关的系统调用

     创建进程(fork)  frok之后子进程才创建成功 基本完全复制

8、getpid getppid

     查看当前进程PID 查看父进程PID

9、进程的推出

    exit _exit  return

注意:(1)exit会刷新缓冲区

     (2)_exit不会刷新缓冲区

10、wait  waitpid

 (1)wait

调用该函数使进程阻塞,直到任一个子进程结束或者是该进程接收到了一个信号为止。如果该进程没有子进程或者其子进程已经结束,wait函数会立即返回

  (2)waitpid

11、孤儿进程

     父进程先退出,子进程被systemd进程收养,变为后台进程

     

12、僵尸进程

       子进程先于父进程退出,父进程没有回收子进程的资源(task_struct),此时子进程就变为僵尸进程

     

 13、守护进程 

  1. 在后台运行,与终端无关
  2. 在系统启动时运行,系统关闭时停止运行

 14、进程组

进程组是一个或多个进程的集合。进程组由进程组ID来唯一标识。

每个进程组都有一个组长进程,进程组ID就是组长进程的进程号

15、 会话组

会话组是一个或多个进程组的集合

16、守护进程的创建

 (1)创建子进程,父进程退出

 (2)在子进程中创建新会话

 (3)改变当前目录为根目录

 (4)重设文件权限掩码

 (5)关闭文件描述符

17、无名管道

特点:

  1. 只能用于具有亲缘关系(父子进程、兄弟进程)的进程之间的通信
  2. 半双工的通信模式,具有固定的读端和写端

(3)管道可以看成是一种特殊的文件(内核中的一块内存

 3、为什么无名管道只能用于具有亲缘关系之间的通信?

父进程创建了管道,获得了文件描述符,子进程继承了父进程的文件描述符(fd[0]、fd[1])

18、有名管道

特点:

(1)无名管道只能用于具有亲缘关系的进程之间,这就限制了无名管道的使用范围

(2)有名管道可以使互不相关的两个进程互相通信。有名管道可以通过路径名来指出,并且在文件系统中可见

(3)进程通过文件IO来操作有名管道

(4)有名管道遵循先进先出规则

(5)不支持如lseek() 操作

二、信号

    1、概念

2、创建信号

 

 

 

 3、alarm

   

 4、pause

    pause()函数是用于将调用进程挂起直到收到信号为止。

5、kill(给指定进程发信号) 

6、raise(给自己发信号)

 6、共享内存

 7、消息队列

三、线程

 

2、线程的同步和互斥

步骤:创建锁  初始化锁  上锁  解锁

3、同步

 

 5、无名信号量

 6、有名信号量

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值