1.进程到底是什么?
    进程为应用程序的运行实例,是应用程序的一次动态执行.它是操作系统当前运行的执行程序.当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序,你开启,执行的额外程序,当然也包括你不知道,而自动运行的非法程序(如病毒等).
    进程是程序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是死的(静态的),进程是活的(动态的).进程可以分为系统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是系统进程,病毒也常常把自己注册成系统进程,用户进程就是所有由你启动的进程.进程是操作系统进行资源分配的单位,系统进程具有较高的优先权来得到资源.
  
2.进程的特征.
动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的.
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位.
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的,不可预知的速度向前推进.

3.结构特征
进程由程序,数据和进程控制块三部分组成.

*4.为什么会有句柄这一说?
    刚才上面说了,句柄是一种指向指针的指针.而所谓的指针是一种内存地址.应用程序启动后,组成这个程序的各对象是住留在内存的.简单地理解,似乎我们只要获知这个内存的首地址就可以随时用这个地址访问对象(如进程).但是,如果你真的这样认为,那么你就错了.我们知道,Windows是一个以虚拟内存为基础的操作系统.Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要.对象被移动意味着它的地址变化了.如果地址总是如此变化,我们该到哪里去找该对象呢?(进程失控了?)
    为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的.Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存.这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置.这个地址是在对象装载(Load)时由系统分配给的,当对象被撤消(Unload)时又释放给系统。
    可能大家理解不了,举个形象点的例子.一本书(可以理解为我们的操作系统),总是会有一个目录页(登记具体内容的页码),目录页的每一行就相当于一个句柄,每一行后面的页码就相当于一个指针.当正文内容需要调整时(如原来在第一章的,我现在要把它放到最后一章),那么当内容改动时,我们就要修改目录页中相应的页码(目录页本身是不动的,只是改了页码而已,对于系统来说就是修改了句柄所指向的内存地址的内容).

*5,句柄的本质.
    windows程序并不是用物理地址来标识一个内存块,文件,任务或进程的.系统给这些项目分配确定的句柄,并将其值返回给应用程序,然后通过句柄来对其进行操作.程序每次重新启动,系统分配给这个程序的句柄通常是不一样的.

*6.线程到底是什么?
    线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程.线程不拥有系统资源,只有运行必须的一些数据结构,它与父进程的其它线程共享该进程所拥有的全部资源.线程可以创建和撤消线程.从而实现程序的并发执行.比如,在一个程序中,我们创建一个线程读写磁盘,用另一个线程来处理用户的其他请求.



[阅读全文...]

挖上一个精彩
挖客给您推荐更多精彩!
挖下一个精彩

这些挖客臭味相投 · · · · · ·


挖客说 · · · · · ·

 

匿名评论
(文明上网,承担一切因您的行为而直接或间接导致的法律责任)

 

 
合作伙伴:   网易科技   赛迪社区   千龙科技   265上网导航   刷刷   动态网站制作指南   煎蛋   新新web2.0   9Fav就喜欢网   Linux桌面中文网   我爱水煮鱼   乐婴网
  天涯海阁   掘图志   cngadget   17Fav   桑林志   91新鲜网   奇事奇物网   搜酷全球   poboo