当前位置:文档之家› 操作系统课程设计报告

操作系统课程设计报告

北京化工大学北方学院
课程设计报告
课程名称操作系统课程设计
设计题目Linux C程序设计
专业、班级
学号
姓名
指导教师
设计时间2015.10.19——2015.11.06
2015年11 月 6 日
(2)进程控制实现源代码:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/wait.h>
int main() {
pid_t pid,vpid;
int status,i;
pid=fork();
if(pid==0) {
printf("子进程pid:%d\n",getpid()); sleep(2);
exit(3);
}
else
{
vpid=wait(&status);
i=WEXITSTATUS(status);
printf("父进程pid:%d,退出状态%d\n",vpid,i); }
}
(3)管道实现ls|sort命令
#include <unistd.h>
int fd[2];
void run_ls()
{
close(fd[0]);
[umr@localhost Documents]$ ./demo01
hello flami!�
结果分析
这是一个进程控制程序,要求创建一个管道,复制进程,父进程往管道中写入字符串,子进程从管道中读取并输出字符串。

经过测试,该程序基本实现了以上功能,且计算结果合理正确,满足实验要求。

(2) 试验过程及结果
[umr@localhost Documents]$ vi demo02.c
[umr@localhost Documents]$ gcc -o demo02 demo02.c
[umr@localhost Documents]$ ./demo02
子进程pid:14004
父进程pid:14004,退出状态3
结果分析
这是一个进程控制程序,要求完成复制进程,子进程显示自己的进程号(PID)后暂停一段时间,父进程等待子进程正常结束,打印显示等待的进程号(PID)和等待的进程退出状态。

经过测试,该程序基本实现了以上功能,且计算结果合理正确,满足实验要求。

(3) 试验过程及结果
[umr@localhost Documents]$ vi demo03.c
[umr@localhost Documents]$ gcc -o demo03 demo03.c
[umr@localhost Documents]$ ./demo03
demo01
demo01.c
demo02
demo02.c
demo03
demo03.c
demo04
demo04.c
结果分析:
程序利用fork函数复制进程,调用run_ls和run_sort函数实现linux下ls|sort命令,对当前目录进行操作。

基本完成程序设计要求,且结果正确合理,满足实验要求。

(4) 试验过程及结果
[umr@localhost Documents]$ ./demo04
this is parent process,pid=4010 ,parent id=3693
waiting for child process exit
the child process exit,the return status is 0xa
结果分析
这是一个进程控制软件,要求复制一个子进程,要求父进程发送一个信号给子进程,发送时打印提示,然后子进程收到信号后打印提示结束进程,结束完成后打印测试结果。

程序基本已实现程序要求,结果正确合理,满足实验要求。

三、结论(应当准确、完整、明确精练;也可以在结论或讨论中提出建议、设想、尚待解决
问题等。


设计过程中的感受与体会
从程序的整体构思到程序的算法设计及程序的编写再到最后程序的调试,我经历了重重困难和考验,但是我并没有放弃,我运用本学期所学到的知识和课外的一些知识,从想到查再到问,最后完成了这个4个程序。

在设计过程中,我不仅仅是完成了程序,更重要的是我在这次设计中巩固了linux c所学到的知识,锻炼了自己的实践能力;另外在这次设计的过程中,我懂得了在设。

相关主题