4.1.4 模块创建
System V IPC核心模块被实现为动态可装载模块。每个功能在/kernel/sys目录下都有一个对应的可装载模块(shmsys、semsys、msgsys)。另外,IPC的三种机制都需要装载/kernel/misc/ipc模块,该模块提供了两个底层的例程,这两个例程被三种机制所共享。ipcperm_access()例程负责确认对特殊IPC资源的访问权限,例如,共享内存块、信号机制、或者消息队列。ipcget()代码获取与特定IPC资源相关的数据结构体,这些特定IPC资源基于键(key)值来生成调用。键值被传递作为shmget(2)、msgget(2)和semget(2)这些系统调用的参数。
当一个IPC资源最初创建时,一个正整数(也就是大家所知道的标识符)被分配以标识IPC对象。标识符从键值中导出。内核的IPC xxxget(2)系统调用如果使用相同的键值,将会返回相同的标识符给进程或线程,这就是如何保证不同的线程能访问需要的消息队列,信号机制或共享内存块的方法。ftok(3C)或“文件-关键字(file-to-key)”接口是最常见的方法,用来保证不同进程在调用IPC xxxget()例程之前获取正确的键值。
与每个IPC资源相关的是一个id数据结构。用正确的标志集合第一次调用xxxget(2)系统调用时,内核分配和初始化该数据结构体。每个功能的xxxget(2)系统调用都返回标识符给调用的应用程序,而这又依赖于传递给系统调用的参数和权限。结构在名字上很相似,并在每个功能的头文件中定义(见表4-1)。
可用的xxxid_ds结构的数量,不能大于每个功能的project.max-xxx-ids资源控制限值(见第7章),也就是说,max-shm-ids、max-sem-ids及max-msg-ids分别决定可以利用的msgid_ds、semid_ds及shmid_ds结构的最大数量。
|
![]() |
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||