Chinaunix首页 | 论坛 | 博客
  • 博客访问: 277052
  • 博文数量: 103
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 727
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-29 14:38
个人简介

默默的一块石头

文章分类

全部博文(103)

文章存档

2022年(5)

2021年(10)

2020年(28)

2019年(60)

我的朋友

发布时间:2022-01-20 16:03:53

前言在了解零拷贝之前,我们先来看看标准的的I/O操作..1.传统IO的原理标准 I/O又被称作缓存 I/O ,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。传统IO的原理缓存 I.........【阅读全文】

阅读(13) | 评论(0) | 转发(0)

发布时间:2022-01-20 15:03:16

APUE一书将writev的介绍放在了Advanced I/O部分,个人拙见,它和write应该是属于同层次的IO,谈不上Advanced。使用场景大体而言,write面向的是连续内存块,writev面向的是分散的数据块,两个函数的最终结果都是将内容写入连续的空间。已知每个pair的空间是单独分配的,那么在这个场景下,如果想要使用write.........【阅读全文】

阅读(4) | 评论(0) | 转发(0)

发布时间:2022-01-17 10:07:53

#include stdio.h #include sys/types.h #include sys/socket.h #include unistd.h #include sys/epoll.h #include netdb.h #include stdlib.h #include fcntl.h #include sys/wait.h #include errno.h #define PROCESS_NUM 4#define MAXEVENTS 64#define .........【阅读全文】

阅读(12) | 评论(0) | 转发(0)

发布时间:2022-01-12 10:40:35

测试内容:在spin_lock获取了锁,且不unlock的情况下对数据进行访问。相关代码ssize_t spin_lock_sleep_read(struct file * filp, char __user * buf, size_t count,   loff_t * f_pos){ struct spin_lock_sleep_dev *dev = filp->private_data; ssize_t retval = 0; dev-.........【阅读全文】

阅读(23) | 评论(0) | 转发(0)

发布时间:2022-01-10 15:46:28

惊群现象是在多进程或者多线程场景下,多个进程或者多个线程在同一条件下睡眠,当唤醒条件发生的时候,会同时唤醒这些睡眠的进程或者线程,但是只有一个是可以成功执行的,而其他的进程或者线程被唤醒后存在着执行开销的浪费。Linux中惊群的触发多个进程或者线程在获取同一把锁的时候睡眠多个进程或者线程同时进行accep.........【阅读全文】

阅读(32) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册