1 / 27
文档名称:

操作系统实验报告.docx

格式:docx   大小:414KB   页数:27页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告.docx

上传人:459972402 2020/8/31 文件大小:414 KB

下载得到文件列表

操作系统实验报告.docx

相关文档

文档介绍

文档介绍:操作系统实验报告学号:姓名:指导老师:完成日期:目录实验一 1实验二 2实验三 7实验四 10实验五 15实验六 18实验七 22实验一 UNIX/LINUX 入门一、实验目的了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握UNIX/LINUX下c语言程序的编写、编译、调试和运行方法。二、实验内容熟悉UNIX/LINUX 的常用基本命令如 ls、who、pwd、ps等。练****UNIX/LINUX 的文本行编辑器 vi的使用方法熟悉UNIX/LINUX /gcc的使用方法。用 vi编写一个简单的显示“Hello,World! 语”言c程序,编译并观察编译后的结果,然后运行它。三、实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验程序#include<>#include<>intmain(){printf("HelloWorld!\n");return0;}五、实验感想通过第一次室验,我了解UNIX/LINUX运行环境,熟悉了UNIX/LINUX的常用基本命令,熟悉和掌握了UNIX/LINUX下c语言程序的编写、编译、调试和运行方法。1实验二进程管理一、实验目的加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。二、实验内容(1)进程创建编写一段程序,使用系统调用 fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示 “a;“子进程分别显示字符 ”b和“字符“c。”试观察记录屏幕上的显示结果,并分析原因。(2)进程控制修改已编写的程序, 将每一个进程输出一个字符改为每一个进程输出一句话, 再观察程序执行时屏幕上出现的现象,并分析原因。(3)进程的管道通信编写程序实现进程的管道通信。 使用系统调用 pipe()建立一个管道,二个子进程P1和P2分别向管道各写一句话:Child1issendingamessage!Child2issendingamessage!父进程从管道中读出二个来自子进程的信息并显示(要求先接收 P1,再接收P2)。三、实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验设计、功能设计(1)进程创建使用fork()创建两个子进程,父进程等待两个子进程执行完再运行。(2)进程控制使用fork()创建两个子进程,父进程等待两个子进程分别输出一句话再运行。(3)进程的管道通信先创建子进程1,向管道写入一句话,子进程1结束后创建子进程2,向管道写入一句话,最后父进程从管道中读出。、数据结构子进程和管道。3、程序框图2五、实验程序(1)进程创建#include<>#include<>intmain(){intpid1,pid2;pid1=fork();if(pid1<0){printf("Fork1failed!!");}if(pid1==0){printf("b\n");exit(0);}if(pid1>0){wait(NULL);pid2=fork();if(pid2<0){printf("Fork2failed!!");}if(pid2==0){printf("c\n");exit(0);}if(pid2>0){wait(NULL);printf("a\n");exit(0);}}}(2)进程控制3#include<>#include<>intmain(){intpid1,pid2;pid1=fork();if(pid1<0){printf("Fork1failed!!");}if(pid1==0){printf("Thisischildb\n");exit(0);}if(pid1>0){wait(NULL);pid2=fork();if(pid2<0){printf("Fork2failed!!");}if(pid2==0){printf("Thisischildc\n");exit(0);}if(pid2>0){wait(NULL);printf("Thisisfathera\n");exit(0);}}}3)进程的管道通信#include<>#include<>#include<sys/>#include<>intmain(){intpid1,pid2;intpfd[2];char*msg1="Child1issendingamessage!";char*msg2="Child2issendingamessage!";charb