正文内容
成绩管理系统o
来源:开心麻花
作者:开心麻花
2025-09-22
1

成绩管理系统o(精选8篇)

成绩管理系统o 第1篇

山东外国语职业学院

毕业设计(论文)

题目:学生成绩管理信息系统

系别:计算机

专业:

年级:

班级:信息管理一班

学生姓名:尤海

指导教师:许崇芳

2011年6 月1 日

学生成绩管理信息系统

Student Management Information System

摘要 :本文介绍了学生成绩管理系统开发全过程。系统的开发采用Visual C++

6.0,以Windows XP 作为开发平台。它主要包含以下几个模块:学生成绩管理

模块、科目管理模块、成绩汇总模块等。对密码处理、学生信息录入、科目成绩

信息等实现全面、动态、及时的管理。本文系统的分析了软件开发的背景及过程;

首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:各个模块的设

计和实现,以及具体界面的设计和功能。最后对在本软件开发过程中的问题进行

了总结。通过阅读该论文,读者可以了解到MIS的规划、设计过程,掌握系统的功能。同时对当前比较具有代表性的开发工具Visual C++ 6.0技术有一定了解。

关键词:Visual C++6.0;Window XP;模块

目录序论.......................错误!未定义书签。

1.1成绩管理系统概述.......................5

1.2系统开发背景........................5

1.3系统的开发目的....................5 2 项目相关知识与技术................错误!未定义书签。

2.1管理信息系统..................错误!未定义书签。

2.1.1管理信息系统的简介................错误!未定义书签。

2.1.2管理信息系统的内容和特性...........错误!未定义书签。

2.2 SQL Server 2005..................错误!未定义书签。

2.3 Visual Basic.................错误!未定义书签。

2.4 ADO.....................错误!未定义书签。3系统分析....................错误!未定义书签。

3.1系统的可行性分析.................错误!未定义书签。

3.2系统的需求分析.....................错误!未定义书签。

3.3系统模块结构分析.................错误!未定义书签。

3.4系统流程图...............错误!未定义书签。

3.5系统用例图...............错误!未定义书签。4系统设计....................错误!未定义书签。

4.1系统硬件软件以及运行环境设计..............错误!未定义书签。

4.2系统各模块的输入输出设计...............错误!未定义书签。

4.3数据库设计...............错误!未定义书签。

4.3.1系统E-R图..................错误!未定义书签。

4.3.2系统数据库关系模型................错误!未定义书签。

4.3.3数据库基本表.....................错误!未定义书签。

4.3.4数据表关系图.....................错误!未定义书签。

4.3.5数据库物理设计.................错误!未定义书签。5系统的实施.......................错误!未定义书签。

5.1实现数据库的连接.................错误!未定义书签。

5.2系统界面设计..................错误!未定义书签。

5.2.1系统登陆界面设计....................错误!未定义书签。

5.2.2系统主窗口设计.................错误!未定义书签。

5.2.3其他功能界面设计....................错误!未定义书签。6系统测试....................错误!未定义书签。

6.1 测试目的目标.................错误!未定义书签。

6.2 测试运行环境.................错误!未定义书签。

6.3 测试过程..................错误!未定义书签。

6.4 测试结果分析与总结...................错误!未定义书签。总结....................错误!未定义书签。参考文献..........................错误!未定义书签。致谢....................错误!未定义书签。

前言

计算机信息管理在社会发展中占据了重要的一环。在我国,计算机行业在近十年有了飞跃性的变化。人们的生活处处体现着信息的传播、处理、收集,如何合理准确高效地利用信息也成为当今社会需要面对的问题。

基于先进的计算机技术开发的学生成绩管理系统可以帮助教学统计信息更加快速便捷,并且可以使管理层及时、合理地进行管理和决策。因此设计开发的学生成绩管理信息系统应顺应社会发展的潮流。

学生成绩管理信息系统的开发主要是为了快速、准确的录入学生信息、成绩统计等,更进一步还要包括各学生各科目信息、成绩查询、排序、汇总等。本设计主要包含了成绩录入和汇总的实现。

本文对学生成绩管理信息系统中的往来管理子系统的设计与开发过程进行详细说明:首先,对往来管理子系统进行介绍;然后,通过对系统进行分析;在系统分析的基础上进行系统设计,主要完成了系统模块功能划分、代码设计、输入输出设计。最后经过软硬件环境的准备和各种工具的支持实现了系统的实施。

1序论

1.1成绩管理系统概述

超市管理信息系统的开发主要是为了完成商品的入库登记,商品的销售查询以及财务分析等,更进一步还要包括超市的人事管理、销售统计等。本设计主要包含了商品库存和销售的实现。

商品库存子系统负责完成商品的库存管理。当有新商品入库时可以快速准确的录入商品的基本信息,同时也可以修改或者查询已经录入的商品信息。销售子系统主要通过商品编号,从数据库中查询到该商品的价格,根据购买商品的数量计算出顾客要付款额,然后找零,最后打印清单。销售子系统的主要作用是通过商品编号,从数据库导出商品价格,根据顾客购买的数量计算出顾客要付的款额,然后找零,打印购物清单。同时销售子系统的信息要返回到数据库,数据库随时更新。

1.2系统开发背景

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

1.3系统的开发目的(1)提高工作人员的正确性,省去人工核对,大大提高超市的运作效率;

(2)通过全面的信息采集和处理,辅助提高超市的决策水平;

(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。

成绩管理系统o 第2篇

一、招标阶段:

1、配合工程管理部(预算部)完成招标文件中技术要求,配合完成考察和合同签订工作。

二、施工准备阶段:

1、工程管理部(预算部)组织防火门单位和工程部召开合同交底会。

2、根据合同规定和现场实际施工情况,工程部工程师给防火门单位发入场通知书。(入场通知书统一表格)

3、工程部组织监理单位、总包单位和防火门单位召开进场交底会。

4、督促施工单位上报深化设计和施工方案,并完成审核工作。按合同要求防火门单位上报施工进度计划。

5、水电专业管线布置优化,在防火门洞口上下左右100mm范围内,禁止有管线敷设,防止在门框安装时,管线破坏(B区出现固定防火门框涨栓打坏预埋管线情况)。配电箱柜门开启与防火门是否冲突进行确认(BC1强弱电间出现配电柜门打不开情况)。

三、施工阶段:

1、工程部工程师督促总包和防火门单位进行界面移交,并形成文字记录。

2、工程部工程师组织监理和总包单位对进场构配件进行验收。

3、工程部工程师组织监理、总包和防火门单位确定样板施工,并对样板进行验收。

4、工程部工程师施工过程进行质量、安全和文明施工检查,协调各单位交叉施工问题。

5、工程部工程师施工过程督促监理和施工单位进行施工资料的完善工作。

6、工程部工程师根据合同付款规定和现场施工进度情况进行阶段性结算。

四、竣工阶段:

1、工程部工程师组织监理、总包和防火门单位进行验收。

2、工程部工程师对防火门施工单位进行评估。

3、工程部工程师整理竣工结算资料,对施工中罚扣款进行统计。

成绩管理系统o 第3篇

随着微电子工业和半导体加工技术的不断发展,集成电路的规模不断增大。这使得将复杂系统集成在单个芯片上成为可能,于是便出现了片上系统SOC(System on a Chip)。SOC极大地缩小了系统体积;SOC减少了板级系统SOB(System on Board)中芯片与芯片之间的互连延时,从而提高了系统的性能;SOC采用基于IP(Intellectual Property)核的设计(Core-based Design),它允许在芯片设计过程中复用(Reuse)已经经过验证的高性能的IP核,从而提高了设计效率[1]。FPGA的飞速发展为SOC的发展开辟了新的方向SOPC(System On a Programmable Chip)。对于比较复杂的系统,仅仅使用基于硬件的FPGA对其进行协调控制还是比较困难的,因此通常把一个微处理器内核嵌入到FPGA芯片中,采用软硬件协同设计的技术,不仅使得对设备的控制更加灵活,调试也更加方便,并缩短了开发周期。

MicroBlaze是由Xilinx公司推出的一款32位RISC微处理器IP核,具有很高的可配置度,可以将外部存储器,液晶显示屏、键盘接口等外部设备连接在一起并协调它们的工作,适合设计针对网络、电信、数据通信等应用背景的复杂嵌入式系统。

本文以嵌入式I/O系统为例,介绍了基于MicroBlaze进行嵌入式系统设计开发的方法,给出了一种输入/输出系统的设计实现方案,分析了其开发流程,并讨论了设计开发过程中相应的软硬件设计问题。

2.嵌入式I/O系统总体设计

2.1 MicroBlaze的体系结构

MicroBlaze采用功能强大的32位流水线结构,包含32个32位通用寄存器和1个可选的32位移位器,时钟频率可达150 MHz[3]。MicroBlaze软核的结构框图如图1所示。它具有以下基本特征:

(1)32个32位通用寄存器和2个专用寄存器(程序计数器和状态标志寄存器)。

(2)32位指令系统,支持3个操作数和2种寻址方式。

(3)分离的32位指令和数据总线,符合IBM的OPB总线规范(与外设相连接的低速总线)。

(4)通过本地存储器总线(LMB,本地高速总线)直接访问片内块存储器(BRAM)。

(5)具有高速的指令和数据缓存(cache),三级流水线结构(取址、译码、执行)。

(6)具有硬件调试模块(MDM)。

(7)带8个输入和8个输出快速链路接口(FSL)。

2.2 MicroBlaze嵌入式开发工具EDK

Xilinx公司提供了完善的嵌入式开发工具EDK(Embedded Development Kit)。EDK是Xilinx公司于2003年推出的SOPC系统开发套件。该套件集成了丰富的开发工具和大量的IP核资源,其中集成的工具包括硬件平台生成器(Plat Gen)、硬件仿真模型生成器(Sim Gen)、硬件调试工具(XMD)、软件库生成器(Lib Gen)、应用软件编译工具(GNU Compilers)、软件调试工具(GNU Debuggers)等;IP核资源包括LMB和OPB总线接口、外部存储器控制器(EMC)、SDRAM控制器、UART接口、中断控制器、定时器等[2]。

所有这些工具和资源都由EDK中的XPS(Xilinx Platform Studio)集成开发环境统一管理。XPS提供一个友好的图形用户界面(GUI),使用非常方便。

2.3 系统的设计开发流程

在嵌入式系统的开发中,软硬件协同设计的方法可以降低开发成本,缩短开发时间,并使得设计更加灵活,从而逐步取代了传统的设计流程。其中涉及到的关键问题是系统资源的规划和利用,所以在系统设计前首先要考虑系统功能的软硬件划分,清楚地界定系统内部各项功能的最终实现形式;而在进行软硬件分割时,若想达到系统性能的最佳化,就必须考虑到各功能部件之间数据交换的性能以及不同功能部件之间的同步,确保系统在执行时能满足所需的时间约束(timing constraint)[3]。

EDK工具包括XPS工具和SDK工具,XPS工具完成主要软/硬件设计调试工作,SDK工具用于设计和调试应用软件。ISE工具,用于混合编程和定制IP核。ChipScope Pro工具,用于在线调试硬件系统。第三方工具,如Modelsim工具,用于仿真硬件系统。

在本系统的设计开发过程中就采用了软硬件协同设计的方法,其流程如图2所示。

3.系统的关键硬件模块实现

3.1 44键盘模块的硬件实现

键盘是计算机系统中最常用的人机交互输入设备,然而在应用中都采用通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。

(1)44键盘工作原理

44键盘的工作原理如图3所示,其中P0~P3为输出口,P4~P7为输入口。无按键按下时,输入口被上拉为高电平。输出口以一定频率循环输出0111、1011、1101、1110。通过读输入口的状态,便可判断击键情况。键盘扫描电路键盘上的每一个按键其实是一个开关电路,当某键被按下时,该按键的接点会呈现逻辑0状态,反之,未被按下时则呈现逻辑1的状态。当尚未按下键盘时,依据表1所示编码方式逐一扫描键盘按键,键盘输入到按键检测电路的值均为1,使键盘无论扫描哪个键时,都检测到尚未按下键盘;当使用者按下键盘按钮,则键盘输入到按键检测电路的值为0,直到键盘扫描到此键时,检测到已按键。

(2)按键的去抖动问题

按键大多是机械式开关结构,在开关切换的瞬间会在接触点出现抖动的现象。因此,必须加上抖动消除电路。如果要防抖动,就不能用时钟去检测按键的按下状态,而要去检测按键按下或者抬起的边沿。例如按键按下的时候就检测与按键连接的FPGA管脚的下降沿,按键松开的时候就检测与按键连接的FPGA管脚的上升沿。这样就可以不用理会按键按下的时间长度,根据按键按下或者抬起的次数来确定计数。

(3)硬件实现

虽然EDK提供的IP核非常丰富,但不可能满足所有用户的需求,根据实际需求定制IP核是嵌入式设计中常需要的,也是实现“量身定制”系统的前提。EDK工具提供了简单的界面帮助用户完成IP核定制过程,其中非常重要的方式是通过IPIF接口定制IP核。IPIF(IP Interface)是EDK提供的标准IP接口,允许用户在系统内总线上构建自己的IP核,用户只需关注自己想要的功能逻辑,EDK工具会根据用户选择的总线方式实现相应的总线接口逻辑,合成完整的IP核模块[4]。

在接口电路设计中,我们使用IPIF接口定制一个KEY_IP核,用于对键盘进行扫描进而采样键盘输出,最终生成扫描码以及产生中断请求。键盘扫描信号频率只需在几百赫兹左右即可,实现时将50MHZ OPB总线频率分频,上升沿循环扫描,下降沿采样,根据采样结果生成扫描码。

考虑到机械式按键的不稳定性,需要对扫描结果进行防抖处理,故在扫描到有键按下时启动一个计数器,计数若干次同一键被扫描到后,即可认为此键已被人为按下,将其存储于本地寄存器后,产生一个中断请求通知CPU调度键盘中断处理程序。

3.2 LCD液晶显示模块的硬件实现

(1)工作原理

TS1620-1 LCD为162字符型液晶显示器,可显示两行,每行可显示16个字符,通过发送指令,可配置成不同模式。接口部分有1个8位的数据寄存器、1个8位的指令寄存器、一个7位的地址计数(AC)寄存器和1位的忙标志(BF);指令寄存器用于控制LCD内部电路,完成LCD读写、扫描、显示等功能;数据寄存器用于暂存LCD与外部数据的通信数据。基本操作时序如下:

1)读状态:

RW=H,RS=L,E在读状态期间应保持高电平;

2)读数据:

RW=H,RS=H,E在读数据期间应保持高电平;

3)写指令:

RW=L,RS=L,D0-D7指令码,E在指令码稳定后要产生一个下降沿触发LCD执行此指令;

4)写数据:

RW=L,RS=H,D0~D7为待写数据,E在指令码稳定后要产生一个下降沿触发LCD执行此指令;

AC6~AC0的值为CGRAM还是DDRAM地址取决于最近一次向AC写入的是DDRAM还是CGRAM地址。地址只有7位,在进行传的时候,要并上DB7,组成8位一并传,状态同样通过D0~D7读出,格式如表2所示。

(2)硬件实现

在接口电路的设计中,我们使用IPIF接口定制一个LCD_IP核,通过OPB总线对显示设备进行控制和数据传输。LCD_IP与液晶显示模块之间需要连接的主要有数据线和控制信号线,如图4所示,具体为:RS、R/W、EN、DB7-DB0共11位。

Data_I与数据端口连接,负责采集液晶的状态数据。Data_O与数据端口连接,负责将控制指令和显示数据送至液晶。用DataCmdSelect、Execute、Data_T分别控制EN、RS、R/W信号,通过对这些引脚的组合控制,按照一定的时序关系实现对LCD的控制。

LCD_IP核中需要实现以下四种操作:

(1)读状态:

检测忙标志以及AC的值;

(2)读数据:

读出最近一次由DDRAM地址设置指令处DDRAM单元的内容;

(3)写指令:

设置LCD的工作模式、AC值以及显示方式等;

(4)写数据:

向LCD的DDRAM写入要显示的数据,写之前需要设置DDRAM地址;

四种操作中除读状态外都需对忙标志位检测;若BF为高电平,则LCD正在工作中,此时LCD接口部分被锁定,任何指令都将不处理,故需等待知道BF为低时方可进行下一个操作。

在IP核模板的基础上,用周期计数延时获得读、写操作时序,将指令直接传送至LCD,读写操作在IP核中占用几个总线周期,为了防止应用软件在发送指令期间再次发送新指令,IP核提供一个标志位供应用软件读取,以指示是否正在进行读写操作,若是则应用软件需适当延时等待再通知IP核发送下一条指令。

3.3 系统硬件平台的创建

在键盘和LCD液晶的硬件接口设计完成后,我们利用Xilinx公司提供的EDK开发软件XPS中的工具Create and Import Peripheral将其以IP核的方式挂到OPB(On-Chip Peripheral Bus)总线上。创建IP核时,在IPIF提供的服务中选择用户逻辑中断支持以及软件用户逻辑地址寄存器支持,前者使得外围设备可以管理由用户逻辑产生的中断,后者使得外围设备的用户逻辑部分拥有可寻址的寄存器[1]。按照前面所介绍的连接关系进行硬件搭建后,键盘以及LCD液晶显示模块的硬件详细信息都保存在MHS文件中。该文件定义了系统结构、外围设备和嵌入式处理器,也定义了系统的连通性以及系统中每个外围设备的地址分配和对每个外围设备的可配置选项。平台生成工具将MHS文件用于输入,创建了硬件平台。在XPS中选择Generate bit stream,即可以产生硬件配置文件*.bit文件。硬件平台如图5所示。

4.系统的软件设计与实现

4.1 44键盘软件实现

在建立系统时,在OPB总线上添加EDK提供的中断IP核INTC_IP,该IP核INTC可控制多个中断信号。把键盘的用户逻辑产生的中断信号输入到INTC_IP核中,然后INTC_IP核将这个中断信号输入到MicroBlaze的中断端口上,由MicroBlaze进行中断管理。当有中断发生的时候,MicroBlaze会跳转到地址0x10。这是C运行库的一部分,它包括缺省时跳转到中断句柄(interrupt handler)函数,此功能是由Xilinx提供的BSP(Board Support Package)(它是一个最基本的核,为应用程序提供最基本的功能)完成的[7],由于在MSS文件中已经对中断操作路线进行了设置,因此它会跳转到中断处理函数中进行中断处理。同时在引入IP核后,系统会自动生成相关的驱动程序,可以方便使用软件对寄存器进行读写操作。中断处理程序主要是进行了扫描码和ASCII码的转换,并把ASCII码显示在LCD上。

引入中断IP核后,系统会自动生成相关的中断请求号,以及提供与此中断号相关联的默认中断处理句柄(interrupt handler),随后即可在系统初始化时调用XIntc_Register Handler函数注册自定义中断处理句柄替换默认处理句柄。MicroBlaze提供的通用中断处理机制通过XIntc,可以管理多个中断控制器,XIntc中CfgPtr为数组类型,数组元素类型为XIntc_Config用于为中断控制器提供中断管理。XIntc_Config中的HandlerTable用于管理中断请求号与中断处理句柄的关系,所以每个中断控制器可以接收多个中断请求。在发生中断时,MicroBlaze会根据产生中断的中断控制器设备,找到与此设备相关联的XIntc_Config结构,再取出中断发生时的中断请求号,在XIntc_Config结构中找到相应的中断处理句柄,并跳入此处理程序处理中断请求。

4.2 LCD液晶显示模块软件实现

系统上电后,首先根据液晶显示器模块的结构通过写寄存器的方式对各项控制指令代码和参数(如液晶的行数、光标的位置光标、光标是否闪烁等)进行设置,从而完成对液晶显示模块的初始化过程。在对系统进行正确的初始化以后,就可以通过MicroBlaze将数据送至LCD进行显示了。在初始化程序中设置系统控制指令及其参数的方法为:根据用户硬件电路的设计,将指令及参数送到LCD_IP核对应的寄存器地址。系统中每个外设都有自己对应的唯一地址,这个地址是XPS在添加了LCD_IP核后选择Generate Addresses自动产生的。

CheckBF()函数用于通知LCD_IP核发送读取忙标志指令,此函数运行后,LCD_IP核会发出读状态操作指令,在数据有效后,将数据(BF和AC)先缓存于IP核的本地寄存器,而后供应用软件读取;Send Cmd(cmd)函数用于向LCD写入控制命令,从而达到配置LCD和显示字符的目的。需传入有正确命令格式的参数,确定将要执行的操作,在发送之前,需要一直等待CheckBF()检测到BF为低电平;为方便写入数据设有WriteChar、WriteString等函数,此类函数直接调用Send Cmd发出写数据操作;若没有设置LCD工作方式为自动递增AC,则在每次写之前都需要先发出设置DDRAM地址指令。

需要注意的是LCD在写数据之前需发送一系列初始化命令,以配置其工作模式、显示方式等,都是间接通过Send Cmd(cmd)实现。

4.3 应用程序的实现

本系统中应用程序设计部分主要功能为读取按键值,通过查找表的方式完成扫描码到ASCII码的转换,并把键码转换后的值显示在LCD液晶显示模块上。由于前面已经创建好键盘的IP核,又通过LCD_IP核对LCD液晶进行了控制,在此仅需编写主函数即可。按键扫描码的获取可以使用查询或者中断的方式。在具体实现中我们采用中断驱动模式来接收键盘扫描码。采用这种方式,既提高了响应速度,又可实现程序的模块化设计,并便于以后系统的扩充。应用程序调试运行成功之后便会产生.elf可执行文件。

5.系统的开发调试经验

我们更多的采用硬件调试的方法,将系统通过JTAG接口连接到目标板上的XMD调试接口,并把软件代码可执行文件(*.elf)和FPGA硬件配置文件(*.bit)通过Data2Mem转换成新的FPGA位流文件(*.bit)下载到系统中后,通过设置断点,读写内存和寄存器的值等手段来进行调试。最后将调试通过的位流文件,下载到目标芯片上,系统即可正常工作。

另外,结合系统调试过程中的经验,我们发现在进行程序编写时,需要特别注意以下两点:

(1)MicroBlaze为big-endian模式,且其内部总线宽度为32位,因此在对寄存器进行读写时需要注意其数据格式及宽度。

(2)在软件设计中要注意,对于FPGA来说LCD是一个低速设备,因此对于指令的响应需要一定的延迟,需要写一个有延迟作用的函数。

6.结论

本文采用软硬件协同设计的思想,设计并实现了一种基于MicroBlaze处理器的I/O系统。在进行完软硬件功能划分并创建好硬件平台后,对于输入设备键盘的控制以及输出设备LCD液晶显示器的功能设置可以通过软件的方式进行更改。本设计已在Xilinx Spatan3开发板上进行了验证,取得了良好的效果。通过本设计的实现可以看出,MicroBlaze是一个功能强大、应用灵活的嵌入式软处理器,特别是其强大的用户自定义逻辑功能,极大地方便了系统设计。可以预见,基于嵌入式软处理器的SOPC开发方法,必将拥有广阔的应用前景。

摘要:随着微电子工业的不断发展和FPGA技术的不断提高,SOPC技术逐渐成为嵌入式系统技术发展的新方向。本文介绍了XILINX公司的SOPC集成开发环境EDK,以及在EDK中开发和利用用户IP的方法;利用ISE及EDK设计工具设计开发了I/O系统中常用的IP模块,并通过了仿真验证。

关键词:SOPC,MicroBlaze,IP核,软硬件协同设计

参考文献

[1]董代洁,郭怀理等.基于FPGA的可编程Soc设计[M].北京:北京航空航天大学出版社,2006.

[2]Xilinx,“MicroBlaze Processor Reference Guide”EDK(v8.1)[S].January,2006.

[3]Xilinx,“Embedded System Tools Guide”EDK(v8.1)[S].January,2006.

成绩管理系统o 第4篇

SNAP I/O控制系统是美国OPT022公司1996年后推出的分布式控制系统。在工业应用现场是做为主干系统出现的,一般承担装置区总体的自动控制任务,操作人员是通过SNAPI/O控制系统的上位机人机界面对设备进行监控的。PLC(Programmable L0aic Controller)可编程序逻辑控制器,简称可编程序控制器。PLC主要应用在以开关量为主的监视控制领域,一般安装在现场独立的单体设备上,如燃料气压缩机、全自动燃烧器等,由TPLC安装在装置区内,操作也极为不便。另外,由于目前正在进行的“数字油田”计划,工业现场的生产实时数据必须定期上传,从客观上也要求PLC系统所监控的数据要与SNAP I/O控制系统进行融合。

本文详细讨论了SNAP I/O控制系统与PLC系统通信互联技术的实现及现场应用程序。

2,通信协议

根据实际情况,一般采用通用通讯协议进行SNAP I/O系统与PLC的互联,如PPI协议、MODBUS协议,在不具备MODBUS通讯协议的PLC系统中,采用自由口通讯协议进行通信。

根据目前工业现场实际应用情况,主流协议有以下几种:MODBUS协议、Profibus-DP协议、Profibus-PA和Foundation Fieldbus协议,除此以外,还有ControlNet、EtherNet、PPI等。

3,系统硬件

RS-485的远距离、多节点(32个)以及传输线成本低的特性,使得EIA RS 485成为工业应用中数据传输的首选标准。

RS 485采用差分信号进行传输,主要是针对远距离、高灵敏度、多点通讯制定的标准。本方案主要就是利用SNAP I/O系统的SNAP LCM4控制器所带的RS 485接口进行数据通信。

根据三层结构的讨论,方案使用SNAPI/O系统中的sNAP-LCM4进行硬件连接。SNAP LCM4控制器,功能强大、通讯方式灵活。采用32位,工业级的68030处理器,具有4MB的SRAM和2MB Flash EPROM。拥有4个串口,可以是RS 232/422/485串口。RS422/485串口,可设定为2线制或4线制通讯。

4、软件编程实现

软件编程实现,主要根据sNAP I/O系统FACTORYFLOOR软件包中的OPTOCONTROL进行编制,通过MODBUS协议进行数据通信。

4.1通过MODBus协议数据互联的编程实现

(1)编程画面全貌包括配置端口、初始化传送字符串、计算CRC代码、向串口传送数据、接收串口数据、数据校验等。

(2)块的功能和具体步骤

端口配置也是每段程序的起始块,此块是端口配置块,要指明SNAP I/O系统采用的串口、从设备的波特率、校验位、数据位和停止位。配置此块要依据从设备的具体情况而定。首先在系统中建立一个整型变量PORTSTATUS存放端口配置信息,配置信息按照COMl:9600,N,8,1顺序写入,用ConfigurePort命令建立此块。

数据初始化

是要传送的初始化字符串,此块功能包括从设备的地址、要读取的数据寄存器(功能域)、第一个要读取数据寄存器的高位地址和低位地址(从哪里开始读取)、要读取数据寄存器数量的高位地址和低位地址(就是要连续读几个数)。首先在系统中建立一个字符串变量TRANS-STRING,选用AppendCharacter to String命令建立此块顺序。

CRC配置 MODBUS通讯采用RTU和ASCII两种传输模式,本例中采用CRC传输模式。此块是一个计算16位的CRC值,来进行错误检验,初始计算值必须是要传送字符串的计算结果,这里从1开始计算,选用GenerateReverse CRC-16 on String命令,建立此块。

数据转换此块功能是将计算CRCCODE的值转换为16进制字符串,分别取字符串的高8位和低8位,并且将其分别转换为整型数据,分别选用Convert Number to HeXString、Get Substring和Convert Hex StringtO Number@令建立此块。

串口发送此块功能是将计算过的CRCCODE整型值添加到要传送的字符串中,并通过串口发送。选用Append Character toString和Transmit String via Serial Port@令建立此块。

串口数据判断此块功能是判断串口是否有数据,选用Characters walting at SerialPort?命令建立此块。

获得数据此块是将从串口取来的字符串保存在一整型变量WAITING STATUs中,选用Get Number of Characters walting onSerial 0r ARCNET Port@令建立此块。

CRC数据比较此块功能是将从串口读取的CRC CODE和系统计算的CRC CODE进行比较,若相同表示读取正确的数据,选用Equal命令建立此块。

数据保存此块功能是要从串口中读取指定的字符串数,之后清空系统缓冲区,选用Receive N Characters via Serial POrt;ClearReceive Buffer命令建立此块。

清除并延时此块功能是清除接收字符串变量并延时1000ms,之后进行下一周期的数据采集,选用命令Move String和Delay(mSec)命令建立此块。

5、现场实施过程

根据以上研究方案,在工程现场进行了方案的实施。实施过程一般进行以下几个步骤:首先进行PLC及sNAP I/O系统的内部软件程序编制,PL C中按照要求将需要操作的数据放到指定数据区,SNAP I/O系统进行程序编制、下装(DOWNLOAD)至控制器,然后,进行硬件配置及通信链路连接,最后进行系统调试、投用。

以天然气分公司红压深冷为例:红压深冷装置是天然气分公司2002年重大基建工程项目之一,其中仪表自控系统有五个国外引进机组自带了各种各样的五种PLC系统,压缩机系统PLC控制来自GE公司,负责压缩机系统的启停机及自动保护;膨胀机系统PLC控制来自AB公司,负责膨胀机系统的启停机及自动保护;丙烷制冷机系统PLC控制來自约克公司,负责制冷机系统的启停机及自动保护;紧急停车控制系统的PL C来自西门子公司,负责在发生紧急情况时处理全厂总停车问题;分子筛控制系统采用的PLC来自西门子公司。每一4-PLC系统均是安装在现场厂房内机组本体上,相互独立,各自带有就地显示屏。而红压深冷装置的控制中心距厂房有50米左右的距离,控制中心由SNAP I/O控制系统作为骨干结构,负责整个工厂内动态及静态设备以及工艺阀组的监视和控制,控制中心的操作人员不可能去现场各个机组的PL C就地盘观测机组运行数据,因此,要求sNAP I/O控制系统在参与装置区各类周边设备的监控的同时,要与各个就地的PL C系统进行通信。机组的各类数据通过通信的方式将数据传送至sNAP I/O系统。各个就地的PL C系统通信协议各不相同,不能统一。在这种情况下,本设计充分考虑了各自PLC的特点,采用不同的通信协议与五台PL C进行了通信互联,其中与GE公司、约克公司的PLC系统通信,采用了MODBUS通信协议模式;与AB公司的PLC系统通信,采用了自由口通信协议模式;与西门子公司的PLC系统通信,采用了PPI通信协议模式。系统2003年底投产,运行平稳正常。经现场测试通信数据刷新时间为1秒,达到了系统设计要求,满足现场生产要求。

结论

二O一一安全管理工作总结 第5篇

今年,在公司的正确领导下,以科学发展观为指导,坚持“安全第一,预防为主,综合治理”的安全生产方针,有针对性地开展了一系列安全生产检查活动,加强了施工安全生产管理工作,完善和落实了一系列安全管理措施,加强了对各项目部施工安全的监管,加大了对各项目部安全隐患的处罚力度,在安全生产管理方面取得了一定的成效。

分公司2011全年无安全生产事故、无火灾事故、无交通安全事故的发生;机械设备完好率94%,利用率86%;重大隐患整改率为100%。对项目门卫值班情况查岗十多次,对睡岗和认真巡逻人员进行了处罚与奖励;制止打架斗殴事件多起。现场监督指导安拆塔机50多台次;现场监督指导扎拆脚手架21项次。在文明施工现场管理上迎接了省级检查一次,市级检查多次,今年在安全管理工作上取得了一些突破性工作。

现将有关工作总结如下:

一、成立“安全生产月”及“安全生产年”活动领导小组,组建活动领导小组,大造安全生产声势。

为全力做好开展安全生产年活动的各项工作,从组织上、措施上、行动上把这项活动贯穿于安全管理的全过程,分公司高度重视,成立了以分公司经理为组长,副经理为副组长,各职能部门主管领导和项目经理为成员的活动领导小组,并将领导小组办公室设在安全设备部,以“安全生产月”及“安全生产年”活动,带动了项目部的各项管理。形成了人人讲安全、人人问安全、人人抓安全的新局面,在分公司例会、项目班前会和员工大会上着重强调了安全工作。我们克服了一切麻痹思想和侥幸心理,始终保持着如履薄冰的危机感和紧迫感,警钟常鸣,切实做好了安全生产工作;

也对那些责任不落实、工作不到位、防范措施不力而造成重大隐患的有关责任人和责任人员,也追究相应的责任并进行了经济处罚。

二、以宣传、教育为本,提高全员安全意识

1、始终坚持“以人为本”的理念,着眼于建立一支政治可靠、技能过硬、素质优良的施工队伍,并把提高全员安全意识和安全技能作为抓好安全工作的重中之重。在分公司内部实行全员化的安全宣传教育培训,制定和落实安全教育培训计划,2011年年初,以“两标”“六规范”和项目实际发生的重大隐患为主题,对项目部、车间、班组负责人和安全设备部全体人员进行了安全专题教育,通过教育进一步强化了安全生产管理工作。新开工程的“一级安全教育”活动开展率100%。

2、积极组织开展安全生产宣传活动

进入安全生产月的前一天,下发了通知并要求各项目部施工现场醒目位置悬挂安全生产口号横幅;进入活动期间,制作安全宣传版面与安全专栏等。通过这些组织宣传工作,极大的强化了分公司全体员工的安全意识。

为认真贯彻落实安全生产的法律法规,普及安全生产知识,提高安全生产素质,根据上级文件要求,10月份组织了人员参加了建设系统的安全知识竞赛,通过这一系列的安全生产活动,使各项目部的安全生产意识有了进一步的提高。

三、加大安全生产检查力度确保公司安全生产工作顺利进行

今年组织各职能部室每个月进行一次安全生产大检查外,还先后组织了以脚手架、临时用电、高处坠落、设备使用安全专项检查,积极开展了安全生产隐患排查治理活动。在安全管理日常检查中,只要觉得是安全隐患问题,就由专人下达安全隐患通知书,并限期整改落实。通过日常检查和安全生产大检查,提高了项目部的安全管理水平,有效地防范和遏制了安全事故的发生,为调动各项目部的积极性,还采取了安全生产奖惩制度,对在安全生产大检查中,安全生产工作开展较好的项目部进行通报表扬和奖励,同时对安全生产工作开展较差,多次检查仍存在较大安全隐患的项目部进行通报,并处以经济处罚。通过奖罚制度,提高了施工现场的管理。

四、健全完善安全生产责任制和目标管理体系 安全生产的良好局面必须落实制度,责任明确,是通过健全而有效的制度来实现的。在年初,带头与各项目部、车间、班组负责人签订《2010年安全生产责任书》,再由各负责人与职工签订《2010年安全生产责任书》,贯彻了“谁主管,谁负责”的原则,并实行一票否决制度;坚持做到层层抓安全,人人重安全,全面夯实安全管理基础。把安全责任层层细化,落实到了每一个人,使安全在制度的贯彻中得以实现,较好的形成了安全领导负责,安全分工负责,安全层层负责,安全人人有责的责任体系。根据季节情况,编制下发了《署雨季施工安全措施》,《冬季施工安全措施》等,以此为指导,有力的保证了项目部季节性的安全文明施工。

五、争创“文明工地”,促进公司施工安全及文明施工管理水平

一年来,分公司安全生产工作在“突出一个早字、做到一个实字、形成一个好字、狠抓一个严字”方面做出了大量的工作,并取得了一定的成绩,2011年创建市级“安全文明工地”7个,创建市级“安全质量综合样板管理工地”6个。我深知安全生产只有起点没有终点,安全管理工作离公司领导的要求还有一定的差距,我一定会警钟长鸣,常抓不懈。

2011年我一心想着把安全生产工作做好、做到位,但仍存在安全生产工作落实难问题。

针对这一情况我们做出了总结分析,存在安全生产工作落实难的主要原因如下;

项目部安全生产意识薄弱,这一原因普遍存在,项目经理只是一味的追求利益最大化,对安全生产工作的管理还是不够严格,安全生产工作在思想上重视不够,存在认为做好安全生产工作,只是为了应付公司及上级部门检查的思想,加上施工人员的素质低,思想意识差,所以导致分公司安全生产管理工作还存在一定的难度。

(六)、2012年安全工作安排

1、根据公司的要求,把安全工作作为公司发展的头等大事来抓,要按照“谁主管谁负责”的原则,形成“全员动手、综合治理”的基本格局;要高度重视安全工作,必须牢固树立安全第一的意识,时时刻刻保持高度警惕,严防各种事故发生。

2、进一步落实安全责任制,健全和完善安全目标责任制,建立应急预案,提高救险常识和应急能力,严格遵守操作规程,实行一票否决制。

3、根据国家和上级的有关要求,将不断修订和完善安全规章制度和操作规程,做到有章可循、违章必究,使安全工作目标更明确,责任范围更清楚,行为规范更合格。

4、继续强化员工安全教育培训,突出以防火、电、高处坠落等灾害和防机械、车辆事故为重点,强化对员工的安全教育培训和专业人员的防范技能训练,提高员工的安全意识、责任意识,增强消防安全知识和应急处置能力;要通过教育培训,努力使全体员工安全意识更强一些,事故隐患更少一些,把安全工作做得更加扎实一些。

5、要经常检查,举一反三,重点检查项目部、车间等规章制度是否落实、消防设施是否完好、用火用电管理是否到位、临边洞口防护是否严密、整改措施是否彻底;要通过经常抓检查、抓整改,及时发现事故苗头和安全隐患,把事故消灭在萌芽阶段。

6、继续早计划、早规划、早创建市级“安全文明”工地,以“安全文明工地”带动各项目的安全管理工作,形成我要创“文明”的新格局。

安全工作任重道远,是一项长期细致的工作,必须持之以恒,长抓不懈。今后,我将在公司的领导下,求真务实,努力把安全工作抓实抓紧、抓细,不断创造新的业绩,使公司的安全工作水平上一个新的台阶,积极开创安全工作新局面,为公司的持续稳定发展保驾护航

成绩管理系统o 第6篇

试验采用A2/O 生物膜工艺处理焦化废水,对A2/O 处理焦化废水的工艺参数进行了优化研究.结果表明,在水力停留时间为39 h(其中:厌氧酸化6 h,缺氧反硝化10 h,好氧23 h),控制好氧段溶解氧质量浓度为3~6 mg/L,出水pH为6.8~8.0,混合液回流比R=3的情况下,可以得到良好的脱氮和除碳效果.

作 者:邱贤华 李明俊 曹群 黄小杰 章昆仑 张丹凤 QIU Xian-hua LI Ming-jun CAO Qun HUANG Xiao-jie ZHANG Kun-lun ZHANG Dan-feng  作者单位:邱贤华,李明俊,曹群,张丹凤,QIU Xian-hua,LI Ming-jun,CAO Qun,ZHANG Dan-feng(南昌航空工业学院,环境与化学工程系,江西,南昌,330034)

黄小杰,HUANG Xiao-jie(合肥市环境保护局,安徽,合肥,230001)

章昆仑,ZHANG Kun-lun(安徽丰乐农化有限责任公司,安徽,合肥,230031)

刊 名:合肥工业大学学报(自然科学版)  ISTIC PKU英文刊名:JOURNAL OF HEFEI UNIVERSITY OF TECHNOLOGY(NATURAL SCIENCE) 年,卷(期): 29(5) 分类号:X703 关键词:焦化废水   除碳   生物脱氮   氨氮   厌氧-缺氧-好氧生物膜工艺  

成绩管理系统o 第7篇

无论学习那种语言都难免要接触到文件系统,要经常和文件打交道。Java当然也不例外,有人觉得IO的设计很烦琐,有的时候我也有这样的感觉,其实用的熟练了,倒是觉得这个东西还是挺方便的。在介绍Java IO之前首先介绍一下非常重要的一个类File。

在看到这个类的名字后你一定认为它代表一个文件,事实上这样认为并不准确,因为Java中的File类可以代表文件也可以代表目录。在API doc中说明了这一点,同时把File用abstract pathname来代表。不过想想目录不也就是特殊的文件吗?

File的使用非常的简单,它有四个构造函数:

File(String parent,String child)

File(File parent,String child)

File(URI uri)

File(String pathname)

其中前面两个可以让我们在某个已知特定的目录下新建文件或者目录,后面两个我们可以通过pathname或者URI新建文件或者目录。有一点需要注意, File虽然是一个系统无关的代表,但是pathname的表示是和系统相关的,比如UNIX下“/”表示root目录,而windows下通常用盘符来表示。比如绝对路径C:helloworldmingjava,如果是相对路径的话则不以“/”开头,一般相对路径是相对当前目录的。当我们创建一个 File的时候可以通过exists方法判断它是否存在,如果不存在我们可以选择是创建为文件还是创建为目录。例如

File file = new File(“hehe”);

if(!file.exists())

{

file.mkdir();

}

for(int i=0;i <5;i++)

{

File listFile = new File(nextFile,“ming”+i+“.txt”);

if(!listFile.exists())

{

listFile.createNewFile();

}

}

如果我们已经知道一个File对象,希望在他的目录之下新建文件,那么就可以使用第一个构造器了。比如

File nextFile = new File(file,“minghehe”);

if(!nextFile.exists())

{

nextFile.mkdirs();

}

注意创建多层目录的时候要用mkdirs()。我们还可以列举出一个目录下的文件列表,通过list()方法可以得到一个String[]类型的数组,这就是目录下的文件名称。

String[] list = nextFile.list();

for(int j = 0;j

{

System.out.println(list[j]);

}

File的使用并不复杂,如果有问题多参考一下API doc一般就可以解决了,下面是我写的一个小例子,说明如何使用File文件,

import java.io.*;

import java.net.*;

public class TestFile

{

public static void main(String[] args) throws IOException

{

File file = new File(“hehe”);

if(!file.exists())

{

file.mkdir();

}

File nextFile = new File(file,“minghehe”);

if(!nextFile.exists())

{

nextFile.mkdirs();

}

System.out.println(nextFile.getParent());

if(nextFile.isDirectory())

{

File newFile = new File(nextFile,“ming.txt”);

if(!newFile.exists())

{

newFile.createNewFile();

System.out.println(newFile.getName());

System.out.println(newFile.getAbsoluteFile());

}

for(int i=0;i <5;i++)

{

File listFile = new File(nextFile,“ming”+i+“.txt”);

if(!listFile.exists())

{

listFile.createNewFile();

}

}

String[] list = nextFile.list();

for(int j = 0;j

{

System.out.println(list[j]);

}

}

}

}

输出结果为:

heheming

ming.txt

ming0.txt

ming1.txt

ming2.txt

ming3.txt

ming4.txt

Press any key to continue...

成绩管理系统o 第8篇

近年来随着海量数据的不断增加, 对象存储成为一种新的管理技术, 基于对象的网络存储文件系统的研究随之也成为新的热点。基于对象的网络存储文件系统由客户端 (Client) 、元数据服务器MDS (Metadata Service) 和对象存储设备OSD (Object Storage Device) 等三部分组成, 是一种高可靠性、高性能以及可扩展的分布式文件系统, 具有良好的综合性能。同时基于对象的网络存储也面临着一个突出的问题:如何高效存储并管理PB (PetaByte) 级容量的数据。目前比较成熟的基于对象的网络存储文件系统中, Lusture、zFS、panFS和Ceph应用比较广泛, 其中Lustre和zFS多采用脚本的方式, 即利用EXT2或EXT3文件系统对OSD中的对象进行管理;panFS很少涉及到OSD中的对象管理。按照OSD的标准, OSD中的存储空间管理器是一个对象管理系统, 它所管理的是对象而不是文件, 而且EXT2和EXT3都是基于块的文件系统, 在文件的大小、目录结构和性能上都有一定的局限性。Ceph网络存储文件系统中采用基于对象的文件系统OBFS (Object-Based File System) , 专门用于 OSD中的对象管理系统, 从而提高OSD设备的效率[1]。本文从基于对象的存储设备, 基于对象的文件系统区域组织形式、文件系统结构、分配策略以及区域清理等角度对基于对象的文件系统进行了研究, 分别对OBFS、EXT2和EXT3的I/O性能进行了比较, 并对测试结果进行了深入的分析。

1基于对象的存储设备

OSD是一种具有智能、能够自我管理、提供对象接口并有较高安全性的存储设备。包括处理器、内存、网络接口、存储介质如磁盘阵列或磁带等以及运行在其中的控制软件。基于对象的存储设备和基于块的存储设备的根本区别在于操作接口, 而不是物理存储媒体[2]。

和NAS和SAN相比较, 基于OSD的存储设备兼有了二者的优点, 其存储的不再是数据块而是对象。对象是字节的逻辑集合, 不但包含数据的属性, 在对象上还可以定义安全策略;对象还结合了文件和块的优点, 可以直接被存取, 具有快速、高效的特点。

在基于对象的存储技术中, 对象是变长的, 可以用来存储整个数据结构, 如文件、数据库表、多媒体映像等, 甚至可以用来存储整个文件系统或数据库。

1.1OSD模型

与传统的基于块存储的文件系统相比较 (如图1所示) , OSD将文件系统的存储管理部分下载到存储设备上, 由存储设备自己负责, 同时将存储设备的操作接口由块接口改成对象接口, 提高了设备的抽象层次。

存储部分下载以后, OSD设备可以向外提供对象接口。用户可以直接请求OSD创建对象、删除对象;还可以获取或修改对象的属性, 读写对象的数据。

由于每个对象存储设备都具备底层文件系统的管理功能, 因此元数据只需要提供逻辑视图, 并不需要为所有节点提供物理视图。这样存储系统的负载被分散到各个存储设备里, 从而可以避免NAS系统中出现在元数据服务器上的性能瓶颈问题。

1.2OSD对象类型

OSD模型提供了以下四类对象:

(1) 根对象 (Root Object)

每个OSD逻辑单元中包含且仅包含一个根对象, 它的属性包括OSD逻辑单元的总容量和分区对象数等。根对象还有一个分区ID列表, 表示包含在逻辑单元中的所有分区。通过LIST命令获得该列表的信息。根对象对应的标识符是<0, 0>。

(2) 分区对象 (Partition)

通过CREATE PARTITION命令创建分区对象, 它包含一组集合对象和用户对象。每个分区对象中都包含一个用户ID (User _Object_ID) 列表和一个集合对象ID (Collection_Object_ ID) 列表, 表示包含在该分区中的所有集合对象和用户对象;用户可以通过LIST命令获得用户对象ID, 通过LIST COLLECTION命令获得集合对象ID列表。分区对象的标识符为< Partition_ID, 0>。

(3) 集合对象 (Collection)

使用CREATE COLLECTION命令创建, 它是对象用户的一个快速索引。一个集合对象只能包含在一个分区对象中, 而一个分区对象可以包含0个或多个集合对象。集合对象的标识符是<Partition_ID, Collection_Object ID>。

(4) 用户对象 (User Object)

用户对象中包含用户最终数据如文件或者数据库数据等。它包括用户数据的逻辑大小、创建时间、存取时间和修改时间等。每个用户对象只能是一个分区的对象成员。用户对象由< Partition_ID, User_Object_ID>标识, 一个User_Object_ID唯一标识一个分区对象中的一个用户对象。

2基于对象的文件系统

目前使用比较广泛的基于对象的网络存储文件系统包括Lustre, panFS和 zFS等, 它们可以管理大量的OSD设备, 但在这三个文件系统的描述中很少涉及OSD设备中的文件系统, 即OSD中的对象管理系统。事实上, 在Lustre和zFS中, OSD中的对象管理系统就是Linux的EXT2或EXT3文件系统。但是由于EXT2或EXT3是基于块的文件系统, 组成文件的数据块通常不是连续地分布在磁盘上, 这样就导致大量的碎片, 从而降低了对文件读写的效率。

OBFS是一种高效的基于对象的文件系统, 它应用于大规模分布式存储系统中的OSD的存储管理部分。其基本思想是根据对负载的分析从而对磁盘布局进行优化。使用区域分块方法改善对象的吞吐量同时保持良好的磁盘利用率。与Linux的Ext2与Ext3相比, OBFS具有更好的数据布局以及高效的管理。

2.1OBFS的块和区域

Ceph用对象存储文件, 它把对象分为大对象 (512KB) 和小对象 (4KB) 。统计表明, 在OSD管理的对象中, 85%是大对象, 只有15%是小对象。

由于OSD管理的大部分是大对象, 因此在OBFS中允许使用任意大小的块尺寸, 按照区域分块, 用来解决存储性能和磁盘碎片之间的矛盾。如图2所示。

OBFS支持4KB的小块和512KB的大块。大对象总是驻留在大块区域中, 每个大对象仅占用一个数据块, 其数据总是连续存放。小对象最多占用124个小块, 不能跨越区域边界。未初始化的区域为空闲区域, 其大小待定。

在OBFS运行的过程中, 大对象占据连续的存储空间始终都不会碎化, 而小对象会有一定程度的碎化, 但碎化程度是有限的。因此, OBFS的性能与磁盘利用率不会随着运行时间而降低。

OBFS区域中包含管理所需要的所有信息, 如onode表、空闲onode位图、空闲块位图等。因此对区域的操作是可以同时进行, 从而提高系统的并行度。

2.2OBFS的元数据和文件系统结构

OBFS的文件控制块onode记录每个对象的元数据, 在小块区域中, 一个区域中所有onode结构构成一个onode表, 而且位置固定。在OBFS的大块区域中, onode结构表是临时创建的, 与对象的数据部分存放在一起, 共同占用大区域的一个数据块。如图3所示。

每个onode结构有唯一的长度为32位的标识符onode ID, 通常被平分成两部分:region ID和onode index。region ID用于定位OSD中的区域, onode index用于定位区域中的onode。在查找过程中, OBFS以region ID为索引先找到该对象的所在区域, 而后根据区域的特性, 以它的onode index为索引找到对象的onode结构。

区域头保存着区域的管理信息, 所有的区域头结构组织成一个链表RHL (RegionHead List) 。OBFS使用对象查找表OLT (Object Lookup Table) 组织其对象。其中OLT使用Hash表的方式组织OBFS中的对象, 每个有效的对象在OLT中都有一个表项 (entry) , 用于记录它的object ID (4字节) 和onode ID (4字节) 。16个表项组成一行, 具有相同Hash值的对象记录在同一行上。由于RHL和OLT都被缓存在内存中, 因此提高了系统的访问和查找的速度。

有了OLT和RHL之后, 解析一个对象ID的过程如下:

(1) 根据对象的object ID计算Hash值, 根据算出的Hash值查得OLT获得对象的onode ID。

(2) 从对象的onode ID中分离出Region ID , 根据Region ID查RHL, 找到对象所属的区域头结构, 获取区域的管理信息, 如区域类型等。

(3) 从对象的onode ID中分离出Onode index。对小块区域, 根据对象的Onode index查区域的Onode table, 找到对象的onode结构;对于大块区域, 直接根据对象的Onode index即可找到对象所在的数据块, 因为它的onode结构就在数据块中。

2.3OBFS的分配策略

在创建新对象时, 客户需要对对象的类型 (大对象或者小对象) 进行选择说明。OBFS负责新对象的数据块和区域的创建。OBFS在收到创建新对象并向其写入数据的请求后, 首先将其缓存起来, 进一步聚合对象的数据, 以便为其分配尽可能连续的存储空间。

在为新对象选择区域时, OBFS首先要根据区域的类型、空闲数据、负载平衡以及最后一次访问区域之间的距离等来搜索区域头链表RHL。并将其划分为三个子链表:大块区域链表、小块区域链表和空闲区域链表。如果找不到合适的候选区域, OBFS会就近选择一个空闲的区域并将其格式化成所需要的类型。在分配空闲区域时, OBFS采取一种保守的分配策略, 即尽可能使用已格式化的区域。

对于数据块的选择, 因为候选区域任意一个空闲数据块都可以存储大对象, 所以大对象选择数据块比较简单。对于小对象数据块的分配, OBFS采取其数据块尽可能连续的原则。具体的方法就是OBFS维护一个空闲域的链表, 分配数据时首先搜索空闲域链表, 找大于或等于小对象尺寸的空闲域。如果区域中有多个满足要求的空闲域, OBFS采用最坏适应 (WorstFit) 算法, 即选择最大的空闲域来存储小对象[3]。

2.4OBFS区域清理

由于OBFS以区域为单位组织和管理数据, 而且每个区域中只有一种类型的数据块, 因此, 可能会出现某种类型的数据块被用完的情况。此时, 虽然OSD中还有空闲, 但却没有所需要的类型的数据块, 在这种情况下, 就需要进行区域清理。其目的就是合并同类区域中的对象, 从而释放出空闲空间。OBFS将一个区域中的所有对象都复制到其他同类的区域中, 从而创造出一个空闲区域。在小对象区域的清理过程中, 由于小对象存储空间被重新组合、分配, 还可以消除小对象的碎化现象, 进一步提高了磁盘的利用率。

3OBFS和EXT2、EXT3性能比较

3.1测试环境

测试使用的是一台PC机器, 配置为双核3.6GHZ主频, 2G内存, 250G硬盘。操作系统为Red Hat Enterprise Linux 5 2.6.18版本。

使用iozone3.0作为测试读写性能的工具。iozone是一个文件系统的benchmark工具, 可以测试不同的操作系统中文件系统的读写性能。可以测试 Read, write, re-read, re-write, read 等不同的模式下的硬盘的性能。

测试对一个固定大小的文件采用不同的 I/O 传输块大小, 对OSD 进行读写操作, 为了避开文件系统的影响, 直接将OSD命令提交给OSD驱动。采用的读写操作原型为[4]:

(1) 读操作

(2) 写操作

在以上读写操作参数里, 分区ID 和用户对象ID 是用来唯一确定一个对象在磁盘上的位置的参数。测试写性能时采用的是不分配写 (non-allocating write) , 即重写, 写之前对象的地址空间已经分配好。

3.2性能分析

EXT2是基于内核级的文件系统。ETX3则是用于Lustre文件系统中的对象存储和磁盘分配策略的内核级的文件系统, 并在EXT2的基础上增加了日志管理用于提高可靠性。为了更大限度地发挥每个系统的I/O性能, 本文采取了避开缓存系统:即所有的文件系统都挂载“-o sync”参数, 使文件系统采用直接写策略。

图4显示了OBFS、EXT2和ETX3文件系统在80%大对象和20%小对象的负载情况下的性能。由图可知, 无论是读性能还是写性能, 在相同负载的情况下OBFS都优于EXT2和ETX3文件系统, 基本上是二者的2到3倍。由于OBFS采用了按照区域分块的方案, 大大地提高了磁盘的利用率。在相同的时间内, EXT2和ETX3文件系统在磁盘分配策略方面没能充分利用相邻块的空间, 为了提高大对象的存储性能, 它们需要增大数据块的尺寸, 但随着尺寸增大其磁盘碎片明显增大, 造成了存储空间的巨大浪费, 使得其性能下降。同样在重写文件方面, OBFS也显示了其巨大的优势, 无论是大对象还是小对象, OBFS文件系统的重写性能都高于EXT2和ETX3文件系统约3倍。

4结论

论文在描述OBFS的结构和关键技术基础上, 在用户级执行OBFS, 并针对性的与EXT2和EXT3文件系统分别进行了性能的比对。从分析的结果来看, 用于管理OSD中对象的OBFS系统有着良好的吞吐量和高效的磁盘利用率, 在基于对象的网络存储领域将会有更加广泛的应用。

摘要:目前基于对象的存储设备中多采用通用的文件系统如EXT2、EXT3等进行管理, 但面临着对海量数据的高效存储、管理问题。基于对象的文件系统实现了对象按大小在磁盘区域中组织管理, 并采用了Hash、最坏适应等机制, 提高磁盘利用率的同时显著提升了磁盘吞吐率。对EXT2、EXT3、基于对象的文件系统进行了I/O性能测试及分析。实验表明, 基于对象的文件系统的I/O性能是EXT2、EXT3文件系统的2到3倍。

关键词:对象存储,对象存储设备,文件系统,性能分析

参考文献

[1] Sage A Weil, Scott A Brandt, Ethan L Miller, et al.Ceph:A Scalable, High-Performance Distributed System.2007.

[2]Object Based Storage Devices Technical Work Group.SNIAOSD[C/OL]. (2006-07-28) .http://www.snia.org/tech_activities/work-groups/osd.

[3] Feng Wang, Scott A Brandt, Ethan L Miller, et al.OBFS:A File System for Object-based Storage Devices[C]//21st IEEE/12th NASA Goddard Conference on MssT2004.2004.

相关文章
运动会跳绳通讯稿

运动会跳绳通讯稿

运动会跳绳通讯稿(精选6篇)运动会跳绳通讯稿 第1篇跳出健康、跳出风采胶州市第六实验小学举行跳绳比赛活动随着一生哨响,胶州市第六实验...

3
2025-09-23
艺术匠心范文

艺术匠心范文

艺术匠心范文(精选10篇)艺术匠心 第1篇一篇文学作品的优秀,源于作者深邃而独特的见识,源于作者独具匠心的表现技巧,源于作者精准而细腻的...

1
2025-09-23
英文入学申请书范文

英文入学申请书范文

英文入学申请书范文(精选9篇)英文入学申请书范文 第1篇Application Letter for AdmissionDear Sir or Madam,My name is ______...

2
2025-09-23
远程网络控制范文

远程网络控制范文

远程网络控制范文(精选11篇)远程网络控制 第1篇1 智能网络现场控制单元的基本结构远程控制依附于网络技术, 其控制模式是客户服务器模...

1
2025-09-23
银行面试题自我介绍

银行面试题自我介绍

银行面试题自我介绍(精选5篇)银行面试题自我介绍 第1篇在准备自我介绍时,我们要先明白自我介绍的目的是什么?其实,HR让你做自我介绍,...

1
2025-09-23
移动安全生产工作总结

移动安全生产工作总结

移动安全生产工作总结(精选8篇)移动安全生产工作总结 第1篇近年来,分公司始终把安全生产作为头等大事来抓,坚持“安全第一,预防为主”...

1
2025-09-23
一缕阳光的小学作文

一缕阳光的小学作文

一缕阳光的小学作文(精选6篇)一缕阳光的小学作文 第1篇当我们汲汲于富贵,戚戚于贫贱时,何不让一缕阳光走进我们的心里,晕开满心的疲惫...

1
2025-09-23
医院2016年医疗质控工作计划

医院2016年医疗质控工作计划

医院2016年医疗质控工作计划(精选12篇)医院2016年医疗质控工作计划 第1篇冕宁漫水湾友松医院2016年医疗质控工作计划2016年我院为进一步...

2
2025-09-23
付费阅读
确认删除?
回到顶部