哈工大OS实验六---信号量的实现和应用

实验步骤参考

原文链接:https://blog.csdn.net/realfancy/article/details/90112982

说明:这个实验我基本都是按着这位博主来做的,虽然出了一点小问题,但是这位博主写的很好,我就再对这里面的代码说明一下吧,大家如果要看完整的步骤,可以去看这位博主的

实验要求:

实现三个函数

  1. sem_open(): 创建一个信号量或者打开一个以及存在的信号量
  2. sem_wait():信号量的P原子操作
  3. sem_post():信号量的V原子操作
  4. sem_unlink():删除名为name的信号量

这几个函数都是系统调用函数,有关系统调用的知识可以看这篇文章系统调用原理

kernel/sem.c目录下实现这几个函数,我们具体看一下代码

sem_t *sys_sem_open(const char *name,unsigned int value)
{
    char kernelname[100];   
    int isExist = 0;
    int i=0;
    int name_cnt=0;
    while( get_fs_byte(name+name_cnt) != '\0') //get_fs_byte的作用为,在传递进///来的地址处取出一个字节
    name_cnt+
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值