- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实习th
实验1 进程管理
实验目的:
加深对进程概念的理解,明确进程和程序的区别。
进一步认识并发执行的实质。
分析进程征用资源的现象,学习解决进程互斥的方法。
了解linux系统中进程通信的基本原理。
2.实验预备内容
(1)阅读linux的sched.h的源码文件,加深对进程管理概念的理解。
(2)阅读linux的fork.c原码文件,分析进程的创建过程。
3.实验内容
(1)进程的创建:
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符‘a’;子进程分别显示字符‘b’和字符‘c’。试观察记录屏幕上的显示结果,并分析原因。
#include(stdio.h)
int main()
{int t1,t2;
while((p1=fork())==-1) ;
if(p1==0)
putchar(b);
else
{while((p2=fork())==-1) ;
if(p2==0)
putchar(c);
else
putchar(a);
}
return 0;
}
结果分析:从进程并发执行来看,输出bac,abc等的情况都有可能。
原因:fork()创建进程所需时间要多于输出一个字符的时间,因此在主进程创建进程2的
同时,进程1也在创建过程中,此时主进程执行输出一个“0”,而后进程1创建完成,输出“b”最后进程2创建完成,输出“c”。
实验2 进程间通信
实验目的:
Linux系统的进程通信机构(ipc)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉linux支持的消息通信机制,共享存储区机制及信息机制。
实验预备内容:阅读linux系统的msg.c\sem.c等原码文件,熟悉linux的三种通信机制。
3. 实验内容:
消息的创建,发送和接收。
使用系统调用msgget(),msgsnd(),msgrev()j及msgctl()编制一长度为1k的消息发送和接收程序。
观察上面程序,说明控制消息队列系统msgctl()在此起什么作用?
Int main()
#include(stdio.h);
#include(sys/types.h);
#include(sys/msg.h);
#include(sys/ipc.h);
#include(stdlib.h);
#derfine MSGKEY 75;
struct msgform
{long mtype;
char mtext[1030];
}msg;
Int main()
int msgqid i;
void CLIENT()
{int i;
msgqid=msgget(MSGkEY,0777);
for(i=10;i=1;i--)
{msg.mtype=i;
printf((client)sent\n);
msgsnd(msgqid,msg,1024,0);
}
exit(0);
}
void SERVER()
{
msgqid=msgget(MSGKEY,0777|IPC_CREAT);
do
{
msgrcv(msgqid,msg,1030,0,0);
printf((server)received\n);
}while(msg.mtype!=1);
msgct1(msgqid,IPC_RMID,0);
exit(0);
}
int main()
{while((i=fork())==-1);
if(!i) SERVER();
while((i=fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
return 0;
}
结果分析:从理想结果来说,应当是每当client发送一个消息后,server接受该消息,server接受该消息,client在发送下一条,也就是说(client)sent和(sever)received的字样应该交替出现在屏幕上。实际的结果大多是,先由client发送了两条消息,然后
server接收一条消息。此后client-server交替发送和接收消息。最后server一次接收两条消息。client和server分别接收了10条。
分析:message的传送和控制并不保证完全同步,当一个程序不在激活状态的时候他完全可能继续睡眠,造成在多次send message
后才receive message的现象。这一点有助于理解消息传送的实现机理。
实验3 存储管理
实验目的:存储管理的只要功能之一是合理地分
您可能关注的文档
- 新东家公司转让网示例公司合并合同范本.doc
- 文件保密及共享可两全.doc
- 数据采集器的常见问题.docx
- 背诵课堂练习.ppt
- 数据分析控制程序(QP-F-021).doc
- 管理办法-2.doc
- 数学建模作业实验6.docx
- 数字频率计的设计 中国计量学院现代科技学院.doc
- 复兴中华梦,梦之情290陈淑娴.doc
- 数字电路课程设计2013.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)