基于移动设备的主机管理系统的设计毕业论文.docx
- 文档编号:30222649
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:44
- 大小:1.23MB
基于移动设备的主机管理系统的设计毕业论文.docx
《基于移动设备的主机管理系统的设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于移动设备的主机管理系统的设计毕业论文.docx(44页珍藏版)》请在冰豆网上搜索。
基于移动设备的主机管理系统的设计毕业论文
毕业设计(论文)
设计(论文)题目:
基于移动设备的主机管理系统的设计
学院名称:
xxx
专业:
xxx
班级:
xxx
姓名:
xxx学号xxx
指导教师:
xxx职称xxx
企业教师:
xxx企业杭州华嵌
定稿日期:
2014年5月6日
基于移动设备的主机管理系统的设计
摘要
本系统是一个基于ARM开发板的移动的服务器,支持有线模式或者WIFI模式进行收发数据。
用来接收PC机发来的相关运行信息,实现远程监测控制主机的运行状态。
在PC机上运行一个客户端,用于采集本PC机相关运行数据,如定期采集CPU的使用率,定期采集内存的状态,采集磁盘信息,监控当前系统中运行的进程的状态,需要监控的进程的列表也是从配置文件中读取,网络流量监控,采集时的重要数据记录本地日志,提供用户日后查看,然后发送给服务器,服务器会进行数据分析,越高警戒值,会反馈给用户,用户可以通过服务器按键发送相关指令,控制PC机的运行,比如关闭某个进程,重启PC机,关闭PC机等操作。
关键词:
服务器,PC机,移动监控
MOBILEHOSTEQUIPMENTMANAGEMENT
SYSTEMBASEDONARMBOARD
ABSTRACT
ThissystemisaserverbasedonthemovementoftheARMdevelopmentboard,supportmodelofcableorWIFItosendandreceivedata.ToreceivesthePCoftherelevantinformation,remotecontrolofthehostrunningstate.InPCrunningaclientforthisPCrelatedoperationdata,suchasregularcollectionCPUusage,regularlycollectingmemorystate,diskinformation,monitoringthecurrentsysteminthestateoftherunningprocess,needtomonitortheprogressofthelistisreadfromtheconfigurationfile,networktrafficmonitoring,collectingimportantdatarecordlocallog,toprovideusersseeinthefuture,andthensenttotheserver,theserverwillperformdataanalysis,thehigherthevalue,andwillfeedbacktotheuser,theusercanthroughtheserverbuttontosendthecommandandcontroltheoperationofthePC,suchasclosingaprocess,restartthePC,shutdownthePCoperation,etc.
KeyWords:
servers,pc,mobilemonitoring
第1章绪论
1.1引言
随着时代的不断进步,人们的生活水平也得到了质的飞跃,计算机逐渐步入了每家每户,成为了人们生活娱乐工作必不可少的伴侣。
计算机的功能十分的强大,但是人们对于计算机的运行状况却知之甚少,有的时候计算机的大脑CPU已经严重超负荷,或者计算机的内存已经达到最大的承受极限了,然而人们并不知晓这些状况,导致计算机最终超负荷运行而损伤。
计算机本身携带不方便,尤其是台式计算机。
人们要随时随地的掌握计算机的运行状况,就变得十分困难。
所以如果有一款软件,既能在本地主机,根据用户需求显示出电脑运行的关键信息,又可以在人们外出时,通过远端实时监控掌握家中电脑的运行状况,那是十分方便和实用的。
1.2移动主机管理系统设计的背景
近几年,随着网络带宽和计算机处理能力以及存储容量等性能的迅速提高,各种视频音频等信息处理技术的出现,全程数字化网络化的监控系统技术的优势越来越明显,渐渐的站到了主导的地位,它具有高开放性,高集成性和良好的灵活性为监控系统的整体性能提高创造了必要的条件。
随着科学技术的迅速发展,人们的生活水准和生活要求不断提高,人们的生活用具也日益电子化,信息化。
远程监控技术的重要性也在人们的不断发展中日益体现出来,正在渐渐的应用于生活和商业开发的方方面面。
监控系统正从一个集中监控向网络远程监控进行发展。
在监控系统刚刚产生的初期,大都是采用大型的仪表仪器对各种设备仪器的重要部分的状态进行监控,并且是通过操作盘来进行集中操作。
发展至今,监控技术变得越来越成熟,如今监控主要以监测控制的计算机为主体,与检测装置被监控的对象和执行机构共同构成了一个大整体。
监控系统一般是以计算机网络为载体,进行数据的传输。
然而现今的监控技术还是主要应用于局域区域内,他们的监控范围局限在同一个地点,但是由于互联网的存在,Internet能实现资源的共享,他可以帮助人们解决很多资源上的问题,,他为远程管理系统的长远发展提供了强大的后台支持。
监控技术的重要性在社会的发展过程中日益重要,它有广阔的发展前景和市场价值。
1.3本设计所以实现的目标
本设计实现对电脑主机进行远程监控,以达到能实时掌握电脑此时此刻的详细运行状况。
万一出现一些未响应或者温度过高等紧急情况,我们可以进行远程控制电脑的运行状态,以缓解电脑的紧急的情况,达到保护电脑的目的。
因此着力设计一个基于ARM开发板的移动的服务器(支持监控多台PC机),用来接收PC机发来的相关运行信息,在PC机上运行一个客户端,用于采集本PC机相关运行数据,(采集时的重要数据记录本地日志,提供用户日后查看)然后发送给服务器,服务器会进行数据分析,越高警戒值,会反馈给用户,用户可以通过服务器发送相关指令,控制PC机的运行,比如关闭某个进程,重启PC机,关闭PC机等操作。
1.4论文的结构安排
本文一共分为六个章节:
第一章绪论:
简单介绍了课题的选题意义、研究现状,论文主要工作和结构安排。
第二章系统设计的软件环境介绍:
介绍了本系统设计师主要用到的软件环境。
第三章系统的整体设计:
介绍了主机管理系统的整体设计框图,以及系统的工作流程。
第四章系统的模块设计:
介绍了主机管理系统具体模块的设计方法和实现过程。
第五章系统的调试:
介绍了系统的调试流程和调试过程中出现的问题,进行了相应的总结,并提出了解决方法。
第六章结论与展望:
总结了本文的主要工作,并提出了以后有待进一步研究。
第2章主机系统设计软件坏境介绍
2.1Notepad++文本编辑器
Notepad++是一个很小的,灵活的纯文本编辑器,十分好用。
它的源代码是开源的,在文本编辑方面的功能可以与Windows的写字板功能相当。
但是我比较看重的是它强大的代码编写的功能,在代码编写速度和准确度上面,Notepad可谓是让我如虎添翼。
在代码编辑方面,它自带联想功能,语法高亮,字词自动完成的功能,还支持同时编辑多重文档。
它支持许多语言,比如C,C++,shell脚本,python等等语言,还自带编译的功能,当然这个功能,我很少去用,因为下面介绍的GCC编译器也是一个很强大的编译神器。
在代码查看方面,它也足够强大,基本能满足我的需求。
它能自动检测文件类型,根据关键字显示节点,并且能自由折叠打开,是代码很具有层次感,看起来比较爽。
在每行代码的开头,都会有行标号,在软件顶上会显示当前编辑的文件属于哪个目录,在查看源文件和头文件路径方面十分方便。
在软件左边小窗口,会显示出当前文件夹下的所有文件,软件右边的小窗口,会显示源文件中包含的各个函数,按照文件中函数实现的顺序帮你依次排好,可以让你最快速的定位到某一个函数。
按CTR+F可以查询当前文件或者当前打开所有的文件你输入关键字出现的具体位置,这个功能非常好用。
还有一个很实用的功能,点住鼠标右键选中一部分关键字,文本中与这个关键字相同的其他地方会被同时选中,对于查看某一个函数在哪些地方被调用了,这个方法是最快捷有效的。
我利用这个神器写代码经常用到的几个功能就介绍到这里,这个神器还有其他许许多多强大的功能,由于本次设计未曾用到,不做详细介绍。
2.2GCC编辑器
数来按规则编译你的源代码。
gcc编译器的最基础的用法就是gcc加上源文件,如gccxxx.c,他将会产生一个名称为a.out的可执行文件,如果你未曾设置过你的linux相关配置文件,直接./a.out就可以执行这个文件,你就会看到你设计的功能,前提是你写的代码准确无误,因为即使生成了a.out也不能保证能成功运行,因为比如段错误之类的在编译阶段是无法被发现的,在执行的过程中才会体现出来,在本次设计中,我一般是使用gdb调试工具来寻找的定位错误的位置的,将在下文做介绍。
如果你只想通过gcc检查语法错误,只编译你的文件,并不想生成可执行文件,你就可以使用gcc-c这个选项来完成,在编写makefile的时候,对于多文件的编译,经常使用到这个参数。
-o这个参数表示链接生成可执行文件,而且可执行文件名称可以自己取跟在-o后面。
-g这个参数在调试方面是比较重要的,如果想要利用gdb调试器对代码进行调试,就必须加上-g这个参数了。
-Wall这个参数是为了显示所有调试产生的警告,对于减少bug方面,这个参数也是至关重要的,其他还有一些参数,在本设计中未曾用到,就不一一介绍了。
2.3GDB调试器
GDB调试器在本设计中,我只是利用它来寻找执行产生的段错误,其实他的功能远不止于此。
在此我只介绍它定位段错误的位置这个功能,其他功能在本次设计中gcc编译器已经为它代劳了,就不介绍了。
如果执行的时候发生了段错误,你就可以gdb加上可执行文件,进入gdb调试。
用list指令就可以列出你所调试的代码,输入run就可以开始执行你的程序,如果是没有断错误的情况下,你可以设置断点来进行调试,但是有断错误的情况下,就不必这么繁琐了。
直接run,它运行到产生段错误的地方他就会停下来,它产生的调试信息,一般比较复杂,所以这时不必急着去研究,再输入where指令,它就会告诉你在哪个函数,哪行产生了段错误,但是有的时候它给出的行数是一个十六进制的内存地址,一般是无法确定行数的,这时就可以输入list指令直接列出产生段错误的详细代码段。
然后就可以直接去源文件的具体位置查看代码出了什么问题。
第3章主机管理系统整体设计
3.1整体设计概念设计图
图3-1整体系统设计概念图
如上图3-1所示,移动监控设备实时通过网络跟个人PC进行通信,pc主机采集各种运行状态的详细信息,发送到移动监控端。
移动监控端通过网络接收到详细信息打印到屏幕上,并且通过网络发送指令到个人PC机,控制PC机的运行。
3.2软件工作流程图
3.2.1主机工作流程图
如下图3-2所示,软件开始运行,首先初始化控制台,然后创建线程接受指令,调用recv函数接收。
将接收到的数据进行判断,调用system函数进行指令的执行,并且记录相关信息到日志文件。
图3-2主机工作流程图
在主线程中,先判断控制台初始化的是否成功,如果成功初始化,就进入相关工作,否则结束工作,记录错误信息。
进入正常流程后,先获取当地实时时间和本地主机ip,显示在屏幕上,供用户第一时间可看到。
然后依次采集CPU使用率,实时网络流量状况,进程运行状况,内存使用状况,以及磁盘使用状况,采集完成一项就及时上传,记录成功上传的记录,失败的话就记录错误日志。
最后等待一定时间,进行第二次采集上报,实现实时监控的目标。
3.2.2监控端工作流程图
图3-3监控端工作流程
如上图3-3所示,软件启动首先进入控制台的初始化,开辟一个线程,用于等待用户输入指令去控制主机的运行。
一旦用户输入指令,就会发送或者失败的情况都会记录相关情况。
主线程显示相关时间和IP信息,然后主动connect主机,连接成功后会等待接收数据,一旦数据到达,就会实时分块的显示在屏幕上,以供用户第一时间可以看到自己主机的运行状况,第一时间做出判断控制。
第4章主机管理系统模块实现
4.1日志记录模块实现
错误日志模块设计的目的是可以快速的了解到系统运行所产生的错误信息,准确的判断系统设计的漏洞和系统崩溃的原因。
其次可以准确的掌握系统指令的执行状况和运行状况。
最重要的一个功能就是采集的信息有一块出现了错误,这时就可以通过日志,准确定位到错误原因产生的地方。
日志文件的指定格式:
[时间][模块名称][信息][级别]。
级别:
DEBUG调试级NORMAL普通级WARN警告级ERROR错误级。
4.2配置文件模块实现
配置文件是本系统运行的核心部分,系统要采集的关键信息都是从配置文件中读取的。
配置文件包含的内容包含目标主机的ip,端口,待监控磁盘的名称,待监控进程的名称,采集时间间隔等,配置文件中每个名称之间用逗号隔开,并且遵循一定格式。
系统一开始运行,第一件要做的事就是初始化配置文件,把配置文件的内容读取到链表中,保存在内存中,直到整个系统退出。
4.3CPU使用率模块实现
linux操作系统CPU的使用状况需要从/proc/cpuinfo文件中读取,然后进行分析计算。
CPU的占用状态分为用户状态,系统状态和空闲状态。
我们也可以用top指令查询cpu使用的详细状况。
在/proc/cpuinfo文件中,usertime代表用户时间,systemtime代表系统时间,waitingtime代表等待时间,idletime代表空闲时间,nicetime代表nice时间,也就是说是系统调整进程优先级所花费的时间。
hardirqtime代表硬中断处理时间,softirqtime代表软中断处理时间,streamtime代表丢失时间。
CPU占用率计算公式:
CPU占用时间=usertime+systemtime+waitingtime+idletime+nicetime+hardirqtime+softirqtime+streamtime。
%usertime=(usertime+nicetime)/CPU占用时间*100%。
%systemtime=(systemtime+hardirqtime+softirqtime)/CPU占用时间*100%。
%idletime=(idletime)/CPU占用时间*100%。
%nicetime=(nicetime)/CPU占用时间*100%。
%hardirqtime=(hardirqtime)/CPU占用时间*100%。
%waitingtime=(waitingtime)/CPU占用时间*100%。
%softirqtime=(softirqtime)/CPU占用时间*100%。
%streamtime=(streamtime)/CPU占用时间*100%。
4.4内存使用状况模块实现
内存是用来存储数据的,是一种利用半导体技术做成的电子设备,电子电路的数据是以二进制的方式存储,存储器的每一个存储单元称做记忆元。
存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存。
linux操作系统的内存使用状况可以通过/proc/meminfo文件中读取。
这个文件中涉及到三个主要的标志。
totalmem代表当前总内存,freemem代表当前空闲内存,totalswap代表当前可用的交换内存,freeswap代表当前可交换的空闲内存。
读出来的内存数据一般是以K为单位的,所以要把它换算成兆。
换算的公式是1M=1024KB。
4.5网络流量监控模块实现
本模块主要监测当前主机的平均上传流量的速度和下载速度。
网络流量可以在/proc/net/dev文件获取当前的总值。
我采取分别隔相等的秒数读取三次流量上传速度和下载速度并把他们保存在缓存中,最终取三次数值的平均值,计算出平均的上传速度和下载速度。
4.6进程监控模块实现
需要监控的关键进程是事先写入到配置文件中的,我们可以从配置文件中读取待监控的关键进程,分析出他的关键状态。
如果不采用写入配置文件的方式进行监控进程,那系统运行的进程非常多,采集出来的数据量极大,而且数度复杂度很高,针对性很差,难以起到及时发现不正常进程的效果。
linux操作系统可以通过ps-ef进行对当前系统的所有进程进行查询。
我通过函数popen打开ps-ef这个指令,然后根据配置文件所要求的进程进行逐个对比,符合要求的进程,当即提取出相关信息,保存到缓存中,再继续对比读取,直到配置文件中所有待监控进程全部寻找完毕。
如果待监控进程不存在于当前系统,则将他的进程ID设置成-1以做区别。
4.7磁盘监控模块实现
待检测的磁盘名是从配置文件中读取的,因为我们的pc机可以挂载多个外接磁盘,全部读取,针对性差,与本设计初衷不符。
linux操作系统的所有磁盘的信息是在/etc/mtab中读取。
我将磁盘的状态分成未挂载(0),正常
(1),故障(5)。
磁盘要采集的信息包括磁盘当前的状态,磁盘的挂载路径,磁盘的类型,磁盘的块大小,磁盘的总大小,磁盘的空闲大小等。
这些信息采集出来可以在本地pc机上通过指令查看,同时也会发送给远端监控端。
4.8网络通信模块设计
4.8.1TCP网络协议的介绍
本设计网络通信主要是基于TCP网络协议实现的,首先详细介绍下TCP网络协议。
TCP是一种面向连接的,可靠的,基于字节流的传输层的通信协议。
TCP/ip协议遵循四层的一个模型,分别是应用层,传输层,互联层,网络接口层。
与之对应的是OSI模型,它的物理层,表示层,会话层其实是对应于四层模型的应用层。
OSI的传输层对应于四层模型的TCP/UDP层,OSI的网络层对应于四层模型的IPV4,IPV6地址,OSI的数据链路层和物理层其实就是对应与四层模型的网络介质层。
下图4-1是这两个模型的图形表示,看起来会比较直观。
图4-1模型对比
TCP协议数据进入协议栈时的封装如下图4-2所示:
图4-2TCP协议入栈数据封装
下图是TCP协议建立对话连接的示意图:
图4-3TCP对话连接建立
下图是TCP协议断开对话连接的示意图:
图4-4TCP连接断开
4.8.2IP地址分类介绍
其次本设计采用的目标连接是基于IPV4类型的IP地址的,IP地址分为IPV4和IPV6两种类型,目前广泛采用的是IPV4地址,目前的主流IP地址基本都是采用IPV4的,但是IPV4地址的数量有限,随着电脑的不断普及和网络的扩张,下面详细介绍IPV4地址族的分类和子网划分。
A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围1.0.0.1-126.255.255.254。
可用的A类网络有126个,每个网络能容纳1677214个主机。
B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128.1.0.1-191.255.255.254。
可用的B类网络有16384个,每个网络能容纳65534主机。
C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。
范围192.0.1.1-223.255.255.254。
C类网络可达2097152个,每个网络能容纳254个主机。
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。
它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。
多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
地址范围224.0.0.1-239.255.255.254。
E类IP地址第一个字节以“1111”开始,为将来使用保留。
E类地址保留,仅作实验和开发用。
全零(“0.0.0.0”)地址指任意网络。
全“1”的IP(“255.255.255.255”)是当前子网的广播地址。
4.8.3网络连接过程实现
在监控端,调用socket函数初始化一个套接字,调用connect函数进行主动连接,重复尝试连接多次。
在服务端,也是调用socket函数初始化一个套接字,调用bind函数绑定一个本地ip地址,绑定成功后调用listen函数进行连接监听。
监听成功后,调停accept函数进行连接等待,使用select设置等待超时时间。
第5章主机管理系统的系统调试
5.1主机系统调试方法
开启PC端的采集发送程序,查看确认待监控的项目后,配置好网络地址和端口后,启动等待监控端的连接。
注意观察监控端的连接超时等待次数。
发现多次重连以后依旧无法建立连接,采取了关闭软件进行网络的调试,互相PING对方的IP地址,发现无法PING通,确认为网络设置出现问题,重新配置了网关和IP地址以后成功解决了连接问题。
开启移动端电源,运行移动端的监控程序,配置好网络地址和端口后,启动主动连接。
三路握手成功后,数据会陆续发送到移动监控端,注意观察LCD液晶屏幕的数据显示,仔细核实数据,记录丢包和漏发的项目。
断开连接,查看日志文件的重要信息和错误日志,并作分析,进行进一步的改进。
调试发现在断开后有时会出现不稳定现象,一端断开了以后,另一端会进入非正常工作。
后来添加了断开判断机制,设置断开标志位进行判断处理,成功解决了这个问题。
5.2主机系统调试结果
经测试,数据收发基本正常,LCD屏幕显示合理有序,基本在允许的误差之内。
具体数据如下图所示:
图5-1内存状况数据
如上图5-1所示,显示的为当前电脑的内存使用状况。
数据表明剩余内存比较少,说明当前电脑开启的应用过多,消耗了大量内存,用户应该适当的关闭一些不使用的应用来释放内存,缓解电脑的内存压力,减少对电脑的损伤。
图5-2进程运行状况
如上图5-2所示,显示为当前主要监控的进程的运行状况的数据,上图显示进程ID为-1的表明当前监控的进程已经退出或者意外关闭。
5-3CPU使状况
如上图5-3所示,显示为当前CPU的使用情况,当前电脑CPU使用率为百分之三,属于比较正常的情况,说明当前电脑运行基本稳定。
图5-4实时流量速度状况
如上图5-4所示,显示为当前电脑实时流量上传和下载速度的使用状况。
上面数据表明当前主机没有从网络上面下载数据包,以28KB每秒的速度再从网络上下载数据包,当前网速偏慢或者表明下载的资源稀少,导致下载速度过慢。
图5-5指令
如上图5-5所示,clean表示清屏指令,show可以显示相关信息,start表示开始发送运行状况信息,ls代表打印所有命令,quit表示结束整个软件运行,change是改变配置文件信息。
图5-6磁盘运行状况
如上图5-6所示,显示为当前电脑磁盘的使用状况。
上面数据,显示磁盘大小为0的,说明待监控的磁盘状态不正确,可能是配置的时候磁盘名输入错误,导致无法正确读取,或者待检测的磁盘已经被拔出,处于为挂载状态。
图5-7开始连接主机
如上图5-7所示,显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 移动 设备 主机 管理 系统 设计 毕业论文