首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

进程间通讯(六).semaphore and shared(3)

IPC_EXCL:如果内核中不存在键值与key相等的信号量集,则新建一个消息队列;如果存在这样的信号量集则报错 如果成功则返回信号量集的标识符,如果失败则返回-1,错误原因存于error中 有以下几种错误 EACCESS...最常见设置此值等于1,只完成对一个信号量的操作 如果成功则返回信号量集的标识,如果出错,则返回-1,错误原因存于error中 有以下几种错误 E2BIG:一次对信号量个数的操作超过了系统限制 EACCESS...、mode复制到共享内存的shmid_ds结构内;IPC_RMID:删除这片共享内存 __buf 共享内存管理结构体指针 如果成功则返回0,如果出错则返回-1,错误原因存于error中 可能的错误有 EACCESS

56810

linux进程间通信方式最常用_linux进程调度

维护信号量状态的是Linux内核操作系统而不是用户进程。我们可以从头文件/usr/src/linux/include /linux /sem.h 中看到内核用来维护信号量状态的各个结构的定义。...如果失败,则返回-1:errno=EACCESS(没有权限) EEXIST(信号量集已经存在,无法创建) EIDRM(信号量集已经删除) ENOENT(信号量集不存在,同时没有使用IPC_CREAT...-1,如果失败:errno=E2BIG(nsops大于最大的ops数目) EACCESS(权限不够) EAGAIN(使用了IPC_NOWAIT,但操作不能继续进行) EFAULT(sops指向的地址无效...如果失败,则为-1:errno=EACCESS(权限不够) EFAULT(arg指向的地址无效) EIDRM(信号量集已经删除) EINVAL(信号量集不存在,或者semid无效) EPERM(...Linux也有自己的多线程函数pthread,它既不同于Linux的进程,也不同于WIN32下的进程,关于pthread的介绍和如何在Linux环境下编写多线程程序我们将在另一篇文章《Linux下的多线程编程

2K20

Kubernetes 中的 eBPF

转载自Linux内核之旅 BPF BPF (Berkeley Packet Filter) 最早是用在 tcpdump 里面的,比如 tcpdump tcp and dst port 80 这样的过滤规则会单独复制...在 Linux 中对应的 API 是 socket(SOCK_RAW)bind(iface)setsockopt(SO_ATTACH_FILTER) 下面是一个低层级的 demo,首先 ethernet...比如访问控制,一般的 iptables 都是 drop 或者 rst,要过整个协议栈,但是 eBPF 可以在 connect 的时候就拦截然后返回 EACCESS,这样就不用过协议栈了。...性能调优 在Velocity 2017: Performance Analysis Superpowers with Linux eBPF里,Brendan Gregg (Netflix 的性能调优专家...比如 bcc 官方的例子就是统计 IO Size 的大小的分布,更多关于基于 eBPF 的性能调优可以参考他的 blog,他给出了更详细的关于 eBPF 的解释,里面有一些列 Linux 性能调优的内容

1.3K20

Linux - Linux内存管理

为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

52.1K41
领券