“操作系统实验”实验报告

信号量的实现和应用

实验6 信号量的实现和应用

学号:2130110723

学生:韩星月

专业:物联网212

实验内容

步骤一 :准备实验环境 打开terminal输入命令进入文件夹输入 cd/home/shiyanlou/oslab/命令进入文件夹输入 tar -zxvf hit-oslab-linux-20110823.tar.gz \ -C/home/shiyanlou/ 命令,解压压缩包。 图片描述 步骤二:完成sem.c文件的编写 1.对sem_open() 方法的实现。 其功能:创建一个信号量,或打开一个已经存在的信号量。 图片描述 2.对sem_wait() 方法的实现。 其作用为:信号量的 P 原子操作。如果继续运行的条件不满足,则令调用进程等待在信号量 sem 上。返回 0 表示成功,返回 -1 表示失败。 图片描述 3.对sem_post() 方法的实现。 其作用为:信号量的 V 原子操作。如果有等待 sem 的进程,它会唤醒其中的一个。返回 0 表示成功,返回 -1 表示失败。 图片描述 4.实现sem_unlink()方法。 其作用为: 删除名为 name 的信号量。返回 0 表示成功,返回 -1 表示失败。 图片描述 步骤三:完成pc.c文件的编写 图片描述 步骤四:完成运行环境搭建 进入oslab根目录执行sudo ./mount-hdc,随后将unistd.h复制到usr/include下,将sem.h复制到usr/include/linux下,最后使用sudo umount hdc卸载hdc,将pc.c文件移动到usr/root目录下,此目录需要挂载hdc才可以访问。移动成功之后直接重新编译linux并在虚拟环境内运行。 图片描述

实验心得

这次实验加深了我对进程同步与互斥概念的认识;让我掌握了信号量的使用,并应用它解决生产者——消费者问题,并且还掌握了信号量的实现原理。

最新评论
暂无评论~