sel4源码解析(五) - Notification

本文详细介绍了Sel4的通知机制,它类似记录型信号量,用于进程间同步。内容涵盖notification结构体、notification cap的组成、内核函数(如绑定、取消绑定、发送通知)及用户程序API(发送、等待通知)。通过这些操作,可以实现进程在等待和发送通知状态间的转换,有效管理进程状态。
摘要由CSDN通过智能技术生成

Sel4的通知机制类似于记录型信号量。比如:进程1在等待通知,但进程2还未发送该通知,则会导致进程1暂时被挂载在该notification队列上。一旦进程2发送该通知,则将进程1从该notification队列上取出,并重新加入调度队列。

利用sel4的通知机制可以实现进程之间的同步。下面主要介绍了notification结构体、notification cap的结构体、内核函数和用户程序API。

notification结构体

notification结构体主要包括四个部分:

  • 指向绑定的TCB的指针;
  • 标识符,这里是badge;
  • notification队列头指针(指向的是tcb结构体,其链表指针是tcbEPPrev和tcbEPNext);
  • notification队列尾指针。

结构体如下所示:

block notification {
    padding 16
    field_high ntfnBoundTCB 48 
    field ntfnMsgIdentifier 64
    padding 16
    field_high ntfnQueue_head 48
    field_high ntfnQueue_tail 48
    padding 14
    field state 2
}

notification的三种状态:

enum notification_state {
    NtfnState_Idle    = 0,
    NtfnState_Waiting = 1,
    NtfnState_Active  = 2
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值