文件描述符的面向对象设计

来源 :南京大学 | 被引量 : 0次 | 上传用户:entine
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在UNIX中,文件是一个非常广泛的概念,以下都可以被称作为文件:通过open()系统调用创建的五种位于磁盘上的的文件:正规文件、目录文件、字符设备文件、块设备文件、先进先出文件。 通过pipe()系统调用创建的匿名管道。 通过socket()系统调用创建的套接字。 系统中存在着多种类型的文件,但是对于系统内核而言,所有的打开文件都是由文件描述引用,程序员可以使用一套相同的系统调用read、write、lseek、dup、dup2等来操纵文件描述符,对于套接字来说,还可以在上面施加send、recv、sendto、recvfrom等动作。 通过使用面向对象中的继承和多态的技术,本文提出了一种可扩展性的设计,它的基本思路如下:1)设计一个称为“文件描述符”的抽象基类,这个类声明了read、write、lseek、ioctl等虚方法。 2)针对每一个具体类型的文件:正规文件、目录文件、字符设备文件、块设备文件、先进先出文件、匿名管道,设计一个继承于文件描述符的类,每个类都提供自己相应的read、write、lseek、ioctl等方法。 3)在read、write、lseek、ioctl等系统调用中,通过使用一个指向抽象文件的指针,来调用具体类型的文件中的方法。 4)设计一个称为“套接字描述符”的抽象基类,这个类派生于“文件描述符”,声明了send、recv、sendto、recvfrom等虚方法。 5)针对每一个具体类型的套接字:UNIX域流套接字、UNIX域数据报套接字、TCP流套接字、UDP数据报套接字,设计一个继承于“套接字描述符”的类,每个类都提供自己相应的read、write、lseek、ioctl和send、recv、sendto、recvfrom等方法。 6)在send、recv、sendto、recvfrom等系统调用中,通过使用一个指向抽象文件的指针,来调用具体类型的套接字中的方法。 本文的主要创新点在于:系统的分析了UNIX系统中和文件描述符相关的系统调用。 提出一种使用类继承和多态的设计方法来设计文件描述符,我们用C++实现了一个运行在80386保护模式下的UNIX类作业系统,从而有力的证明了该设计方案的可行性。
其他文献
关联分析又称关联挖掘,主要目的是在交易数据、关系数据或者其它信息载体中,挖掘存在于项目集合或者对像集合中的频繁模式、关联、相关性或者因果结构等。本文将所有基于事务
P2P以其相对于C/S模式的巨大优势,不仅激发了信息技术领域科研人员的研究热情,而且也调动了普通人对P2P的期望.这些因素使P2P成为一个热门的前沿研究领域.P2P的主要好处就是
在软件工程中,具有决定意义的是系统建模。建模是为了更好的理解和构造系统,并可以提供简化和复用的机会。通常软件系统的分析与设计都是通过建模来完成的。 随着计算机应用
基于内容的图像检索(Content-BasedImageRetrieval,CBIR)是目前国内外学者所研究的热点之一,它是涉及到计算机信息检索、计算机视觉、人工智能和数据库等多个研究领域的综合性
在学位论文检索系统中,检索系统的构建模式是系统的关键.该文在分析了现有学位论文检索系统的构建模式的基础上,运用P2P(peer-to-peer)技术建立一个基于源数据的分布式学位论
随着EAST装置不断升级和实验水平的提高,为了满足等离子体长时间放电的要求,现有的EAST核心数据采集系统已升级为基于MDSplus的长脉冲实时数据采集系统。然而目前大部分独立数
演化计算是一种基于生物自然选择和基因遗传学原理的计算模型.它使用计算机模拟大自然的演化过程来求解复杂问题.由于演化计算具有自组织、自适应、自学习等智能特征,且描述
无损探伤技术在工业生产中有着广泛的应用,其中通过X光成像再结合人工检查的方式最为普遍,轮胎生产就是一个典型的案例。随着市场的庞大需求和汽车工业的高速发展,全世界每年的
面向目标的需求工程就是对需要实现的系统的目标进行确定、然后对目标进行求精细化、再将其转化为相应的约束条件以及可操作性的事务归约、并在多Agent之间进行目标责任分配
随着互联网技术的发展,需要存储的数据量也不断增大,计算机硬件和软件的不稳定很容易导致用户数据的丢失,数据存储的可靠性已经成为学术界和工业界关注和研究的热点问题之一