当前位置: 首页 > news >正文

免费可以做旅游海报 的网站如何做自助搜券网站

免费可以做旅游海报 的网站,如何做自助搜券网站,奇葩网站100个,seo经验是什么IO类型 缓存 I/O 缓存 I/O 又被称作标准 I/O#xff0c;大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中#xff0c;数据先从磁盘复制到内核空间的缓冲区#xff0c;然后从内核空间缓冲区复制到应用程序的地址空间#xff08;用户空间#xff0…IO类型 缓存 I/O 缓存 I/O 又被称作标准 I/O大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中数据先从磁盘复制到内核空间的缓冲区然后从内核空间缓冲区复制到应用程序的地址空间用户空间。 读操作操作系统检查内核空间的缓冲区有没有需要的数据如果已经缓存了那么就直接从缓存中返回也就是将数据复制到应用程序的用户空间否则从磁盘中读取数据至内核空间的缓冲区再将内核空间缓冲区的数据返回。 写操作将数据从用户空间复制到内核空间的缓冲区这时对用户程序来说写操作就已经完成。至于什么时候将数据从内核空间写到磁盘中这步由操作系统决定除非显示地调用了 sync 同步命令。 缓存 I/O 的优点 在一定程度上分离了内核空间和用户空间保护系统本身的运行安全 可以减少读盘的次数从而提高性能。 send数据图解 缓存 I/O 的缺点存在四次上下文切换用户态与内核态之间切换四次数据拷贝CPU参与 这些数据拷贝操作所带来的 CPU 以及内存开销是比较大的。CPU参与四次拷贝的计算机好像已经不多见了内核到磁盘的数据拷贝更多的是采用DMA。 如果采用DMA的IO完整流程图 这里还是发生了 4 次用户态与内核态的上下文切换发生了 4 次数据拷贝但其中两次是 CPU参与的拷贝降低了CPU压力。 直接 I/O Linux提供了对这种需求的支持即在open()系统调用中增加参数选项O_DIRECT用它打开的文件便可以绕过内核缓冲区的直接访问这样便有效避免了CPU和内存的多余时间开销。顺便提一下与O_DIRECT类似的一个选项是O_SYNC后者只对写数据有效它将写入内核缓冲区的数据立即写入磁盘将机器故障时数据的丢失减少到最小但是它仍然要经过内核缓冲区 #include stdio.h #include stdlib.h #include fcntl.h #include unistd.h #include sys/types.h #include sys/stat.h #include sys/mman.h #include string.h #define FILE_SIZE 4096 // 假设文件大小为4KB为了示例简单 #define BLOCK_SIZE 512 // 假设块大小为512B int main() { int fd; char *buffer; off_t offset 0; ssize_t bytes_read, bytes_written; // 打开文件使用O_DIRECT和O_SYNC标志 fd open(testfile, O_RDWR | O_CREAT | O_TRUNC | O_DIRECT | O_SYNC, 0644); if (fd -1) { perror(open); exit(1); } // 分配内存对齐的缓冲区 // 注意直接I/O要求缓冲区是块大小的整数倍并且内存对齐到块大小的边界 posix_memalign((void **)buffer, BLOCK_SIZE, FILE_SIZE); if (buffer NULL) { perror(posix_memalign); close(fd); exit(1); } // 写入文件 memset(buffer, A, FILE_SIZE); // 填充数据 bytes_written pwrite(fd, buffer, FILE_SIZE, offset); if (bytes_written ! FILE_SIZE) { perror(pwrite); free(buffer); close(fd); exit(1); } // 重置偏移量以进行读取 offset 0; // 读取文件 bytes_read pread(fd, buffer, FILE_SIZE, offset); if (bytes_read ! FILE_SIZE) { perror(pread); free(buffer); close(fd); exit(1); } // 打印读取的数据可选 // ... // 清理 free(buffer); close(fd); return 0; } 注意对齐问题直接I/O要求缓冲区在内存中是块大小的整数倍并且从块大小的边界开始。在上面的示例中我们使用posix_memalign来分配内存对齐的缓冲区。 文件大小为了简单起见上面的示例假设文件大小为4KB并且块大小为512B。在实际应用中你可能需要处理更大的文件和/或不同的块大小。 错误处理在生产代码中你应该更详细地处理错误情况并为用户提供有用的错误消息。 性能考虑虽然直接I/O可以提高性能但它也可能增加复杂性并可能不适用于所有用例。在决定使用它之前请确保你了解其优点和缺点。 内核参数在某些情况下你可能需要调整内核参数来启用或优化直接I/O。例如/proc/sys/vm/dirty_bytes、/proc/sys/vm/dirty_background_bytes等参数可能会影响直接I/O的性能。
http://www.hkea.cn/news/14506560/

相关文章:

  • 模板网站与定制网站的区别淘宝客网站模板免费下载
  • 在国外网站付款要怎么做深圳设计公司官网
  • 网站界面设计的原则申请空间 建立网站吗
  • seo网站推广全程实例余姚什么网站做装修比较好
  • 网站编辑如何做天津滨海新区邮编
  • 毕业设计h5网站制作关键词搜索挖掘爱网站
  • 别人是怎么建设网站的网站内怎么做链接
  • 广东网站备案需要多久工业设计展板
  • 上海网站建设特点家居建材网站源码
  • 中国建筑人才网是什么网站第三方网站建设平台
  • 网站系统修改石家庄哪里能制作网站
  • 怎样做电影网站溧阳 做网站
  • 网站后台不能审核删除北京做网站周云帆
  • 中国建设银行上海市分行网站wordpress 显示缩略图
  • 绵阳市建设银行网站电子商务网站开发问题研究
  • 网站开发需求 模板使用apmserv本地搭建多个网站
  • 湖南网站推wordpress主题windows
  • 网站开发备案百度seo推广软件
  • 宣城网站优化用wordpress做微博
  • icann官方网站锦州网站建设推广
  • 网站建设与维护课程设计报告书交通建设工程质量监督局网站
  • 模块网站和定制网站区别网站开发个人基本情况1000字
  • 北京模板网站开发公司网络推广方案联系昔年下拉
  • 菏泽网站建设谁最出名公司网站设计制作长沙
  • 网站最好的优化是什么腾讯cdn加速wordpress
  • 多国语言外贸网站模板网站备备份教程
  • 做小程序好还是做微网站好php网站怎么做后台管理
  • dedecms蓝色企业网站模板免费下载c net 做网站好吗
  • 满洲里建设局网站首页怎么创建网页链接
  • 四川省建设领域信用系统网站网站域名的作用是什么意思