随笔分类 -  Linux系统编程

摘要:由于在一个进程中,各个线程都可以操作共享数据,cpu的调度问题,可能会导致数据混乱。例如两个线程在操作同一个全局变量,一个线程在对变量进行修改后,还为来得及将修改的变量写入内存,cpu就结束对这个线程的运行,去运行另一个线程。如果另一个线程也对这个变量进行了修改,并写入了内存,就可能导致数据混乱。这 阅读全文
posted @ 2021-02-22 13:06 さくらむすび 阅读(70) 评论(0) 推荐(0)
摘要:一、线程简介 一个单独的进程可以看做是一个线程。在创建线程之后,程序运行的地址空间没有发生变化,进程退出变成了线程,有主线程和子线程之分。创建出的主线程和子线程共用地址空间,有各自独立的PCB,子线程的PCB是从主线程中拷贝而来的。 主线程和子线程共享.text、.data、.bss、堆、环境变量、 阅读全文
posted @ 2021-02-20 13:59 さくらむすび 阅读(98) 评论(0) 推荐(0)
摘要:1.守护进程的特点 ①后台服务进程 ②独立于控制终端 ③周期性执行某任务 ④不受用户登录注销影响 ⑤一般采用以d结尾的名字 2.进程组 组里边的第一个进程就是进程组的组长,进程组的ID == 进程组组长的ID。 3.会话 - 多个进程组 创建一个会话的注意事项: ①不能是进程的组长 ②创建会话的进程 阅读全文
posted @ 2021-02-19 13:48 さくらむすび 阅读(144) 评论(0) 推荐(0)
摘要:一、信号的概述 信号是linux操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,原本操作将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。 1.信号的特点: 阅读全文
posted @ 2021-02-19 10:10 さくらむすび 阅读(258) 评论(0) 推荐(0)
摘要:mmap的作用是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。 1.函数原型:void *mmap(void *addr,size_t length,int prot,int flags,int fd,off_t offset); addr:映射区的首地址,可以传NULL lengt 阅读全文
posted @ 2021-02-18 13:39 さくらむすび 阅读(70) 评论(0) 推荐(0)
摘要:1.管道的概念 管道本质上是内核中的一个缓冲区,让具有血缘关系的进程之间可以进行通信。它其实相当于一个伪文件,不占用磁盘空间,我们可以通过和对文件一样的读写方式去操作管道。 管道具有两部分,读端和写端,分别对应两个文件描述符,数据从写端流入,从读端流出。 操作管道的进程被销毁之后,管道会被系统自动释 阅读全文
posted @ 2021-02-17 13:50 さくらむすび 阅读(217) 评论(0) 推荐(0)
摘要:1.一些概念: 孤儿进程 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为进程领养孤儿进程。 僵尸进程 进程终止,父进程尚未回收,子进程残留资源(PCB)存放于内核中,变成僵尸(Zombie)进程。 僵尸进程不能使用kill命令清除,因为kill命令只是用来终止进程的 阅读全文
posted @ 2021-02-15 21:07 さくらむすび 阅读(101) 评论(0) 推荐(0)
摘要:fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数去执行另一个程序,当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,调用exec函数并不创建新进程,所以调用exec前后进程的id没有变化 阅读全文
posted @ 2021-02-15 15:15 さくらむすび 阅读(208) 评论(0) 推荐(0)
摘要:1.fork函数 作用:创建一个子进程 函数原型:pid_t fork(); 返回值: 两个返回值,一个是父进程的返回值,其值为子进程的进程id;一个是子进程的返回值,为0代表创建成功,-1代表创建失败。 循环创建n个进程: 1 #include <stdio.h> 2 #include <unis 阅读全文
posted @ 2021-02-14 20:49 さくらむすび 阅读(59) 评论(0) 推荐(0)
摘要:1.简介 环境变量,是指在操作系统中用来指定操作系统运行环境的一些参数,通常具备以下特征: ①字符串(本质);②用统一的格式:名 = 值[:值];③值用来模描述进程环境信息; 引入环境变量表:须声明环境变量,extern char ** environ; 打印当前进程的所有环境变量 2.常见环境变量 阅读全文
posted @ 2021-02-14 14:59 さくらむすび 阅读(107) 评论(0) 推荐(0)
摘要:1.程序与进程 程序是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的设备……)。 进程是活跃的程序,占用系统资源,在内存中执行(程序运行起来会产生一个进程)。 程序就好比是剧本,而进程就是按照剧本演的戏(舞台、演员、道具等就相当于系统资源),同一个剧本可以在多个地方同时上演,同 阅读全文
posted @ 2021-02-14 13:47 さくらむすび 阅读(89) 评论(0) 推荐(0)