进程的属性与资源

进程是操作系统分配资源的基本单位,是一个可执行的用于定义代码和数据的程序.每当执行一个程序,就相当于创建了一个新的进程.在操作系统的内部,进程是位于核心区的一块内存结构,它有一个虚拟地址组成的专用地址空间.

      在Win32中的进程是拥有主权的一种类型,是一个运行的应用程序的实例.在Win32中区别一个进程和另一个进程的因素是每个进程所拥有的句柄表(包含哪个进程所拥有的对象的句柄),拥有的私有地址空间及拥有的窗口等.

     (系统必须为进程的创建,撤消和切换付出很大的时间和空间开销.所以,系统中的进程数目不宜过多,进程的切换频率也不宜过多,进程的切换频率出不宜太高.因此限制了系统并发程序的进一步提高.)

   1.进程的属性

进程具有如下的属性.

(1)用户所有

进程为用户所有,其可为进程提供安全措施.

(2)最少有一个线程

每个进程至少有一个线程,进程创建的同时会创建一个线程

(3)拥有句柄

拥有的对象都有其句柄.

(4)可继承句柄

  有些共有的属性可被继承,利用Dupulicate Handle 函数或在创建时使对象可被继承来改变继承标识.例如,管道是读和写句柄,在管道创建时,它就可以被指定成可继承的.

2.进程的资源

进程拥有一系列的系统资源,比文件,管道,通信端口以及在进程被执行时由操作系统分配的信号量.典型的程序资源包括打开的文件,信号量和动态分配的内存.这些资源的标志都保存在进程的对象句柄表中.

一个进程可访问所有系统资源,所以一个进程也可以利用操作系统提供的资源管理器.进程可以访问的系统资源,所以一个进程也可以利用操作系统提供的资源管理器.进程可访问的系统资源如下所述.

(1)访问标志

一个访问标志被操作系统附加在一个进程中.一个进程可得到其标志信息或改变其某些属性.例如.该进程具有保密特权,该进程必须先对它标志.

(2)虚拟地址空间

隔离地址空间按进程的需要被指定并被虚拟存储管理器(VMM)跟踪.如果没有有效的内存,指定内存请求就会失败.一上进程不能直接改变包含自己虚拟地址的记录.所有的更改都必须间接地经过VMM.

(3)对象句柄

一个进程可以被各种对象和资源拥有,创建或继承句柄.这些句柄保存在进程所拥有的对象表中.对象管理器保存了一个对象表,该表有其进程所拥有的对象句柄清单.例如,线程,文件,同步对象和共享内存.

(4)资源引用限制

每个进程对其线程可为对象打开句柄的内存数量都有限制.这个限制叫作资源引用限制,它确保一个进程不能独占甩有的资源.

(一个进程利用对象管理器来改变或得到有关它的访问标志或对象表的信息;利用虚拟存储管理器(VMM)跟踪进程的虚拟地址.)

3.进程与线程的相关性

一个线程可以看作是操作系统分配给CPU时间(即时间片)的基本单位.一个线程可以执行应用程序(可看作进程实例)代码的任何部分,该部分可以是另一线程正在执行的代码.

操作系统创建了进程之后,同时会创建一个线程执行进程中的代码.通常把这个线程称为该进程的主线程,主线程运行时,也可以创建其他线程.一个进程的所有线程共享虚地址空间.全局变量以及该进程的操作系统资源.

  一个进程提供了程序运行所必需的一切,单线程同样如此.该默认进程(主线程)执行程序代码.一个进程中的主线程从一个入口点开始(对windows程序而言是WinMain()函数),然后根据代码的循环,条件,函数调用等情况继续执行.当进程被终止时,主线程同时也被终止.

( 同一个程序,可由多个进程执行.而所有进程都必须至少有一个线程,线程本身基本上不拥有系统资源,它与同属一个进程的其它线程共享进程所拥有的全部资源).

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值