操作系统实验3.docx

上传人:b****4 文档编号:24315164 上传时间:2023-05-26 格式:DOCX 页数:18 大小:193.85KB
下载 相关 举报
操作系统实验3.docx_第1页
第1页 / 共18页
操作系统实验3.docx_第2页
第2页 / 共18页
操作系统实验3.docx_第3页
第3页 / 共18页
操作系统实验3.docx_第4页
第4页 / 共18页
操作系统实验3.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

操作系统实验3.docx

《操作系统实验3.docx》由会员分享,可在线阅读,更多相关《操作系统实验3.docx(18页珍藏版)》请在冰豆网上搜索。

操作系统实验3.docx

操作系统实验3

实验三管道及共享内存

 

一、实验目的

熟悉管道通信,了解管道内数据的读取与写入过程;

学会创建管道、使用管道,实现父子进程间的通信;

熟悉各种管道通信时使用的函数;

熟悉共享内存的概念;

学会使用函数创建共享内存段,熟悉操纵共享内存的四个系统调用。

二、实验内容

1、阅读例1的程序,运行及分析;

2、编写程序:

父进程利用管道将一字符串交给子进程处理。

子进程读字符串,将里面的字符反向后再交给父进程,父进程最后读取并打印反向的字符串;

3、阅读例2的程序,运行一次该程序,然后用ipcs命令查看系统中共享存储区的情况,再次执行该程序,再用ipcs命令查看系统中共享内存的情况,对两次的结果进行比较,并分析原因。

最后用ipcrm命令删除自己建立的共享存储区;

4、每个同学登陆两个窗口,先在一个窗口中运行例3程序1(或者只登陆一个窗口,先在该窗口中以后台方式运行程序1),然后在另一个窗口中运行例3程序2,观察程序的运行结果并分析。

运行结束后可以用ctrl+c结束程序1的运行

5、编写程序:

使用系统调用shmget(),shmat(),shmdt(),shmctl(),编制程序;要求在父进程中生成一个30字节长的私有共享内存段。

接下来,设置一个指向共享内存段的字符指针,将一串大写字母写入到该指针指向的存贮区。

调用fork()生成子进程,让子进程显示共享内存段中的内容。

接着,将大写字母改成小写,子进程修改共享内存中的内容。

之后,子进程将脱接共享内存段并退出。

父进程在睡眠5秒后,在此显示共享内存段中的内容(此时已经是小写字母)。

三、代码及运行结果分析

1、阅读例1的程序,运行及分析

代码:

运行结果:

分析:

系统调用pipe(fd);创建管道,然后通过fork函数产生的两个进程,先执行子进程,子进程中,关闭读通道,并向管道中写入内容。

然后进入父进程,写管道关闭,并读入管道中的内容,最后输出出来。

2、编写程序:

父进程利用管道将一字符串交给子进程处理。

子进程读字符串,将里面的字符反向后再交给父进程,父进程最后读取并打印反向的字符串;

相关代码:

运行结果:

3、阅读例2的程序,运行一次该程序,然后用ipcs命令查看系统中共享存储区的情况,再次执行该程序,再用ipcs命令查看系统中共享内存的情况,对两次的结果进行比较,并分析原因。

最后用ipcrm命令删除自己建立的共享存储区;

相关代码:

运行结果:

首次运行并用ipc命令查看:

"20.c"18L,428Cwritten

[e06620204@localhoste06620204]$gcc20.c-o20

[e06620204@localhoste06620204]$./20

Firstsharedmemoryidentifieris3932183

Secondsharedmemoryidentifieris3964979

[e06620204@localhoste06620204]$ipcs

------SharedMemorySegments--------

keyshmidownerpermsbytesnattchst

0x00000000917505e06620120644200

0x0000000098306e0662209644200

0x000000001310723e06620211644200

0x00000000163844e06620120644200

0x0000000f196613e0662021764410000

0x00000000229382e06620217644200

0x00000000262151e0662209644200

0x00000000294920e0662209644200

0x00000076950281e0662011864410000

0x00000000360458e06620113644200

0x00000000393227e06620120644200

0x000000dc425996e0662022064410000

0x00000000458765e06620220644200

0x00000000491534e06620120644200

0x00000000557071e06620113644200

0x000000c92916368e066220164410000

0x00000000622609e06620124644200

0x0000014d655378e0662033364410000

0x00000000688147e06620333644200

0x000000002949140e0662201644200

0x000000003440661e06620120644300

0x00000000786454e06620120644200

0x000000cc3932183e0662020464410000

0x00000000851992e06620122644200

0x00000000983065e06620118644200

0x000000001015834e06620120644200

0x0000007b3473435e0662012164410000

0x000000cb1081372e0662010664410000

0x000000001114141e06620106644200

0x000000003506206e06620121644200

0x00004ef31179679e0662021164410000

0x000000001212448e06620211644200

0x0000006c1245217e0662010864410000

0x000000001277986e06620108644200

0x000000d01376291e0662020864410000

0x000000001409060e06620208644200

0x000000711441829e0662011364410000

0x000000001474598e06620113644200

0x000000781507367e06620120777163841

0x000000002162728e06620312644200

0x000000841605673e0662013264410000

0x000000001638442e06620132644200

0x000004621671211e06620122777163841

0x000000e63538988e0662023064410000

0x000000001736749e06620205644200

0x000000e01769518e0662022464410000

0x000000001802287e06620224644200

0x0000006a1835056e0662010664410000

0x000000001867825e06620106644200

0x000000003571762e06620230644200

0x000000003964979e06620204644200

0x000000001966132e06620217644200

0x000000001998901e06620217644200

0x000000002031670e06620205644200

0x000000832064439e0662013164410000

0x000000002097208e06620131644200

0x000000002195513e06620217644200

0x0000006b2228282e0662010764410000

0x000000002261051e06620107644200

0x000000d42293820e0662021264410000

0x000000002326589e06620212644200

0x000000002359358e06620224644200

0x000000002392127e06620124644200

0x000000002424896e06620113644200

0x000000002457665e06620312644200

0x000000da2490434e0662021864410000

0x000000002523203e06620218644200

0x000000722555972e0662011464410000

0x000000002588741e06620114644200

0x000000002654278e06620207644200

0x000000002719815e0662209644200

0x000000e92752584e0662023364410000

0x000000002785353e06620233644200

0x000000df2818122e0662022464410000

0x000000002850891e06620224644200

0x000000002883660e0662209644200

0x000000002981965e06620131644200

0x000000813014734e0662012964410000

0x000000003047503e06620129644200

0x0000013f3080272e06620218777163842

0x000000d33113041e0662021164410000

0x000000003145810e06620211644200

0x000000003178579e06620333644200

0x0000014b3211348e06620131777163841

0x000000003244117e06620207644200

0x000000d13276886e0662209777163842

0x000000003866711e06620333644200

0x000000003342424e06620217644200

0x000000e53375193e0662022964410000

0x000000003407962e06620229644200

0x000034593637339e0662013464410000

0x000000003670108e06620134644200

0x0000004b3702877e06620211777163842

0x000000003735646e06620229644200

0x000000003768415e06620233644200

0x000000773801184e0662011964410000

0x000000003833953e06620119644200

0x000002a23899490e06620312777163841

0x000000003997795e06620114644200

0x000000004030564e06620134644200

------SemaphoreArrays--------

keysemidownerpermsnsems

------MessageQueues--------

keymsqidownerpermsused-bytesmessages

再次运行并用ipcs命令查看:

[e06620204@localhoste06620204]$./20

Firstsharedmemoryidentifieris3932183

Secondsharedmemoryidentifieris4620401

[e06620204@localhoste06620204]$ipcs

keyshmidownerpermsbytesnattchstatus

0x00000000917505e06620120644200

0x0000000098306e0662209644200

0x000000001310723e06620211644200

0x00000000163844e06620120644200

0x0000000f196613e0662021764410000

0x00000000229382e06620217644200

0x00000000262151e0662209644200

0x00000000294920e0662209644200

0x00000076950281e0662011864410000

0x00000000360458e06620113644200

0x00000000393227e06620120644200

0x000000dc425996e0662022064410000

0x00000000458765e06620220644200

0x00000000491534e06620120644200

0x00000000557071e06620113644200

0x000000c92916368e066220164410000

0x00000000622609e06620124644200

0x0000014d655378e0662033364410000

0x00000000688147e06620333644200

0x000000002949140e0662201644200

0x000000003440661e06620120644300

0x00000000786454e06620120644200

0x000000cc3932183e0662020464410000

0x00000000851992e06620122644200

0x00000000983065e06620118644200

0x000000001015834e06620120644200

0x0000007b3473435e0662012164410000

0x000000cb1081372e0662010664410000

0x000000001114141e06620106644200

0x000000003506206e06620121644200

0x00004ef31179679e0662021164410000

0x000000001212448e06620211644200

0x0000006c1245217e0662010864410000

0x000000001277986e06620108644200

0x000000d01376291e0662020864410000

0x000000001409060e06620208644200

0x000000711441829e0662011364410000

0x000000001474598e06620113644200

0x000000781507367e06620120777163841

0x000000002162728e06620312644200

0x000000841605673e0662013264410000

0x000000001638442e06620132644200

0x000004621671211e06620122777163841

0x000000664325420e0662010264410000

0x000000001736749e06620205644200

0x000000e01769518e0662022464410000

0x000000001802287e06620224644200

0x0000006a1835056e0662010664410000

0x000000001867825e06620106644200

0x000000003571762e06620230644200

0x000000003964979e06620204644200

0x000000001966132e06620217644200

0x000000001998901e06620217644200

0x000000002031670e06620205644200

0x000000832064439e0662013164410000

0x000000002097208e06620131644200

0x000000002195513e06620217644200

0x0000006b2228282e0662010764410000

0x000000002261051e06620107644200

0x000000d42293820e0662021264410000

0x000000002326589e06620212644200

0x000000002359358e06620224644200

0x000000002392127e06620124644200

0x000000002424896e06620113644200

0x000000002457665e06620312644200

0x000000da2490434e0662021864410000

0x000000002523203e06620218644200

0x000000722555972e0662011464410000

0x000000002588741e06620114644200

0x000000002654278e06620207644200

0x000000002719815e0662209644200

0x000000e92752584e0662023364410000

0x000000002785353e06620233644200

0x000000df2818122e0662022464410000

0x000000002850891e06620224644200

0x000000002883660e0662209644200

0x000000002981965e06620131644200

0x000000813014734e0662012964410000

0x000000003047503e06620129644200

0x000000004358224e06620102644200

0x000000cf4653137e06620207777163841

0x000000003145810e06620211644200

0x000000003178579e06620333644200

0x000004954456532e0662012164410000

0x000000003244117e06620207644200

0x000000d13276886e0662209777163842

0x000000003866711e06620333644200

0x000000003342424e06620217644200

0x000000e53375193e0662022964410000

0x000000003407962e06620229644200

0x000034593637339e0662013464410000

0x000000003670108e06620134644200

0x0000004b3702877e06620211777163842

0x000000004292702e06620230644200

0x000000003768415e06620233644200

0x000000773801184e0662011964410000

0x000000003833953e06620119644200

0x000002a23899490e06620312777163841

0x000000003997795e06620114644200

0x000000004030564e06620134644200

0x000004594063333e06620113777163841

0x000000004096102e06620211644200

0x0000006f4128871e0662011164410000

0x000000004161640e06620111644200

0x000000854194409e0662013364410000

0x000000004227178e06620133644200

0x000000004259947e06620121644200

0x000000004423789e06620124644200

0x000000004489326e06620121

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1