1 / 16
文档名称:

操作系统实验报告.doc

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

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

分享

预览

操作系统实验报告.doc

上传人:君。好 2020/8/1 文件大小:561 KB

下载得到文件列表

操作系统实验报告.doc

文档介绍

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