Linux学习
文章平均质量分 88
初学笔记
"派派"
这个作者很懒,什么都没留下…
展开
-
信号量实现生产消费模型
这里基与环形队列与信号量来实现一个简单的生产消费模式。当临界资源可以将其细分时,可以允许多个执行流去访问它。原创 2023-09-23 11:30:11 · 77 阅读 · 0 评论 -
Linux环境下的开发工具(yum、vim、gdb、make/Makefile)
预定义变量获取变量值:$(变量名)函数:例如:原创 2023-07-19 11:46:18 · 360 阅读 · 0 评论 -
IO多路转接—select,poll,epoll
系统提供select函数来实现多路复用输入/输出模型.select系统调用是用来让我们的程序监视多个文件描述符的状态变化的;程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态改变函原型数参数解释:nfds:需要监视的最大的文件描述符值+1可读文件描述符的集合,是输入输出型参数,调用时用户告知内核需要监视哪些文件描述符的读事件是否就绪,返回时内核告知用户哪些文件描述符的读事件已经就绪。原创 2023-04-17 15:07:35 · 285 阅读 · 0 评论 -
Linux中线程池的制作
简单线程池的制作原创 2022-12-07 11:02:10 · 393 阅读 · 0 评论 -
Linux生产者消费者与信号量
生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取。阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。原创 2022-11-27 17:26:16 · 734 阅读 · 1 评论 -
Linux线程安全
将mutex的值与al中的值进行交换,交换后mutex的值变为了0,后面对该al中的值进行判断,若是1,则该线程申请锁成功,可以进入临界区对临界资源进行访问。解锁的过程也是这样,将内存中的mutex置回1,使得下一个申请锁的线程在执行交换指令后能够得到1,唤醒那些因为申请锁失败而被挂起的线程。1.大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。是可以的,在临界资源对应的临界区中上锁了,临界区还是多行代码,是多行代码就可以被切换。原创 2022-11-27 09:39:18 · 544 阅读 · 0 评论 -
Linux中线程的介绍
Linux下线程的介绍原创 2022-11-24 20:52:53 · 857 阅读 · 0 评论 -
动静态库的制作
彻底搞懂Linux下的动静态库原创 2022-11-21 16:38:16 · 816 阅读 · 0 评论 -
进程间的信号
从上面可知,每个信号的阻塞与未决状态都是一个比特位,0或1。所以,未决和阻塞标志可以用相同的数据类型sigset_t来存储,sigset_t称为信号集。这个类型可以表示每个信号的“有效”或“无效”状态,在阻塞信号集中“有效”和“无效”的含义是该信号是否被阻塞,而在未决信号集中“有 效”和“无效”的含义是该信号是否处于未决状态。3.4信号集操作函数sigset_t类型表示了信号的阻塞与未决状态,至于该类型的具体实现不必关心,我们可以使用以下函数来操作sigset_t。原创 2022-11-18 20:29:56 · 923 阅读 · 0 评论 -
进程间的通信
目录一.进程间通信的介绍1.1通信的目的1.2进程间通信的分类二.匿名管道2.1概念2.1.2使用步骤2.2管道读写规则2.3特点2.4多进程派发任务的实现2.5管道大小三.命名管道3.1概念3.2命名管道的打开规则3.3命名管道演示3.3.1用命名管道实现serve&client通信3.3.2用命名管道实现进程控制3.4命名管道和匿名管道的区别3.5命令行中的管道四.system V进程间通信4.1system V原创 2022-11-10 07:38:38 · 1026 阅读 · 0 评论 -
基础IO介绍
Linux基础IO入门详解原创 2022-10-31 23:33:20 · 527 阅读 · 0 评论 -
进程程序替换
用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程可以用过要调用一种exec函数去执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id没有改变。原创 2022-10-19 19:30:37 · 456 阅读 · 1 评论 -
Linux进程控制
.第三个参数option:若pid指定的子进程没有结束,那们waitpid的返回值为0,如果正常结束则返回子进程的id(用于基于阻塞的等待轮询访问)0代表阻塞等待,等待期间父进程不做任何事情。概念:linux当中父子进程代码和数据是共享的前提是建立在不发生修改的情况下,当任何一方尝试对其进行修改就会发生写时拷贝,子进程和父进程各自私有一份。非阻塞等待:父进程不断检查子进程的退出状态,而在检测子进程的期间可以干自己的事情。fork之后,那为什么要给子进程程返回0,给父进程返回子进程的id?原创 2022-10-04 13:21:06 · 663 阅读 · 0 评论 -
Linux下的进程地址空间
我们在讲C语言的时候,老师给大家画过这样的空间布局图我们可以通过代码来验证一下结果是:可以得出结论上面的图是正确的。我们再看下面一段代码:而结果是:如何解释这一现象?为什么同一个地址保存的数据却会有不同的值呢?原创 2022-08-20 11:14:48 · 198 阅读 · 0 评论 -
Linux下的优先级和环境变量
概念:cpu资源分配的先后顺序,就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。可用 ps -la 命令进行查看。PRI和NI用top命令更改已存在进程的nice进入top后按“r”–>输入进程PID–>输入nice值。原创 2022-08-19 17:41:51 · 874 阅读 · 0 评论 -
shell运行原理及Linux权限学习
Linux的权限详解原创 2022-08-17 16:35:08 · 142 阅读 · 0 评论