windows内核开发学习笔记三十五:系统线程和系统进程

        在windows中,每个线程代表一个指令执行序列,同时也是一个调度单元。进程定义了一个执行环境,有自己的独立地址空间。每个线程都必定依附一个进程。windows内核除了接受来自应用程序的系统服务调用,它自己也有一些线程用于各种用途,这些线程运行在一个特殊的进程环境中,称为system进程(注意与操作系统的关键进程--系统进程的区别)。system进程的线程被称为系统线程,其中有一组系统辅助线程(system worker thread)代表操作系统或者其他应用进程来完成一些特殊的工作。

      设备驱动程序或执行体既可以在调用者进程中创建线程,也可以在system进程中创建线程。或者也可以不创建任何一个线程,而是调用执行体函数ExqueueWorkItem或I/O管理函数IOQueueWorkItem,向系统辅助线程请求得到他们的服务。这两个函数负责把一个工作项目(workitem)放到一个队列中,而系统辅助线程将从此队列中提取工作项目,并执行工作项目中指定的一个例程,因此,工作项目中的例程是在system进程的环境中执行的,它不能访问其他进程空间中的数据。

        系统辅助线程实际上是一个线程池,windows在系统初始化时创建了一定数量的辅助线程,而且随着辅助线程的负载的变化,执行体也会动态地创建一些辅助线程,以满足系统负载的变化需求。

        除了系统辅助线程,内核中的许多组件也会创建系统线程来完成一些必要的工作,例如,内存管理器需要后台系统线程来监视和管理页面的换入和换出。另外,设备驱动程序也可以通过调用PsCreateSystemThread函数来创建系统线程,以便完成一些并非依附于调用者进程空间的任务,例如网络驱动程序和文件系统驱动程序可以利用系统线程时也可以指定其他的进程作为系统线程的宿主进程,从而能够访问该进程地址空间中的数据,但默认的宿主进程是system进程。

        从进程的角度来看,windows有一组系统进程对于整个系统的运行来说是必不可少的,包括子系统进程csrss .exe。当windows操作系统引导起来,并且用户登录到系统中时,windows已经经历一系列初始化过程,除了负责与用户交互的Shell进程,还启动了诸多系统进程用于实现各种不同的系统任务。总体而言,下面的系统进程起到了重要的作用:

系统空闲进程(Idle):该进程的ID为0,其中每个处理器或者CPU内核对应一个线程。

System进程:在Xp和2003版本中该进程的ID为4,它包括了内核模式系统线程。前面所述的系统辅助线程,以及执行体和驱动程序通过PsCreateSystemThread创建的线程,都在system进程中。

会话管理器(Session manager,smss.exe):这是windows系统中第一个创建的用户模式进程。smss.exe在系统启动过程中承担了一些如创建环境变量等重要的步骤,尤其是启动了子系统进程csrss.exe和登录进程winlogon.exe。另外,会话管理器也负责创建新的终端服务器会话(terminal server session),包括建立会话空间的数据结构,然后为新建的终端服务器会话加载子系统,启动csrss.exe和winlogon.exe。

登录进程(winlogon.exe):它负责处理交互用户的登录和注销。当用户按下Ctrl+Alt+Del组合键时(SAS键),winlogon就会接到登录请求,然后激发安全认证过程,并启动用户会话初始进程。在用户会话的任何时候,当用户按下了SAS组合键时,其中包括注销、启动任务管理器、锁定计算机、更改密码、关机等选项。

子系统进程(csrss.exe):在前面已经介绍到,子系统进程负责为用户提供了一个子系统环境,包括提供控制台窗口的功能,以及创建或删除进程和线程。

本地安全权威子系统进程(lsass.exe):它负责本地系统安全策略,包括允许哪些用户登录到本地系统、口令策略、授予用户和用户组特权,以及系统安全审计设置;同时也负责认证用户的身份,以及将安全审计消息发送到系统的事件日志(Event Log)中。

shell进程(explorer.exe):默认shell,它提供了系统与用户打交道的各种界面,包括开始菜单、任务栏、资源管理器窗口等。

服务控制管理器(service.exe):它负责管理windows的特殊的进程系统服务,这些服务并不与登录用户进行交互,因而可以被配置成可以在系统启动时自动启动起来。windows中很多功能组件如事件日志、任务调度器和网络组件等是以服务的方式来实现的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jyl_sh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值