![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进程
RayCongLiang
广东海洋大学16级物联网学生
展开
-
【Linux学习笔记32】进程与线程的基本理解
UNIX标准把进程定义为一个其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源,我们可以将进程看作是正在运行的程序。进程与程序的区别程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念。(如图中查看执行文件的内部段就是程序,好比菜谱)进程是一个动态概念,它是程序执行的过程,包括创建、调度和消亡。(就是程序当下的一种状态,好比按照菜谱做菜,)下面更加具体地介...原创 2019-08-19 11:50:46 · 158 阅读 · 0 评论 -
【Linux学习笔记33】进程的状态与创建退出(fork()与exit(0)/_exit)
进程的状态父进程通过fork()创建子进程(子进程进入就绪态,等待内核调用至CPU运行)子进程进入CPU,状态改为执行态若运行时间耗尽,或者被高优先级抢占,则返回为就绪态等待若资源不足,则进入睡眠挂起态等待资源。睡眠挂机分为:浅度睡眠:可被中断,可以接受信号马上响应。深度睡眠:不可被中断,接受信号仍然响应不了。(一般出现在等待资源为硬件资源,如按键唤醒)睡眠挂起状态获得资源马上进入就...原创 2019-08-19 12:53:39 · 731 阅读 · 0 评论 -
【Linux学习笔记34】进程操作核心API(exec组函数,wait/waitpid)
引言系统创建多进程的目的就是让子进程能够帮助父进程完成更多事情,那通过上一篇笔记fork函数创建的子进程都拥有与父进程相同的程序,但是我们的目的是要让子进程完成一些其他事情,那么这篇笔记主要就是记录操作子进程运行其他代码的API。exec组函数head详细功能在进程中加载新的程序文件或者脚本,覆盖原有代码,重新运行头文件#include<unistd.h&...原创 2019-08-20 00:58:36 · 311 阅读 · 0 评论 -
【Linux学习笔记35(补充)】精灵进程的预备知识
引言精灵进程又称守护进程。进程负责程序的基本服务,但是我们也希望这种服务能够在后台持续的进程,不会因为用户的切换或者登录终端的关闭而停止。但是首先我们要知道的概念是进程的对话概念。进程的对话概念从上图中可以看到首先登录shell就是进入一个对话期,创建一个对话。然后在系统中,各种各样的进程被分为各种组,那么其实在方便与进程进行通信(发信号)。前台进程组可以接受控制终端的输入与产生的信...原创 2019-08-20 12:40:52 · 155 阅读 · 0 评论 -
【Linux学习笔记35】教你写精灵进程(附精灵进程模板)
引言精灵进程又称守护进程。进程负责程序的基本服务,但是我们也希望这种服务能够在后台持续的进程,不会因为用户的切换或者登录终端的关闭而停止。阅读本篇笔记应该补充的预备知识: 【Linux学习笔记35(补充)】进程的对话期概念精灵进程代码的编写...原创 2019-08-20 13:46:45 · 198 阅读 · 0 评论 -
【Linux学习笔记36】进程间的通信(一)(匿名管道与有名管道)
Linux下进程间通信概述传统的进程间通信方式无名(匿名)管道(pipe) 最简单,只能用于一对一亲缘进程的少量数据传输有名管道(fifo)信号(signal) 异步方式System V IPC对象共享内存(share memory) 适合于大数据量传输,不经过内核中转消息队列(message queue)信号量(semaphore)POSIX信号量(无名、有名)BS...原创 2019-08-21 15:50:55 · 323 阅读 · 0 评论 -
【Linux学习笔记37】进程间的通信(二)(信号机制:发送,缺省,忽略,捕捉)
异步信号介绍信号大部分都是以异步的机制存在的。异步指的是信号随时会发生,不随规律或者控制所限制。下面先介绍一下Linux系统中有哪些信号:kill -l红色:非实时信号(非可靠信号):这种信号没有优先级,可以相互嵌套,如果目标进程没有及时相应非实时信号,那么随后到达的该信号将会被丢弃。绿色:实时信号(可靠信号):具有优先级。实时信号的相应次序是按照接收顺序排队,不嵌套。因此即使实时信...原创 2019-08-22 13:01:14 · 737 阅读 · 0 评论 -
【Linux学习笔记38】进程间的通信(三)(信号的嵌套,挂起,信号安全)
引言上一篇笔记主要是介绍了信号的核心API,但是信号还是存在一些特征:比如说信号在响应信号的过程中,有另外一个信号过来会不会发生嵌套?或者多个信号进行访问,进程应该是有序响应还是丢弃呢?或者进程设置信号的阻塞掩码,子进程是否会继承呢?或者挂起的信号是否也会继承给子进程?那么这篇笔记主要是解答以上几个问题。阻塞掩码是否会被子进程继承?代码实现:代码运行结果:因此结论是:...原创 2019-08-22 17:20:33 · 1000 阅读 · 0 评论 -
【Linux学习笔记39】SYS-V 进程间的通信(一)(共享内存)
系统V(五)的IPC原理假设用户中有P1,P2,P3三个进程,那么在SYS-V系统内核中存在IPC对象以供它们进行通信在IPC对象中使用KEY来表示IPC对象那么每个进程都会使用IPC对象,每个进程打开IPC对象都有相对应的id,然后进程就会根据id来操作IPC对象一般使用的IPC对象有:共享内存、消息队列、信号量等如何在系统中查看IPC对象:ipcs -a 表示查看系统中...原创 2019-08-23 12:18:07 · 241 阅读 · 0 评论 -
【Linux学习笔记40】SYS-V 进程间的通信(二)(消息队列)
引言回忆一下之前的管道,存在的弊端是管道中的数据并没有做任何标记,因此无法读取指定的数据,并且读者只通信,只能按照次序读数据。在多进程之间通信只能使用多条管道来分别处理。那么消息队列可以理解为增强型的管道,能够提供一种带有数据标识的特殊管道,使得每段写入的数据都具备标识,读取数据只要指定标识读取即可,并且不会受到其他消息的干扰。消息队列代码实现1.创建消息队列 msgget2.发送消息...原创 2019-08-23 13:00:56 · 213 阅读 · 0 评论 -
【Linux学习笔记41】SYS-V 进程间的通信(三)(信号量)
信号量的简介信号量是代表一类资源。在编程中,如果要使用资源,首先要知道是否有资源可用。以之前的共享内存为例子,P1往共享内存写入数据的操作首先要申请资源,申请成功后才能往共享内存中写入数据,那么写入成功后,整个共享内存中的资源就会减一。那么信号量就是指这个共享内存中的资源。P1写入数据到SHM,首先要申请空间:P(s1)P1申请资源成功,写入数据到SHM:V(s2)P2申请从SHM读出...原创 2019-08-23 14:53:57 · 421 阅读 · 0 评论 -
【Linux学习笔记42】进程间的通信(四)(POSIX有名信号量)
引言上一篇笔记记录了系统五的信号量,能够让共享内存中的读写操作进行同步。而POSIX有名信号量是单独的变量(即将系统五信号量中的信号量元素单独讨论)。POSIX有名信号量与SYS-V信号量相同地方:逻辑相同:都代表资源都存在于进程之外:POSIX:/dev/shm SYS-V:内核都用于同步进程POSIX有名信号量与SYS-V信号量不同地方:相对而言,SYS-V信号量操作复杂...原创 2019-08-24 00:26:49 · 214 阅读 · 0 评论