1.信号的概念 信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。 1)信号是在软件层次上对中断 ...
分类:
系统相关 时间:
2020-06-17 20:22:28
阅读次数:
63
进程间通信 见天写了一段爬虫代码,通过信号量控制进程数量,代码如下: #!/usr/bin/python3 # -*- encoding: utf-8 -*- import requests from bs4 import BeautifulSoup from multiprocessing imp ...
分类:
系统相关 时间:
2020-06-16 00:34:08
阅读次数:
70
##一.免费开源 Linux是一款完全免费的操作系统(但是商业往往是收费的)。 ##二.模块化 Linux的内核设计分成五部分: 进程管理 内存管理 进程间通信 虚拟文件系统 网络 用户可以通过在内核中插入或移走模块实现自定义,方便在不同的场景下使用。 ##三.硬件支持 得益于其免费开源的特点,有大 ...
分类:
系统相关 时间:
2020-06-15 18:13:52
阅读次数:
71
一、以fork和execve系统调用为例分析中断上下文的切换 中断是在?个进程当中从进程的?户态到进程的内核态,或从进程的内核态返回到进程的?户态,?切换进程需要在不同的进程间切换。但?般进程上下?切换是嵌套到中断上下?切换中的,?如系统调?作为?种中断先陷?内核,即发?中断保存现场和系统调?处理过 ...
分类:
系统相关 时间:
2020-06-13 20:57:00
阅读次数:
100
案例: 哲学家问题,生产者和消费者问题 ###临界资源 临界资源指的是一 些虽作为共享资源却又无法同时被多个线程共同 访问的共享资源。当有进程在使用临界资源时,其他进程必须依据 操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使 用共享资源。 ###进程间的同步 ◆空闲让进:资源无占用,允许 ...
分类:
系统相关 时间:
2020-06-13 00:49:55
阅读次数:
89
最近学习了操作系统的并发;以下是关于进程间实现并发,通信的两个方法。 1:利用管道进行进程间的通信 用到下列函数 pipe() from unistd.h sleep() write(), read() fork(); //创建子进程 管道只能用于具有亲缘关系的进程,可以将其看作一个文件,但有别于普 ...
分类:
编程语言 时间:
2020-06-12 12:23:04
阅读次数:
109
管道常用于进程间通信 即上一个进程的stdout作为下一个进程的stdin(直接对接) 在linux中 | 符号即为管道符号,将上一个命令的stdout作为下一个命令的stdin 例: 将当前目录下含有123的文件全部删除(单输入) ls | grep 123 | xargs rm 将当前目录下含有 ...
分类:
系统相关 时间:
2020-06-07 12:49:30
阅读次数:
96
进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数 ...
分类:
系统相关 时间:
2020-06-06 18:54:55
阅读次数:
78
当有多个进程要访问同一个文件的时候,为了防止多进程访问导致的不一致,我们就要考虑进程间的同步问题了。 举例说明:在嵌入式编程中经常会遇到写配置文件的问题,这个时候由于多进程操作就需要跟配置文件加写锁操作。 fcntl是一个非常强大的函数,在这里我们可以使用它来给文件的某一个部分上锁。先来看一下它的声 ...
分类:
其他好文 时间:
2020-06-06 18:14:33
阅读次数:
71
管道( | ):将上一个命令的标准输出结果作为后一个命令的标准输入(进程间的通讯,只在同意终端) 命令管道:可用于任何进程之间的通讯(可在不同终端间),用mkfifo命令创建 [root@rhel8 ~]# mkfifo /tanbaobao/p_file [root@rhel8 ~]# ls -l ...
分类:
系统相关 时间:
2020-06-05 19:19:48
阅读次数:
116