linux进程
cpp加油站
公众号:cpp加油站,专注分享linux下cpp知识
展开
-
linux守护进程
1、什么是守护进程守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件;守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口或者资源;守护进程的父进程一般都是init进程,以为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进...原创 2019-05-06 15:34:23 · 689 阅读 · 0 评论 -
浅谈僵尸进程
1.linux系统进程都是怎么生成的进程运行时,shell命令行接收到了指令,进而调用fork函数来创建一个进程。2.僵尸进程是怎么产生的当子进程退出时,父进程没有调用wait函数或者waitpid()函数等待子进程结束,又没有显式忽略SIGCHLD信号,那么它将一直保持在僵尸状态,如果这时父进程结束了,init进程会自动接收这个子进程,为它收尸,但如果父进程是一个循环,不会结束,那么子进程...原创 2019-05-06 15:35:59 · 149 阅读 · 0 评论 -
进程的编译过程及内存布局
1. 进程的编译过程一个c程序,编译时一般分为三步,预处理、编译、链接。1.1 预处理预处理相当于如下命令:g++ -E hello.cpp -o hello.i-E就是执行预编译,具体内容是展开#define、#include、#ifndef等等预编译指令。1.2 编译编译就是处理如下命令:g++ -S hello.i -o hello.s-S就是执行编译,将源代码转换为机器能...原创 2019-05-06 16:05:01 · 235 阅读 · 0 评论 -
浅析fork函数
1、fork函数的原型pid_t fork();返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程的进程id,否则,出错返回-1.2、调用fork时发生的事一个进程调用fork()函数后,系统先给新的进程分配资源,例如数据空间、堆、栈等资源。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。所以子进程拥有独立的地址空间。创...原创 2019-05-06 16:05:36 · 235 阅读 · 0 评论 -
进程间通信
1.信号信号是比较复杂的通信方式,用于通知接收进程有某种事情发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信息语义函数signal外,还支持语义符合Posix 1标准的信号函数sigaction。signal() 告诉系统内核怎么处理该信号sigaction() 也是处理信号,但比signal更健壮kill() 发送信号ala...原创 2019-05-06 16:09:41 · 144 阅读 · 0 评论 -
共享内存同步机制
1. 使用posix有名信号量进行同步有名信号量既可用于线程间的同步,又可用于进程间的同步。两个进程,对同一个共享内存读写,可利用有名信号量来进行同步。一个进程写,另一个进程读,利用两个有名信号量semr, semw。semr信号量控制能否读,初始化为0。 semw信号量控制能否写,初始为1。示例代码如下://读共享内存#include <sys/ipc.h>#includ...原创 2019-05-06 16:11:32 · 1890 阅读 · 0 评论