异步方式数据结构I/O

原创 2005年03月03日 13:04:00

以前一直都是做同步方式的数据结构存储。即典型的:
void  TMyClass::onSave(TStorage & s)
{
    s << member1;
    s << member2;
      ......
}

void  TMyClass::onLoad(TStorage & s)
{
    s >> member1;
    s >> member2;
      ......
}
假如s满了(Save的时候)或者s数据不足(Load的时候),函数会等待,直到s可用或者出错退出。相当于进程的Stack帮我们保存了I/O状态的上下文。

但是现在要转到异步方式I/O,当s“不可用”的时候,线程应该中断当前的操作,把I/O状态的上下文保存下来,转而做其他的操作。
所以麻烦就来了,要自己做这个上下文的保存。一般来说要记录以下的内容:

1、操作到哪一个成员。
2、假如成员是一个普通的类型、那就要记录操作到类型的哪一个byte。
2、如果成员是一个复合类型,同样,递归地回到了1。

因此,上下文保存的结果一般都是一个自己做的stack,里面就是记录这个递归的过程。

其实想想,何苦为了省那几十k的空间折磨自己呢,例如输出,先用同步的方式把数据记录在内存,然后就记录内存的起始地址和长度,异步处理的时候就把内存输出,如果没有输出完的,就记下未输出部分的起始地址和长度,等待下一次。
不过当结果比较庞大的时候,还是需要自己慢慢苦干,真是悲惨……

caffe入门(二) caffe数据结构和I/O模块、caffe模型、正反向传播,

一、数据结构 1、Blob Blob是一个四维数组,维度从低到高为:whidth_,height_,channels_,num_ Bloc blob; int w=blob.width(); int ...

linux的I/O多路转接select的fd_set数据结构和相应FD_宏的实现分析

http://my.oschina.net/u/870054/blog/212063 在linux实现中,首先为长整形声明别名__fd_mask 1 ...

Linux块设备驱动(四)————块设备的数据结构与相关操作及I/O调度器

0、数据从内存到磁盘的过程 内存是一个线性的结构,Linux系统将内存分为页。一页最大可以是64KB,但是目前主流的系统页的大小都是4KB。每一页的数据会被先封装成一个段,用bio_vec表示...

内核用于I/O的数据结构

这一篇中将介绍UNIX系统中I/O有关的数据结构,并针对数据结构而解释各个I/O操作的实现方法,另外介绍文件共享和原子操作。 (1)每一个进程在进程表中都有一个记录项,每个记录项中有一个打开的文件的...
  • zhccl
  • zhccl
  • 2012年07月13日 22:40
  • 1066

IRP数据结构(即 I/O请求包数据结构)

IRP结构   图5-1显示了IRP的数据结构,阴影部分代表不透明域。下面是该结构中重要域的简要描述。 MdlAddress(PMDL)域指向一个内存描述符表(MDL),该表描...
  • haiross
  • haiross
  • 2014年09月02日 11:46
  • 562

Overlapped I/O 和 完成端口等异步IO在内核中的通知方式

By Fanxiushu  2013, 引用和转载请注明原作者 写这篇文章的动机:是因为最近在应用程序中调用DeviceIoControl读写自己做的一个驱动程序的数据,传输的数据包很多。 老的处...

Linux环境编程之文件I/O(四):文件I/O的数据结构

(一) Linux系统支持不同进程间共享打开的文件。

操作系统设备管理-设备I/O内外存数据传送方式

一、操作系统设备管理的概念 操作系统的第四大功能,即对硬件的管理。主要内容有:外部设备的分类、输入输出设备的分配算法、外部设备和CPU之间的数据传送控制方式(程序直接控制方式、中断控制方式、DMA方式...

C语言 文件I/O:实现结构体数据 存储到文件和从文件读取

这是一个初步试验!是为了下一步的创建班级学生管理系统做准备 ClassInfo.h源码 #define MAX_STUDENT 50 //班级最大学生人数 #define MAX_NAME_SPA...

【数据结构与算法学习笔记】PART1:算法分析(计算,计算模型,大O记号,算法分析,迭代与递归,动态控制)

在本科的时候就学过数据结构,那时候用的是清华大学C++版本的教材。上研究生之后,在实际学习与工程中愈发发觉数据结构的重要性,所以重新进行了数据结构的再学习,采用了清华大学邓俊辉副教授的视频课程,同时在...
  • abcSunl
  • abcSunl
  • 2016年08月03日 09:46
  • 476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:异步方式数据结构I/O
举报原因:
原因补充:

(最多只允许输入30个字)