当前位置:文档之家› 可行性分析报告

可行性分析报告

XXXXXX有限公司研究中心文档编号产品版本密级W-YD-2014-02-10V 1.0任务:系统守护进程共页可行性分析报告(仅供内部使用)文档作者:X X X 日期:2014 / 02 / 10 产品经理:______________________ 日期:___/___/___XXXXXX有限公司XXXX中心版权所有不得复制可行性分析报告关键词: 守护进程、进程监测摘要: 本文针对java实现系统守护进程的技术需求,分析其需求在现有技术下解决的可行性。

并分析通过守护进程实时浏览存储管理系统其他后台进程的运行状态,对其他进程进行启动、停止操作的可行性,提出相应的解决方案。

缩略语说明:略1 引言1.1编写目的本文针对java实现系统守护进程的技术需求,对守护进程的创建,监管其他进程的可行性进行分析,并提出相应的解决方案。

1.2功能需求1)守护进程在操作系统启动后应自动加载2)通过守护进程可实时浏览存储管理系统其他后台进程(资源采集、性能采集、WEB服务)的运行状态,并可对其他进程进行启动、停止操作1.3参考资料略1.4术语和缩写词1)守护进程:守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。

它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。

守护进程常常在系统引导装入时启动,在系统关闭时终止。

2 技术可行性2.1语言要求为实现跨平台运行,采用java语言为编程语言。

2.2环境要求jdk1.5以上,windows XP及以上,Red Hat Enterprise Linux 5(其他系统暂不详)2.3监管进程可选方案:1、可用java程序直接监控当前系统后台运行的全部进程。

再按名称匹配所需查找的子进程,并对其进行操作。

【以wps.exe进程为例,win7系统测试通过】2、可使用脚本:Linux服务器进程监控和调整【该方案为Linux下的进程监视设计,根据其进程号PID和父进程号PPID进行监测和管理】3、JDK内置工具:/pdb/java/200703/99960.html【该方案仅实现实时监控进程状态,但要借助jdk自带工具,扩展性不强】综上所述,方案一可行性最高。

2.4 守护进程可选方案:1、linux环境下,将java程序制作成jar包,放到相应环境下,并在启动命令后加’$’2、利用java线程实现守护进程:利用apatch deamon封装的功能,setDeamon()方法,可将被调用线程设置为后台线程,从而实现守护进程功能。

3 设备可行性Windows 7 专业版:测试可用4 人员可行性根据部门现有开发人员:可行。

5 代码工作量模块及组件数量界面:预期为一个界面;数据库:如果不需要录入数据库,无;程序:估算不超过1千行;算法研究:中;6 测试要求及时间可行性6.1测试要求跨平台,正常运行。

6.2时间可行性最后完成时间定为____天。

附件一:实现java监测win7系统进程并管控wps.exe进程的源码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Test {/*** 查询正在运行的进程*/public static void taskList() {try {BufferedReader in = getTaskList();String string_Temp = in.readLine();while (string_Temp != null) {System.out.println(string_Temp);string_Temp = in.readLine();}} catch (Exception e) {}}public static BufferedReader getTaskList() {try {String cmd =null;if(theOSType()==1) //windows{cmd = "tasklist";}else if(theOSType()==2) //linux{cmd = "";}else if(theOSType()==3) //unix{cmd = "";}Process proc;proc = Runtime.getRuntime().exec(cmd);BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));return in;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public static void showSome(String... name) {try {BufferedReader in = getTaskList();String string_Temp = in.readLine();while (string_Temp != null) {for (int i = 0; i < name.length; i++) {if (string_Temp.startsWith("======")|| string_Temp.startsWith("映像名称")) {System.out.println(string_Temp);break;}if (string_Temp.startsWith(name[i])) {System.out.println(string_Temp);}}string_Temp = in.readLine();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 删除进程** @param path* @throws IOException*/public static void del(String path) throws IOException {Process proc = Runtime.getRuntime().exec("Taskkill /IM " + path);}/*** 启动进程当然启动时.如果启动的命令项不在当前目录.那就要指定目录了** @param path* @throws IOException*/public static void start(String path) throws IOException {Process proc = Runtime.getRuntime().exec(path);}/*** 判断当前系统类型** @return*/public static int theOSType() {int flag = 0;if (System.getProperties().getProperty("").toUpperCase().indexOf("WINDOWS") != -1){flag = 1;}else if(System.getProperties().getProperty("").toUpperCase() .indexOf("LINUX") != -1){flag = 2;}else if(System.getProperties().getProperty("").toUpperCase() .indexOf("UNIX") != -1){flag = 3;}return flag;}}【返回】附录二:Linux服务器进程监控和调整进程的定义:一个进程是一个程序的一次执行的过程,程序是静态的,它是一些保存在磁盘上的可执行的代码和数据集合,进程是一个动态的概念。

一、 Linux进程概念Linux 进程中最知名的属性就是它的进程号(Process Idenity Number,PID)和它的父进程号(parent process ID,PPID)。

PID、PPID都是非零正整数。

一个PID唯一地标识一个进程。

一个进程创建新进程称为创建了子进程(child process)。

相反地,创建子进程的进程称为父进程。

所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫做init进程。

是内核自举后第一个启动的进程。

init进程作用是扮演终结父进程的角色。

因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。

如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init为参照的情况。

此时那些失去了父进程的子进程就都会以init作为它们的父进程。

Linux进程在运行中的三种状态:执行(Running)状态:CPU正在执行,即进程正在占用CPU。

就绪(Waiting)状态:进程已经具备的执行的一切条件,正在等待分配CPU处理时间。

停止(Stoped)状态:进程不能使用CPU。

理解Linux下进程的结构:Linux中一个进程在内存里有三部份的数据,就是"数据段","堆栈段"和"代码段",基于I386兼容的中央处理器,都有上述三种段寄存器,以方便操作系统的运行。

见图1。

代码段,是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。

而数据段则存放程序的全局变量,常数以及动态数据分配的数据空间。

堆栈段存放的就是子程序的返回地址、子程序的参数以及程序的局部变量。

堆栈段包括进程控制块PCB(Process Control Block)中。

PCB处于进程核心堆栈的底部,不需要额外分配空间。

Linux进程的种类:Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。

交互进程--由一个shell启动的进程。

交互进程既可以在前台运行,也可以在后台运行。

批处理进程--这种进程和终端没有联系,是一个进程序列。

监控进程(也称守护进程)--Linux系统启动时启动的进程,并在后台运行。

二、linux服务器进程的监控1.基本进程查看命令:psLinux系统提供了ps、top等察看进程信息的系统调用,通过结合使用这些系统调用,我们可以清晰地了解进程的运行状态以及存活情况,从而采取相应的措施,来确保Linux 系统的性能。

相关主题