zoukankan      html  css  js  c++  java
  • windows内核对象

    一、内核对象

      操作系统为了以记录相关信息的方式管理各种资源,在其内部生成数据块(可视为结构体变量)。当然,每种资源需要维护的信息不同,所以每种资源拥有的数据块格式也有差异。这类数据块称为“内核对象”。

      内核对象就是为了管理线程、文件等资源而由操作系统创建的数据块,其创建者和所有者均为操作系统。

      内核对象通过整数型“句柄”区分,句柄相当于linux的文件描述符。

      可以通过句柄区分内核对象,通过内核对象可以区分线程。句柄的整数值在不同进程中可能出现重复,但线程ID在跨进程范围内不会出现重复,线程ID用于区分操作系统创建的所有线程。

    二、内核对象的状态

       资源类型不同,内核对象也含有不同信息。其中,应用程序实现过程中需要特别关注的信息被赋予某种“状态”。例如,线程内核对象中需要重点关注线程是否已终止,所以终止状态又 称“signaled状态”,未终止状态称为“non-signaled状态”。

      WaitForSingleObject函数用于针对单个内核对象验证signaled状态。该函数由于发生事件(变为signaled状态)返回时,有时会把相应内核对象再次改为non-signaled状态。这种可以再次进入non-signaled状态的内核对象称为“auto-test模式”的内核对象,而不会自动跳转到non-signaled状态的内核对象称为“manual-reset模式”的内核对象。

      WaitForMultipleObjects函数可以验证多个内核对象状态。

  • 相关阅读:
    爆打团队 2016.04.12 站立会议
    爆打团队 2016.04.11 站立会议
    爆打团队 2016.04.10 站立会议
    爆打小组 4.3日站立会议
    随机生成题目的代码分析
    爆打 第二周第二次站立会议(2016.3.29)
    爆打小组,四则运算,算法实现
    add some template for ec-final
    2014_acmicpc_shanghai_google
    matrix_world_final_2013
  • 原文地址:https://www.cnblogs.com/ACGame/p/10444810.html
Copyright © 2011-2022 走看看