下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、进程间互斥与同步实验内容:编写算法,实现进程间对临界资源的互斥访问以及进程间的同步关系。实验要求:1、要求进程互斥使用文本文件;2、假定文本文件txtl最大可写入30个字符;3、写满后复制进程将文本文件的内容复制到另一个文 本文件txt2中(无长度限制)。4、复制进程复制完毕写入进程可再重新写入,重复执行3, 4,直到给由停止命令。5、实现进程间的同步和互斥。代码:#include#include/stdio.h#include/函数库#include/linux/unix 的系统调用#include/信号量#includeusing namespace std ;typedef union
2、_semnuint val;structsemid_ds *buf;ushort * array ;semun;/v操作void v( int &sem_id)structsembuf sem_b;sem_b.sem_num= 0;sem_b.sem_op= 1;sem_b.sem_flg=SEM_UNDO;if (semop(sem_id,&sem_b, 1 )=- 1) cout error endl;exit (0);/p操作void p( int &sem_id)struct sembuf sem_b;sem_b.sem_num=0;sem_b.sem_op=-1;sem_b.sem_
3、flg=SEM_UNDO;if (semop(sem_id,&sem_b, 1 )=- 1) cout error endl;exit (0);/设置信号量初值void set ( int sem_id, int val= 1)semun sem_un;sem_un.val=val;if (semctl(sem_id, 0,SETVAL,sem_un)=- 1) if (errno=EEXIST)cout exist endl;cout set val error endl;exit ( 0 );void del( int sem_id)semun sem_un;if (semctl(sem_
4、id, 0,IPC_RMID,sem_un)=- 1) cout error endl;int main()/互斥量int sem_mutex=semget(key_t) set (sem_mutexk, 1);8888 , 1 ,IPC_CREAT);int sem_full=semget(key_t)1234 , 1,IPC_CREAT);cout sem_fullendl;/set semaphore fullset (sem_full, 0);int sem_empty=semget(key_t)1235 , 1 ,IPC_CREAT);cout sem_empty 0) /paren
5、t/produce/p(empty)/v(full)for ( int i= 0;i 5;i+)p(sem_empty);p(sem_mutex);/锁定临界区cout writing.iendl;fseek(fp1,0,SEEK_SET);,fp1);fputs ( QWERTYUIOPASDFGHJKLZXCVBNM1234” fflush(fp1);sleep(1 );cout write done endl;v(sem_mutex);v(sem_full);fclose(fp1);cout txt2: endl;system( cat txt2 n); else if (id= 0)/
6、consume/p(full)/v(empty)char buf 32 ;buf 31 = 0;fill(buf,buf+20, 0);for ( int i= 0;i 5;i+) ( p(sem_full);p(sem_mutex);/锁定临界区cout reading. iendl;fseek(fp2,0,SEEK_SET);fgets(buf,30 ,fp2);fputs (buf,fp3);fflush(fp3);/由于缓冲方式的影响,30个字符不会立刻读取到buf中,需要fflush cout bufendl; cout read done endl; cout endl;sleep
7、(1);v(sem_mutex);v(sem_empty);fclose(fp2);fclose(fp3); exit (0); else /error (cout 创建子进程失败! endl; exit (0);/ del(sem_full);/ del(sem_empty);return 0;输生结果:/注意要以root用户运行程序196608229377writing.0write donereading.0QWERTYUIOPASDFGHJKLZXCVBNM123read done TOC o 1-5 h z writing.1write done reading.1QWERTYUIOPASDFGHJKLZXCVBNM123 read donewriting.2write donereading.2QWERTYUIOPASDFGHJKLZXCVBNM123 read donewriting.3write donerea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永寿县2025年四年级数学下学期期末教学质量检测试题(含解析)
- 永善县2025届数学四年级下学期期中调研模拟试题(含答案)
- 2026年1月试卷8年级(数学)期末易错压轴题型(30易错+9压轴)(专项训练)(解析版)
- 2026年江苏苏州市初中结业考试生物试卷真题(含答案详解)
- 2025年农药减量增效行动
- 2026年幼儿园中班室内活动方案设计
- 2026年城乡规划专业职业目标
- 2026年智能物流运输小车毕业设计
- 2026年城乡规划系统工程学
- 2026年学校学生欺凌防治工作方案
- TD/T 1033-2012高标准基本农田建设标准
- 《四川天府新区直管区国土空间总体规划(2021-2035年)》
- (高清版)DG∕TJ 08-15-2020 绿地设计标准 附条文说明
- 眼部颞浅注射操作讲解
- 【MOOC】国际商务-暨南大学 中国大学慕课MOOC答案
- 【MOOC】大学物理-力学、电磁学-重庆大学 中国大学慕课MOOC答案
- 【MOOC】3D工程图学-华中科技大学 中国大学慕课MOOC答案
- 松树的风格课件
- 未来趋势与职业前景智慧树知到期末考试答案章节答案2024年联盟推+荐
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 广东省深圳市2023-2024学年六年级下学期期末语文试题
评论
0/150
提交评论