首页 > 编程语言 > 详细

windows进程与线程-任务

时间:2021-06-06 16:31:36      阅读:16      评论:0      收藏:0      [点我收藏+]

什么是进程线程

进程线性是在多任务操作系统下对程序(运行中)更专业的名称。实际上,现计算机上运行的程序是由一个进程多个线程组成运行。什么是组成?往后看。

任务

从操作系统的角度来说,每个进程又称为一个任务。在CPU手册中,任务 又指代线程,比如TSS(任务转态段)就是使用"任务"指代线程。是不是感觉实际上就是一段描述型的结构体?

进程资源

都说c语言是计算机基础,拥有更快计算机运算能力,在很多单片机上都是使用c语言做的控制,在更为精密的计算机上也是如此。学过汇编,底层二进制的都知道,在底层只有0101,编程语言中的字符串等基本类型,实际上都只不过是类似于C语言中的结构体。而"进程"就是一个结构体,这个结构体给二进制结构做了界限,用来更方便地组织和分配系统资源。

  以windows系统为例,每个进程都拥有如下资源
  1、进程空间
  2、全局进程id,PID
  3、一个可执行影像(image),也就是该进程的程序文件(可执行文件)在内存中的表示
  4、一个或多个进程
  5、一个位于内核空间中的名为EPROCESS(进程执行块)的数据结构,记录进程的关键信息
  6、一个位于内核空间的`对象句柄表`
  7、一个用于描述内存目录表起始位置的基地址,简称页目录基地址,保证当前进程的虚拟地址被翻译成正确的物理地址
  8、一个位于用户空间中的进程环境块(PEB)
  9、一个访问令牌(access token),用于表示该进程的用户、安全组以及优先级

验证

windbg打开实验文件,随便哪个附加,加载模块和符号.在命令行中执行!process 0 0,列出系统中所有进程。

!process 0 0的第一个参数用来指定要显示的进程ID,0代表所有进程。第二个参数用来指定要显示的进程属性,0代表只显示最基本的进程属性

技术分享图片

  SessionId是指该进程所在的Windows会话(session)的ID号。具体作用于不同登录用户的不同会话。
  Cid指ID,又叫Client ID。用来标识进程的一个整数,主要用来寻找用户态函数地址。
  ParentCid是父进程的进程ID,即创建该进程的那个进程的进程ID
  DirBase描述的是该进程顶级页表的位置,即当CPU切换到该进程执行时,寻找真实物理地址的位置。不同分页方式有着不同的分页寻址方式。
  ObjectTable的含义是该进程的内核对象和句柄表格。在Windows系统使用这个表格将句柄翻译为指向内核对象的指针。
  HandleCount为该进程所使用的句柄个数,也就是ObjectTable所包含的表项数。

经过试验,可知,在windows操作系统中,进程实际上就是一块结构体,而运行这块结构的系统也是一大块结构体。
其中最重要的是进程在windbg中的描述,及其代表的含义。

windows进程与线程-任务

原文:https://www.cnblogs.com/cc10100100010/p/14855160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!