进程

一、理解进程

  • 从用户的角度上看:进程本质上讲是对计算机的一种抽象,而最基本的理解方式是,进程是一个应用程序(可以是组件)在内存中的一个运行实例。比如有个.exe文件,点击运行,那么在内存中就有占据了资源,他的一个实例,就是进程。如果你打开了两次这个程序,(假设没有单例化)那么内存中就有两个内存在跑,这就是两个进程。
  • 从计算机的角度上看:进程是系统资源的调度。.exe (或者其他组件)在计算机的眼里,就是二进制文件,从加载那一刻开始,到从内存中清除时结束进程的生命周期,是计算机调度系统资源的一个最小单元。
  • 从程序员的角度看:进程就是一个类的实例,仅仅是内核对象中的一个,可以管理整个程序的运行时候支配的所有资源,例如管理整个进程地址空间的内存资源。进程对象是内核对象中的一个,由系统生成,又系统清除,在进程启用过程中,开发人员可以使用其中的资源,完成自己想要的处理。

二、进程具有的一般属性

一个进程通常具有以下这些属性,在开发过程中可以利用以下一些属性做相应的一些处理,如父子进程传递参数,可以利用命令行参数,可以把一些敏感数据藏在环境变量块中等。

  1. 一个或多个线程资源
  2. 指向命令行参数的指针
  3. 指向环境变量的指针
  4. 独一无二的实例句柄(提供给用户的,内核对象不可直接访问)
  5. 进程的物理地址(存放磁盘路径)
  6. 进程当前目录(程序运行时所在目录)
  7. 运行权限(普通用户、管理员使用权限)
  8. 当前权限上下文(权限标志由令牌内核对象管理)

三、关于进程的一些常用操作

  1. 获取进程句柄:GetModuleFileName
  2. 获取进程的命令行参数:GetCommandLine
  3. 获取进程的环境变量:GetEnvironmentStrings
  4. 获取进程所在驱动器和目录:GetCurrentDirectory
  5. 获取进程当前运行目录:GetFullPathName
  6. 创建进程:CreateProcess
  7. 终止进程:ExitProcess、TerminateProcess
  8. 枚举系统中正在运行的进程:EnumProcesses
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值