北京邮电大学操作系统实验 (2)

北京邮电大学操作系统实验 (2)

ID:40814809

大小:620.19 KB

页数:14页

时间:2019-08-08

北京邮电大学操作系统实验 (2)_第1页
北京邮电大学操作系统实验 (2)_第2页
北京邮电大学操作系统实验 (2)_第3页
北京邮电大学操作系统实验 (2)_第4页
北京邮电大学操作系统实验 (2)_第5页
资源描述:

《北京邮电大学操作系统实验 (2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统班级:2011211302学号:2011211168姓名:康雅微目录实验5.1进程通信观察实验实验6.3I/O系统编程实验实验7.1文件管理系统管理实验代码分析实验5.1观察实验1、实验目的与内容在Linux下,用ipcs()命令观察进程通信情况,了解Linux基本通信机制。2、实验原理LinuxIPC继承了UnixSystemV及DSD等,共有6种机制:信号(signal)、管道(pipe和命名管道(namedpiped)、消息队列(messagequeues)、共享内存(sharedmemorysegments)、信号量(semaphore)、

2、套接字(socket)。本实验中用到的几种进程间通信方式:(1)共享内存段(sharedmemorysegments)方式–将2个进程的虚拟地址映射到同一内存物理地址,实现内存共享–对共享内存的访问同步需由用户进程自身或其它IPC机制实现(如信号量)–用户空间内实现,访问速度最快。–Linux利用shmid_ds结构描述所有的共享内存对象。(2)信号量(semaphore)方式–实现进程间的同步与互斥–P/V操作,Signal/wait操作–Linux利用semid_ds结构表示IPC信号量(3)消息队列(messagequeues)方式–消息组成的链表,

3、进程可从中读写消息。–Linux维护消息队列向量表msgque,向量表中的每个元素都有一个指向msqid_ds结构的指针,每个msqid_ds结构完整描述一个消息队列LINUX系统提供的IPC函数有:lmsgget(关键字,方式):创建或打开一个消息队列lmsgsnd(消息队列标志符,消息体指针,消息体大小,消息类型): 向队列传递消息lmsgrcv(消息队列标志符,消息体指针,消息体大小,消息类型): 从队列中取消息lmsgctl(消息队列标志符,获取/设置/删除,maqid_ds缓冲区指针): 获取或设置某个队列信息,或删除某消息队列Linux系统中,

4、内核,I/O任务,服务器进程和用户进程之间采用消息队列方式,许多微内核OS中,内核和各组件间的基本通信也采用消息队列方式.3、实验结果实验6.3编程实验1、实验目的编写一个daemon进程,该进程定时执行ps命令,然后将该命令的输出写至文件F1尾部。通过此实验,掌握LinuxI/O系统相关内容。2、实验原理在这个程序中,首先fork一个子程序,然后,关闭父进程,这样,新生成的子进程被交给init进程接管,并在后台执行。新生成的子进程里,使用system系统调用,将ps的输出重定向,输入到f1.txt里面。3、实验步骤编写daemon.c代码如下:#incl

5、ude#includeintmain(intargc,char*argv[]){inti,p;p=fork();if(p>0){exit(0);}elseif(p==0){for(i=0;i<100;i++){sleep(100);system("ps>f1.txt");}}else{perror("Createnewprocess!");}return1;}}编译程序#gcc-odaemondaemon.c执行程序#./daemon5、实验结果及分析程序sleep(100)后会在当前目录生成一个文件f1.txt,内容

6、如下:PIDTTYTIMECMD1258pts/000:00:00bash2729pts/000:00:00daemon2801pts/000:00:00sh2802pts/000:00:00ps再sleep(100),此文件会更新。重复执行100次。实验7.1代码分析1、实验目的了解与文件管理有关的Linux内核模块的代码结构。2、实验内容阅读Linux/Minix中有关文件模块的调用主线,并写出分析报告,包括l文件建立模块,即系统调用create()l文件删除模块,即系统调用rm()l读/写模块,即read/write3、分析报告示例A.创建文件模块分

7、析5780/*creatsystemcall*/5781Creat()5782{5783resister*ip;5784externuchar;57855786ip=namei(&uchar,1);5787if(ip==NULL){5788if(u.u_error)5789return;5790ip=maknode(u.u_arg[1]&07777&(~ISVTX));5791if(ip==NULL)5792return;5793open1(ip,FWRITE,2);5794}else5795open1(ip,FWRITE,1);5796}第5786:“n

8、amei”(7518)将一路径名变换成一个“inode”指针。“u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。