建立进程的实质dota是什么么?

什么是进程?进程的组成及状态如何?
什么是进程?进程的组成及状态如何?
进程为应用程序的运行实例,是应用程序的一次动态执行。看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。
提问者 的感言:谢谢 满意答案
进程就是你的计算机正在运行的程序.
进程就是一个活跃着的程序,即:已经被放入了系统调度队列当中了,占有了一定的系统资源的程序.程序在没有被调用之前只能叫程序,被调用并得到了资源后就可以称其为进程了,进程可以由许多线程组成,线程与进程的主要区别在于同一进程里的线程之间可以共享一些临界资源,而进程之间则不可以,每个进程是孤立的,其实,无论是进程还是线程都是一段受命并在内存中得到执行的代码.
提问者 的感言:谢谢
其他回答 (9)
第一:进程是什么

  进程为应用程序的运行实例,是应用程序的一次动态执行。看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序,当然也包括用户不知道,而自动运行的非法程序(它们就有可能是病毒程序)。

  危害较大的可执行病毒同样以“进程”形式出现在系统内部(一些病毒可能并不被进程列表显示,如“宏病毒”),那么及时查看并准确杀掉非法进程对于手工杀毒有起着关键性的作用。 

第二:什么是木马

  木马病毒源自古希腊特洛伊战争中著名的“木马计”而得名,顾名思义就是一种伪装潜伏的网络病毒,等待时机成熟就出来害人。

  传染方式:通过电子邮件附件发出,捆绑在其他的程序中。

  病毒特性:会修改注册表、驻留内存、在系统中安装后门程序、开机加载附带的木马。

  木马病毒的破坏性:木马病毒的发作要在用户的机器里运行客户端程序,一旦发作,就可设置后门,定时地发送该用户的隐私到木马程序指定的地址,一般同时内置可进入该用户电脑的端口,并可任意控制此计算机,进行文件删除、拷贝、改密码等非法操作。 

  防范措施:用户提高警惕,不下载和运行来历不明的程序,对于不明来历的邮件附件也不要随意打开。 

第三:什么是计算机病毒 

  计算机病毒是一个程序,一段可执行码。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起蔓延开来。

  除复制能力外,某些计算机病毒还有其它一些共同特性:一个被污染的程序能够传送病毒载体。当你看到病毒载体似乎仅仅表现在文字和图象上时,它们可能也已毁坏了文件、再格式化了你的硬盘驱动或引发了其它类型的灾害。若是病毒并不寄生于一个污染程序,它仍然能通过占据存贮空间给你带来麻烦,并降低你的计算机的全部性能。可以从不同角度给出计算机病毒的定义。一种定义是通过磁盘、磁带和网络等作为媒介传播扩散,能“传染” 其他程序的程序。另一种是能够实现自身复制且借助一定的载体存在的具有潜伏性、传染性和破坏性的程序。还有的定义是一种人为制造的程序,它通过不同的途径潜伏或寄生在存储媒体(如磁盘、内存)或程序里。当某种条件或时机成熟时,它会自生复制并传播,使计算机的资源受到不同程序的破坏等等。这些说法在某种意义上借用了生物学病毒的概念,计算机病毒同生物病毒所相似之处是能够侵入计算机系统和网络,危害正常工作的“病原体”。它能够对计算机系统进行各种破坏,同时能够自我复制, 具有传染性。

  所以, 计算机病毒就是能够通过某种途径潜伏在计算机存储介质(或程序)里, 当达到某种条件时即被激活的具有对计算机资源进行破坏作用的一组程序或指令集合。

第四:什么是蠕虫病毒 

  蠕虫病毒是计算机病毒的一种。它的传染机理是利用网络进行复制和传播,传染途径是通过网络和电子邮件。

  蠕虫病毒利用了微软视窗操作系统的漏洞,计算机感染这一病毒后,会不断自动拨号上网,并利用文件中的地址信息或者网络共享进行传播,最终破坏用户的大部分重要数据。

  蠕虫病毒的一般防治方法是:使用具有实时监控功能的杀毒软件,并且注意不要轻易打开不熟悉的邮件附件。







讲的那么复杂。。
进程就是 你现在所运用的程序。。
比如QQ
就有个进程是QQ
有些进程是开机就有勒。。
杀毒软件也是。。
一般系统进程比较多。
对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。 
  进程是由进程控制块、程序段、数据段三部分组成。一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键操作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程。
  是可并发执行的程序。在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位,也是称活动、路径或任务,它有两方面性质:活动性、并发性。进程可以划分为运行、阻塞、就绪三种状态,并随一定条件而相互转化:就绪--运行,运行--阻塞,阻塞--就绪。 
  进程为应用程序的运行实例,是应用程序的一次动态执行。看似高深,我们可以简单地理解为:它是操作系统当前运行的执行程序。在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序,当然也包括用户不知道,而自动运行的非法程序(它们就有可能是病毒程序)。 
  危害较大的可执行病毒同样以“进程”形式出现在系统内部(一些病毒可能并不被进程列表显示,如“宏病毒”),那么及时查看并准确杀掉非法进程对于手工杀毒有起着关键性的作用。
  进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是 
  死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种 
  功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。 
  在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
  1.进程的引入:
  多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。 
  2.进程的概念:
  进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。
  进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
  进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
  操作系统引入进程的概念的原因:
  从理论角度看,是对正在运行的程序过程的抽象;
  从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
  3.进程的特征
  动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。
  并发性:任何进程都可以同其他进程一起并发执行
  独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
  异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
  结构特征:进程由程序、数据和进程控制块三部分组成。
  4.进程与程序的关系
  程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
  程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
  进程更能真实地描述并发,而程序不能;进程是由程序和数据两部分组成的。
  进程具有创建其他进程的功能,而程序没有。
  同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进程。 
  在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
进程就是计算机的一些程序正在运行当中,我们可以从进程里看到什么在运行什么没有运行
电脑运行的程序就是进程!
好好学呀,到时候我请教你呀
不,简单地说,就是按要求系统工作的量化指标,暨网络运行的程度。
关于进程较实质的定义: 
1. 进程是程序的一次执行; 
2. 进程是可以和别的计算器并发执行的计算; 
3. 可定义为一个数据结构及能在其上进行操作的一个程序; 
4. 一个程序及其数据在处理机上顺序执行时所发生的活动; 
5. 是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 
综合定义为:可并发执行的程序在一个数据集合上的运行过程。 

线程:比进程更小的能独立运行的基本单位。 
更具体的内容建议你去看一本操作系统的书。
1、每个进程都包刮(进程控制块)、(程序段)和(数据段)3个组成部分。 
2、一个程序运行在不同的数据集上就构成了不同的(进程),分别得到不同的结果。 
3、进程在执行过程中不同时刻的3中基本状态是(运行状态)、 (就绪状态)和(等待状态)。 
4、进程是一个(独立存在)的实体,它有自己的生命周期。它因(创建 )而产生,因(调度 )而运行,因(等待某件事 )而被阻塞(进入等待态),因( 得不到资源)而被撤销。 
5、进程在执行过程中状态不断(变化 ),但在某一时刻,进程当且仅当处于3种基本状态之一。 
6、进程在运行中申请资源得不到满意,则它从(运行 )态变成(阻塞 )态。 
7、处于等待态的进程,其他外围设备工作结束,则它变成(就绪 )态。 
8、进程从运行态变成就绪态,主要原因是(时间片到 )和(出现优先级更高的进程进行中断 )。 
9、有多个进程等待分配CPU时,系统按一定的(优先级 ),从处于就绪态的进程中选择( 第一)个进程,让他占有CPU,并使它状态变成(运行 )态。 
10、进程刚被创建是它的状态是 新建? 
11、操作系统依据 (系统内核)对进程进行控制和管理 
12、进程有两种基本队列 和 
13、时间片是指允许进程一次占用处理器的 。时间片轮转调度算法常用于 (分时)操作系统中。 
14、我们把进程中与(临界资源进行操作)有关的程序段称为临界区。 
15、任一个进入临界区的进程必须在 有限时间内进入 临界区。 
16、PV操作由p操作即申请资源 和v操作即释放一个资源 组成,是对信号量? 进行操作。 
17、P操作将信号量的值减1 ,若结果小于0,则该进程置为(阻塞) 状态,V操作将信号量的值加 ,若结果 大于0,则释放一个等待信号量的进程。 
18、当并发进程存在竞争关系时必须 地使用资源,当并发进程存在协作关系时必须必须 ,分别称为 和 
19、利用信号量实现进程 ,应为临界区设置一个信号量Mutex,初值为1 ,表示该资源尚未使用,临界区应置于 和 原语之间。 
20、进程的同步是指并发进程之间的一种协同合作 关系,一个进程的执行依赖另一个进程的 某些操作 
,当一个进程没有得到它时应 ,直到被 。 
21、形成死锁的起因是 多个进程抢占资源和资源不能被分配各进程都进入等待 。 
22、死锁的四个必要条件是 1互斥条件2请求和保持条件3不剥夺条件4循环等待条件 。 
23、检测到死锁后可采用 、 或 等办法来解除死锁(破坏4个条件的任意一个即可,可通过不同算法实现) 

相关知识等待您来回答
电脑常识领域专家5263人阅读
一、问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题
1.socket与进程的关系
1).socket与进程间的关系:socket & 用来让一个进程和其他的进程互通信息(IPC),而Socket接口是TCP/IP网络的API接口函数。
2).进程间通信(本机内)
进程间通信(不同计算机,要联网)
2、socket与文件的关系——如何理解socket是种特殊的I/O?
1)Socket最先应用于Unix操作系统,如果了解Unix系统的I/O的话,就很容易了解Socket了,因为Socket数据传输其实就是一种特殊的I/O。&
2)可对其进行文件操作
3)有文件描述符。而文件描述符的本质是一个非负整数。只是用于区分。类似的还有进程ID。
3.服务器端口与连接个数的关系
1)服务端在8088上监听,然后生成一个新的socket与client通讯。(注意:服务器端监听端口是
不变的,但socket连接可以一直生成,一个线程对应一个socket.)
同一时刻,一个端口只能建立一个连接。&
在一个端口监听,但是在监听端口的同时,生成一个等待队列,每一个来自客户端的连接都会送入等待队列中,服务器利用一定的算法进行选择相应的连接请求处理,所以在一个端口可以监听多各请求嘛。如果同时的连接过多,服务器相应每个连接的时间就会相应的变长。就会变慢。
2)QQ的实现方法就是在登陆的时候告诉服务器你已经登陆,发送消息的时候,首先你会发送一个包给服务器,服务器查看你需要发送的对方是否在线,如果在线就返回包告诉你对方在线,然后你就会和对方建立一个连接,然后直接发消息给对方,如果对方不在线,那么就会通过服务器转发你这次的消息
3)网络IO数与你的CPU数目一致将是比较好的选择(考虑到多线程多进程可以提高效率)。&
没有必要每个客户分配一个端口。绝对是一种无谓的浪费。&
4.有人知道socket监听的一个端口.最多可以有多少个客户连接?&
1)listen()中有个参数,应该是确定并行连接客户数?!
2)The & maximum & length & of & the & queue & of & pending & connections. & If &&this & value & is & SOMAXCONN, & then & the & underlying & service & provider &&responsible & for & socket & s & will & set & the & backlog & to & a & maximum &&&reasonable & &
value. & There & is & no & standard & provision & to & find & out &&the & actual & backlog & value. &&
3)linux2.4下,最多可以有1024个socket连接
4)同时连接请求好像是5个(是连接请求,不是连接),可保持的链接理论上是65535(2字节的SOCKET端口号),
3.Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。
5.问:现在server与client想建立socket连接,server仅知道client的IP,端口号不知道,能建立连接吗?怎么建立呢?有没有代码看看?
答:C和S是相对而言的,发起连接的一方就是C,而监听端口接受连接的一方就是S,C如果不知道S监听的端口,怎么发起连接呢,
另外,对于S而言,端口是S上各个服务的区分标志,如果用错误的端口号去连接,是不能获得正确的服务的。
client的端口是不需要指定的,Server绑定端口,然后监听,client使用server的IP和端口建立socket连接&
6.精彩问答
问:看到的文章上说“每个网络通信循环地进出主计算机的TCP & 应用层。它被两个所连接的号码唯一地识别。这两个号码合起来叫做套接字.组成套接字的这两个号码就是机器的IP & 地址和TCP & 软件所使用的端口号。”&
又说“通过socket()函数可以创建一个套接字,然后再把它绑定到端口号...”&
那么套接字socket的概念究竟到哪里为止呢?是仅限于socket()返回的文件描述符?还是是IP和端口号的组合?如果是,那么socket()调用之后产生的套接字描述符的作用是什么呢? & 套接字描述符,IP地址,端口号三者间的关系是怎样的?&
谢谢各位前辈解答。
答:一个socket句柄代表两个地址对 & “本地ip:port”--“远程ip:port”
问:那么socket的概念到底到那里为止呢?比如,利用socket()可以产生一个套接字句柄,可是在bind() & 或者 & connect & () & 之前它只是一个文件描述符,和linux中其他的文件描述符一样。&
如果说socket代表一个两个地址对,那么句柄的作用是不是仅仅是在bind() & 或者 & connect & () & 之后的用于区分和标记这样的地址对呢?因为这样他才能和网络的概念联系起来。这样的话,socket的意义应该是说用文件描述符描述的通信双方的IP地址和端口号地址对?(而文件描述符是区分这些地址对的标记?)
答:socket为内核对象,由操作系统内核来维护其缓冲区,引用计数,并且可以在多个进程中使用。&
至于称它为“句柄”“文件描述符”都是一样的,它只不过是内核开放给用户进程使用的整数而已
问:谢谢楼上,是我没描述清楚。对于“句柄”和“文件描述符”我没有异议。&
我想我的问题是在于句柄和ip、port的关系,不知道我这样说对否:&
1. & 每一个socket & 本质上都是指一个ip地址和端口对&
2. & 为了操作这样的地址对,使用了文件描述符&
3. & socket()函数只创建了一个普通的文件描述符,在进行bind()或者connect()之前并不能说创建了用于网络通讯的套接字&
4. & 只有在进行了bind()或者connect()之后socket才被创立起来
答:socket()创建了一个socket内核对象。&
accept或者connect后,才可以对socket句柄读写。因为只有在 & connect或者bind,listen,accept后才会设置好socket内核对象里边的ip和端口&
二、socket和端口理解
一个socket句柄代表两个地址对 “本地ip:port”--“远程ip:port”&
在windows下叫句柄,在linux下叫文件描述符&
socket为内核对象,由操作系统内核来维护其缓冲区,引用计数,并且可以在多个进程中使用。&至于称它为“句柄”“文件描述符”都是一样的
我假定读者已经对于socket连接的建立过程和各种状态转换比较熟悉了,因为这篇文档的目的是澄清概念,而不是介绍概念。&
在使用socket编程时,我们都知道在网络通信以前首先要建立连接,而连接的建立是通过对socket的一些操作来完成的。那么,建立连接的过程大致可以分为以下几步:&
1) 建立socket套接字。&
2) 给套接字赋予地址,这个地址不是通常的网络地址的概念。&
3) 建立socket连接。&
1. 建立socket套接字。&
使用socket建立套接字的时候,我们实际上是建立了一个数据结构。这个数据结构最主要
的信息是指定了连接的种类和使用的协议,此外还有一些关于连接队列操作的结构字段
(这里就先不涉及他们了)。&
当我们使用socket函数以后,如果成功的话会返回一个int型的描述符,它指向前面那个
被维护在内核里的socket数据结构。我们的任何操作都是通过这个描述符而作用到那个数
据结构上的。这就像是我们在建立一个文件后得到一个文件描述符一样,对文件的操作都
是通过文件描述符来进行的,而不是直接作用到inode数据结构上。我之所以用文件描述
符举例,是因为socket数据结构也是和inode数据结构密切相关,它不是独立存在于内核
中的,而是位于一个VFS inode结构中。所以,有一些比较抽象的特性,我们可以用文件
操作来不恰当的进行类比以加深理解。&
如前所述,当建立了这个套接字以后,我们可以获得一个象文件描述符那样的套接字描述
符。就象我们对文件进行操作那样,我们可以通过向套接字里面写数据将数据传送到我们
指定的地方,这个地方可以是远端的主机,也可以是本地的主机。如果你有兴趣的话,还
可以用socket机制来实现IPC,不过效率比较低,试试也就行了(我没有试过)。&
2. 给套接字赋予地址。&
依照建立套接字的目的不同,赋予套接字地址的方式有两种:服务器端使用bind,客户端
使用connetc。&
我们都知道,只要使用IP, prot就可以区分一个tcp/ip连接(当然这个连接指的是一个
连接通道,如果要区分特定的主机间的连接,还需要第三个属性 hostname)。&
我们可以使用bind函数来为一个使用在服务器端例程中的套接字赋予通信的地址和端口。
在这里我们称通信的IP地址和端口合起来构成了一个socket地址,而指定一个socket使
用特定的IP和port组合来进行通行的过程就是赋予这个socket一个地址。&
要赋予socket地址,就得使用一个数据结构来指明特定的socket地址,这个数据结构就
是struct sockaddr。对它的使用我就不说了,因为这篇文档的目的是澄清概念而不是说
明使用方法。Bind函数的作用就是将这个特定的标注有socket地址信息的数据结构和
socket套接字联系起来,即赋予这个套接字一个地址。但是在具体实现上,他们两个是怎
么联系在一起的,我还不知道。&
一个特定的socket的地址的生命期是bind成功以后到连接断开前。你可以建立一个
socket数据结构和socket地址的数据结构,但是在没有bind以前他们两个是没有关系
的,在bind以后他们两个才有了关系。这种关系一直维持到连接的结束,当一个连接结束
时,socket数据结构和socket地址的数据结构还都存在,但是他们两个已经没有关系
了。如果你要是用这个套接字在socket地址上重新进行连接时,需重新bind他们两个。再
注明一次,我说的这个连接是一个连接通道,而不是特定的主机之间的连接。&
Bind指定的IP通常是本地IP(一般不特别指定,而使用INADDR_ANY来声明),而最主要
的作用是指定端口。在服务器端的socket进行了bind以后就是用listen来在这个socket
地址上准备进行连接。&
对于客户端来说,是不会使用bind的(并不是不能用,但没什么意义),他们会通过
connet函数来建立socket和socket地址之间的关系。其中的socket地址是它想要连接的
服务器端的socket地址。在connect建立socket和socket地址两者关系的同时,它也在
尝试着建立远端的连接。&
3. 建立socket连接。&
对于准备建立一个连接,服务器端要两个步骤:bind, listen;客户端一个步骤:
connct。如果服务器端accept一个connect,而客户端得到了这个accept的确认,那么
一个连接就建立了。
三、客户/模式模式的理解
&&& 客户/服务器模式采取的是主动请求方式:
&&& 首先服务器方要先启动,并根据请求提供相应服务:
&&& 1. 打开一通信通道并告知本地主机,它愿意在某一公认地址上(周知口,如FTP为21)接收客户请求;
&&& 2. 等待客户请求到达该端口;
&&& 3. 接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork、exec)。新进程处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。
&&& 4. 返回第二步,等待另一客户请求。
&&& 5. 关闭服务器
&&& 客户方:
&&& 1. 打开一通信通道,并连接到服务器所在主机的特定端口;
&&& 2. 向服务器发服务请求报文,等待并接收应答;继续提出请求......
&&& 3. 请求结束后关闭通信通道并终止。
&&& 从上面所描述过程可知:
&&& 1. 客户与服务器进程的作用是非对称的,因此编码不同。
&&& 2. 服务进程一般是先涌纪纪户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:434637次
积分:5292
积分:5292
排名:第1832名
原创:162篇
转载:147篇
评论:108条
(1)(1)(1)(4)(11)(3)(4)(11)(9)(4)(1)(1)(4)(4)(3)(5)(13)(29)(5)(12)(4)(22)(100)(52)(3)(2)(1)

我要回帖

 

随机推荐