1 / 18
文档名称:

基于WRK平台的IPC实验.docx

格式:docx   大小:187KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于WRK平台的IPC实验.docx

上传人:小雄 2021/6/3 文件大小:187 KB

下载得到文件列表

基于WRK平台的IPC实验.docx

文档介绍

文档介绍:基于WRK平台的IPC实验
实验背景:
Inter-Process Communication (进程间通信)在现在通用的时分操作系统中的进程管理中 扮演着重要的角色,可以说没有同步/互斥机制,就不会实现系统的多线程。在Windows中, 内核提供了多种机制防止多个线程对同一个数据结构进行修改。通过对WRK平台的IPC实 验,我们可以更加深入地了解到Windows内部是如何实现线程的同步/互斥的。
第一部分:阅读代码——了解WRK同步对象管理
1、阅读WRK代码,理解WRK中同步/互斥的对象管理
1. 1 WRK中的同步对象
Windows提供了一组内核同步对象(Kernel Dispatcher Object),或者就称为同步对象 (Dispatcher Object)o在任何时刻,同步对象都处于两种状态中的一种:信号态(signaled state) 或者非信号态(nonsignaled state)o这些对象包括定时器对象事件对象、信号量对象、临界区 对象等。
表1 WRK中同步对象数据结构
同步对象
定义位置
数据结构
Event
WRK\base\ntos\inc\
(注:WRK是存放WRK源 代码的文件夹,下同)
typedef struct _KEVENT (
DISPATCHER_HEADER Header; ) KEVENT, *PKEVENT, *PRKEVENT;
Mutex
WRK\base\ntos\inc\
typedef struct _KMUTANT ( DISPATCHER_HEADER Header; LIST_ENTRY MutantListEntry; struct _KTHREAD *OwnerThread; BOOLEAN Abandoned;
UCHARApcDisable;
} KMUTANT, *PKMUTANT, *PRKMUTANT, KMUTEX, *PKMUTEX, *PRKMUTEX;
Semaphore
WRK\base\ntos\inc\
typedef struct _KSEMAPHORE (
DISPATCHER_HEADER Header;
LONG Limit;
} KSEMAPHORE,
*PKSEMAPHORE, *PRKSEMAPHORE;
Waitable Timer
WRK\base\ntos\inc\
typedef struct _KTIMER (
DISPATCHER_HEADER Header;
ULARGEJNTEGER DueTime;
LIST_ENTRY TimerListEntry;
struct _KDPC *Dpc;
LONG Period;
} KTIMER, *PKTIMER, *PRKTIMER;
观察这些同步对象的数据结构,就会发现第一个成员都是DISPATHER_HEADER,这 就是同步对象可以被等待的原因,也是同步对象的英文是
Dispatcher Object的原因。查看下 DISPATHER_HEADER 的数据结构(WRK\base\ntos\inc\ )»
typedef struct _DISPATCHER_HEADER {
〃对象类型
UCHAR Type;
UCHAR Absolute;
//对象体的大小
UCHAR Size;
UCHAR Inserted;
〃信号状态
LONG SignalState;
〃等待该对象的线程列表
LIST_ENTRY WaitListHead;
} DISPATCHER_HEADER;

在Windows中,调度的最小单位是线程,进行同步的也是线程,所以,在线程的数据 结构中,必然包含有与同步有关的数据结构(WRK\base\ntos\inc\)。
typedef struct _KTHREAD (
DISPATCHER_HEADER Header;
LONG_PTR WaitStatus;
//state information, reflecting the reason for ending when a waiting is ended
union (
PKWAIT_BLOCK WaitBlockList;
//wait block queue pointed to this thread
PKGATE GateObject;
);
BOOLEAN Alertable;
BOOLEAN WaitNext;
UCHAR Wai

最近更新

2024年开封大学单招职业适应性测试题库新版 54页

2024年昆明工业职业技术学院单招职业适应性测.. 63页

2024年民办四川天一学院单招职业适应性测试题.. 64页

2024年江苏经贸职业技术学院单招职业适应性测.. 62页

2024年江西泰豪动漫职业学院单招职业适应性测.. 62页

2024年河北工业职业技术大学单招职业适应性测.. 62页

学生会计实习报告范文[1] 5页

2024年泰康保险集团股份有限公司校园招聘考试.. 148页

2024年浙江机电职业技术学院单招职业适应性测.. 60页

2024年海南经贸职业技术学院单招职业适应性测.. 61页

2024年湖北生物科技职业学院单招职业适应性测.. 61页

2024年湖南幼儿师范高等专科学校单招职业适应.. 63页

2024年湘中幼儿师范高等专科学校单招职业适应.. 63页

2024年烟台黄金职业学院单招职业适应性测试题.. 62页

2024年白城医学高等专科学校单招职业适应性测.. 63页

2024年辽宁广告职业学院单招职业适应性测试题.. 62页

2024年邯郸科技职业学院单招职业适应性测试题.. 63页

2024年重庆三峡职业学院单招职业适应性测试题.. 62页

2024年铜仁职业技术学院单招职业适应性测试题.. 95页

2024年雅安职业技术学院单招职业适应性测试题.. 94页

2024年黄河水利职业技术学院单招职业适应性测.. 62页

2024年足球知识题库含答案【a卷】 12页

中国历史文化知识竞赛100题及参考答案(夺分金.. 14页

中国历史文化知识竞赛100题精品 14页

中国历史文化知识竞赛100题(夺分金卷) 14页

电池管理系统BMS知识讲座ppt课件 44页

立邦油漆检验报告 4页

水路运输企业安全管理台账 11页

平行检测监理实施细则 17页

《cecs-164-2016埋地聚乙烯排水管管道工程技术.. 73页