好文档 - 专业文书写作范文服务资料分享网站

利用进程间通信实现程序自我保护分析

天下 分享 时间: 加入收藏 我要投稿 点赞

百度文库 - 让每个人平等地提升自我

<>

利用进程间通信实现程序自我保护,重点研究进程间通信技术,最终实现程序运行的稳定。 1.引言

在计算机和网络技术日益发展的今天,病毒这个字眼越来越多地出现在了媒体和人们的言论中。计算机病毒的发展必然会促进计算机反病毒技术的发展,新型病毒的出现向以行为规则判定病毒的预防产品、以病毒特征为基础的检测产品,以及根据计算机病毒传染宿主程序的方法而消除病毒的产品提出了挑战,致使原有的反病毒技术和产品在新型的计算机病毒面前无能为力。这样,势必使人们认识到现有反病毒产品在对抗新型的计算机病毒方面的局限性,迫使人们在反病毒的技术和产品上进行新的更新和换代。要打败对手,就要从了解对手开始,本文从模拟病毒隐藏性和寄生性的角度出发,以进程通信、进程快照、多线程等技术基础,利用Visual C++的MFC窗口界面设计了一组程序自我保护软件,经过测试实现了程序的稳定运行。

2.进程的概念

当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。因此定义进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤销,反映了一个程序在一定的数据集上运行的全部动态过程。

1

百度文库 - 让每个人平等地提升自我

进程由两个部分组成:

(1)操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。

(2)地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间,如线程堆栈和堆分配空间。

目前常用的操作系统都是并行的,就是多个进程可以同步运行,这时就会牵扯到进程间通信这个概念。所谓进程通信,就是不同进程之间进行一些“接触”,这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些信息。举个例子来说明:比如说在使用IE上网时,你想将网页上的一段文字保存至你的电脑上,这时有一种简单的方法,就是复制粘贴。将你想保存的文字选中,然后将其复制,接下来将所复制的文字粘贴到.TXT文档中,这时就形成了两个进程之间的通信,这里的通信媒介是剪贴板。 3.线程的概念

为了对线程模式有一定的理解,我们可以将其想象为把一所屋子里的东西搬到另一所屋子。如果采用单线程方法,则需要自己完成从打包到扛箱子再到拆包的所有工作。如果使用单元线程模式,则表示邀请了好朋友来帮忙。每个朋友在一个单独的房间里工作,并且不能帮助在其他房间工作的人。他们各自负责自己的空间和空间内的物品搬运。如果采用自由线程方法,仍然邀请相同的朋友来帮忙,但是所有朋友可以随时在任何一个房间工作,共同打包物品。与此类似,房子就是运行所有线程的进程,每个朋友都是一个代码实例,搬运的物品为应用程序的资源和变量。

有了上面的例子,便能容易理解线程(Thread)是一个能

2

百度文库 - 让每个人平等地提升自我

独立于程序的其他部分运行的作业,是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。一个线程可以执行应用程序代码的任一部分,包括正在由另一线程执行的代码。 线程由两个部分组成:

(1)线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。

(2)线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。

线程属于一个过程,操作系统为每一个运行线程安排一定的CPU时间——时间片,线程是操作系统分配CPU时间的基本单位。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,因时间片相当短,因此,给用户的感觉,就好像线程是同时运行的一样。如果计算机拥有多个CPU,线程就能真正意义上同时运行了。 4.进程与线程的关系

根据操作系统的定义,进程是系统资源管理的最小单位,线程是程序执行的最小单位。进程是不活泼的,进程可以理解为是线程的容器。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码。单个进程可能包含若干个线程,这些线程都“同时”执行进程地址空间中的代码。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建一个进程时,操作系统会自动创建这个进程的第一个线程,称为主线程。此

3

百度文库 - 让每个人平等地提升自我

后,该线程可以创建其他的线程。

线程是属于进程的,它没有自己的独立的数据地址空间,线程运行在进程空间内,因此线程的切换速度比较快。同一进程所产生的线程共享同一内存空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程执行完后再执行。当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其他线程共享虚地址空间、全局变量,以及该进程所拥有的全部资源,包括打开的文件、信号标志及动态分配的内存等。但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。

线程有点像进程身体内的细胞,我们通常听过多进程多线程,单进程多线程。这就是说,一个系统内有几个进程,如果进程是多个,就是多进程的,如果进程内有多个线程,那就是多线程的,多进程多线程的系统比单进程多线程的系统速度慢,但是可靠性高。

更多文章 http://www.mxdsf.net/ mxdwk <> 1.绪论

1.1研究背景

网络被认为是互联网发展的第三阶段。网络的设计和实施能够带来切身实际的利益,城域网、企业网、局域网、家庭网和个人网络都是网络发展的体现。网络发明的初衷并不仅仅是表现在它的规模上,而是互联互通,资源共享,消除资源访问的壁垒,让生活更加方便、快捷、高效。随着网络技术的发展,网络在应用方面也体现出了很大的潜力,能够共享和调度成千上万的计算设备协同并发工作,能汇聚数百万计的信息资源加

4

百度文库 - 让每个人平等地提升自我

以归类、分析和发布,还可以让世界每一个角落的人们实时沟通交流。在现代高速发展的社会里,企业与企业之间的联系日益密切,大量的、复杂的信息交流显得由为重要。随着电子科技的高速发展,那些如何复杂大量的信息,通过网络技术帮助下,就可以轻而易举的从某一地方传送到另一地方,而且简单、快速、准确,给人们带来了很大的方便。而在现代企业中,网络技术在管理中的应用,已显得举足轻重。随着企业信息化进程的进一步深入和发展,计算机在企业中的应用越来越广泛,而企业对计算机的依赖越来越强。随着网络应用的日益丰富以及人们在日常生活中对网络依赖的日渐紧密,那么对于网络吞吐量,网络延时,网络链路的稳定性以及网络服务的多样性就会产生新的要求,同时也希望网络应用的花销能更加低廉,这样针对电信网络运营商所提供的服务将会产生巨大的挑战,本实时通信系统的成功应用将会给运营商们提供更加方便,快捷,稳定,并且低廉的网络运营成本,本实时通信系统帮助企业实现巨大的商业价值的同时也为用户带来的更加高效,快速,稳定并且廉价的网络服务资源。

1.2 选题理论

1.2.1 需求分析方法

在软件的设计和开发过程中,需求分析是一个重要的阶段,是项目开发的基本要素,是项目实现和实行的关键。软件工程的需求分析指的是了解用户需求,在软件的功能上和客户沟通并且达成一致,评估软件的风险系数和项目需要付出的代价,最终形成一个完善设计实现的复杂过程。目前比较流行的软件需求分析方法有:结构化分析方法和面向对象的分析方法。

1. 结构化分析

结构化分析方法给出一组帮助系统分析人员产生功能规约

5

利用进程间通信实现程序自我保护分析

百度文库-让每个人平等地提升自我利用进程间通信实现程序自我保护,重点研究进程间通信技术,最终实现程序运行的稳定。1.引言在计算机和网络技术日益发展的今天,病毒这个字眼越来越多地出现在了媒体和人们的言论中。计算机病毒的发展必然会促进计算机反病毒技术的发展,新型病毒的出现向以行为规则判定病毒的预防产品、以
推荐度:
点击下载文档文档为doc格式
4c0gl6h5xr9x6b742rz56u75f0b43501d9g
领取福利

微信扫码领取福利

微信扫码分享