大作业一Linux信号量机制v

发布 2022-09-10 10:16:28 阅读 9056

1 需求说明。

1.1 基本需求。

目标:本次实验的目标是在linux环境下实现一个多线程对临界资源的互斥操作,利用信号量实现对临界资源的保护,支持linux下文件输入输出,提高对linux环境下多进程、多线程、信号量机制和文件操作等知识的理解。

问题描述:设有进程a、b、c,分别调用过程get、copy、put对缓冲区s和t进行操作。其中get负责从文件f_in中把数据块读入并输出缓冲区s,copy负责从s中提取数据块并复制到缓冲区t中,put负责从缓冲区t中取出信息存入到本地文件f_out中。

实现get、copy、put的操作过程。

上交时间:最后一次实验课上。

上交要求:所有程序源**,实验报告。格式参考模版,包括:封面(包括题目,姓名,学号,班级,)、设计说明、源**、运行结果等。

功能需求: 提供与用户交互的界面,用户可指定输入、输出文件以及缓冲区大小。

利用信号量实现互斥。

同时产生多个get、copy和put线程,利用信号量实现多个相同功能的线程间的通信,避免临界资源的非法访问,可参考读写者问题解决方案。

支持文件输入、输出。

非功能需求:

程序应有较好的容错性(即能对用户输入的命令进行判断,并对错误的命令进行错误处理)

过程需求: 使用vi进行**的编写。

使用make工具建立工程。

将实现不同类别功能的函数写到不同的。c文件中,并使用makefile链接编译。

信号量答案

第一部分。该方法对可抢占调度完全没问题。事实上,它就是为这种情况设计的。当调度为不可抢占的,该方法将会失败。假设turn初值为0,而进程1首先运行。它将一直循环,永不释放cpu。对于内核线程,线程可以在信号量上阻塞,而内核可以运行该进程中的其它线程。因而,使用信号量没有问题。而对于用户级线程,当某个...

Linux大作业

linux基础与应用 学生姓名张振东。学号 5011210108 专业计算机科学与技术 班级计算机14 1 所属学院信息工程学院 指导教师范振岐。塔里木大学教务。目录。引言 1 1 实习的目的和意义 1 2实习目标与总体方案 3 2.1 熟悉基本网络命令 3 2.2 配置nfs服务器以及配置samb...

Linux大作业

石家庄学院。课程设计报告。一 题目分析 通过对web服务器的有关配置,深刻理解web服务器的功能,并学会如何配置基于ip,基于端口,基于域名的虚拟主机。二 制作过程 2.1 配置基于ip的虚拟主机 下面介绍在 192.168.0.8 和192.168.0.9 上创建两个基于ip 地址的虚拟主机的配置...