thread_act子系统的实现.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
thread_act子系统的实现

一个完整的mach 子系统 mach 子系统包括了很多内核功能的实现,比如VM 子系统(内存管理)、host 子系统(主机硬件信 息的处理)、thread 子系统(thread 相关实现)、exc 子系统(异常处理相关);现在拿 thread_act 为例来跟踪一下代码,希望能够简单地了解vm 子系统的概况。 (1)thread_act 子系统的实现分为两部分: thread_actServer.c 和thread_actUser.c,分别实现了内核中mach msg 消息接收和发送的 各个API 。 基本逻辑是:调用thread_actUser.c 实现的API ,接收到消息后thread_actServer.c 的对应 函数被调用,真正完成一些事情。 说明一下,所有子系统的***Server.c 和***User.c 代码都是通过MIG 由***.defs 生成。 (2 )mach msg 消息发送: 下面是一个 “类似系统调用”的函数(或者某个系统调用会间接调用这个函数),用于向 thread_act 子系统发送mach msg 消息请求某个服务 (可以当作RPC)。 ------xnu/osfmk/mach/thread_actUser.c ------ /* Routine act_get_state */ mig_external kern_return_t act_get_state ( thread_act_t target_act, int flavor, thread_state_t old_state, mach_msg_type_number_t *old_stateCnt ) { #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; int flavor; mach_msg_type_number_t old_stateCnt; } Request; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; mach_msg_type_number_t old_stateCnt; natural_t old_state[224]; mach_msg_trailer_t trailer; } Reply; #ifdef __MigPackStructs #pragma pack() #endif #ifdef __MigPackStructs #pragma pack(4) #endif typedef struct { mach_msg_header_t Head; NDR_record_t NDR; kern_return_t RetCode; mach_msg_type_number_t old_stateCnt; natural_t old_state[224]; } __Reply; #ifdef __MigPackStructs #pragma pack() #endif /* * typedef

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档