糖心冉冉:一份温柔的心意,点亮生活的每一个闪光时刻

核心内容摘要

霓虹背后的感官奇旅:深度探索9999小游戏的独特魅力与沉浸式体验
17.c18起草红桃:一款重新定义你游戏的扑克牌

当眼泪划破平静:那些“小乔式”的崩溃与释怀

目录

消息队列

Systrm V IPC在内核中数据结构设计

临界资源与临界区

信号量

消息队列操作系统在内核空间创建并维护多个消息队列作为共享资源每个队列都有唯一的标识符。

不同进程通过相同的标识符访问同一个队列从而实现进程间通信。

进程可以向队列发送带类型的数据块也可以从队列中接收特定类型的数据。

操作系统采用先描述再组织的方式管理所有消息队列为每个队列维护描述结构体并通过链表等数据结构统一组织确保通信的有序性和可靠性消息队列的使用接口这里不做讲解

Systrm V IPC在内核中数据结构设计Systrm V通信标准在操作系统内部是一个独立的模块与一切皆文件的理念兼容性差理念维度System V IPC一切皆文件理念访问方式专用系统调用shmget/shmctl等统一文件APIopen/read/write标识机制独立的key/shmid/msgid/semid文件路径和描述符命名空间独立的IPC命名空间统一的文件系统命名空间权限模型自定义的struct ipc_perm标准的Unix文件权限位生命周期随内核需显式删除文件系统管理可持久化Systrm V标准具有 共享内存、消息队列、信号量 三种进程间通信方式操作系统内核为每种类型维护一个对象指针数组数组的每个槽位存储对应IPC对象的指针。

当用户通过xxxget()系统调用创建或获取IPC对象时内核会分配一个数组索引并结合递增的序列号较大时会回绕到0生成用户可见的唯一标识符shmid/msgid/semid。

此后对特定数组的增删查改就是对特定IPC资源的增删查改共享内存、消息队列、信号量 三种类型中的第一个字段都是struct ipc_perm所以三种对象都能够通过其首字段位置实现类型安全的对象访问转换struct ipc_perm { key_t __key; /* Key supplied to semget(

*/ uid_t uid; /* Effective UID of owner */ gid_t gid; /* Effective GID of owner */ uid_t cuid; /* Effective UID of creator */ gid_t cgid; /* Effective GID of creator */ unsigned short mode; /* Permissions */ unsigned short __seq; /* Sequence number */ };struct ipc_perm存储了对象的创建键值__key、属主和创建者的用户/组IDuid/gid、cuid/cgid、权限模式mode以及防重用的序列号__seq封装的实现系统调用接口shmget/shmctl、msgget/msgctl、semget/semctl封装了实现IPC资源访问功能的细节继承的模拟三种IPC对象共享内存、消息队列、信号量都将struct ipc_perm作为其数据结构的第一个成员多态的模拟例如IPC_STAT命令在三种IPC类型中具有相同的语义获取状态但具体实现会根据对象类型访问不同的特有字段实现了同一接口不同实现的多态行为而类型参数在运行时决定具体执行路径

临界资源与临界区临界资源是并发环境中共享且任何时刻只允许单个执行流访问的资源通常为内存空间但也可扩展至文件、硬件设备等访问临界资源的那部分代码称为临界区它通常只占整个程序代码的一小部分如100行中的

行需通过互斥机制如锁或信号量保护以确保执行流在临界区内的操作具有原子性和隔离性从资源层级看CPU将进程视为其调度资源而进程则将其内存空间视为私有资源当多进程共享同一内存区域时该区域即成为临界资源

信号量1信号量的核心本质信号量本质是一把共享计数器其整数值cnt描述临界资源中可用资源的数量。

信号量机制实现了对多进程/多线程访问共享资源的预订和控制2资源预订机制执行流必须先申请信号量才能访问临界资源的机制类似于资源预订申请成功表示获得访问权限这样信号量就可以通过保证进入共享资源的执行流的数量有效保护临界资源信号量值减1P操作对应资源分配信号量值加1V操作对应资源释放3 进程间同步上述的资源预定机制说明信号量本身也是所有通信进程可见的共享资源用于实现进程间协同工作的基础同步机制那么信号量作为共享资源就需要进行自我保护PV操作的原子性可以确保信号量自身的线程安全4 PV操作的原子性P操作申请cnt--原子减1申请资源V操作释放cnt原子加1释放资源原子性要求单条汇编指令完成无中间状态避免普通cnt--/cnt3条指令的竞态问题5二元信号量互斥锁信号量整数值仅为0或1两态资源整体使用、整体申请、整体释放时本质上实现了互斥功能保护了单一共享资源

91视频官网-91视频官网应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123