当前位置:文档之家› 操作系统实验2

操作系统实验2

(4)、后台运行“$./loop&”
14何I电ubuntu:*$ . /loops
运行结果:
x - owml@>ubuntu:~
Hello!Hello1Hello1Hello 1 Hello 1 Hello 1 Hello 1 Helle 1 Hello 1 Hello 1 Hello! Hello! Hello! Hello! HelloIHello! Hello! Hello! Hello! Hello! Hello! HelXo! Hello I H已
(2)、编译“$ gcc -o loop loop.c
wml@ubuntu:~$ gcc -o loop loop*c
运行结果:
若编译错误,将出现错误命令提示符;若正确不显示任何内容。
查看文件夹会发现生成loop文件
(3)、前台运行“$./loop”(按ctrl+c组合键终止死循环的loop程序)
wml^ubuntu:«$./loop|
5、进一步明确进程和程序的区别。
6理解进程并发执行的实质。
7、掌握Linux系统中、编写C一个语言程序,在Linux下编辑、编译、运行。
2、编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在
系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一段字
青岛科技大学实验报告
2013年10月18日
姓名王茂林专业集成电路班级111同组者
课程操作系统实验项目实验2Linux系统中C语言编程和进程创建
一、实验目的:
1、熟悉文件操作命令。
2、掌握Linux系统中C语言程序设计的基本步骤。
3、掌握并熟悉使用C语言编程工具GCCS译器。
4、加深对进程、进程树等概念的理解。
运行结果:
Hello!
HelloJ
Hello1
Hello■
Hello J
Hello J
Hello ■
Hello >
Hellol
Hello J
Hello■
Hello J
HelloJ
Hello J
Hello J
Hello!
Hello J
Hello!
Hello!
Hellol
wmL电ubunt:u:—$按ctrl+c组合键后死循环的loop程序终止
程序如下:
#i nclude<stdio.h>
int mai n()
{ in t p1,p2;
while((p 1=fork())==-1);
if(p1==0)
prin tf("Child1!\n");
else
{ while((p2=fork())==-1);
if(p2==0)
prin tf("Child2 !\n");
运行结果:
若编译错误,将出现错误命令提示符;若正确不显示任何内容。
查看文件夹会发现生成hello文件
6运行可执行文件:
执行C程序命令格式:./可执行文件名
例:
wmlgubuntu:*$./hello
7、编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在 系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一段字符 信息。
写入如下命令
gedtt hello-C
执行后,将打开文本编辑器gedi书写如下源代码,保存
File Edit view search Tools Documents Help.Open * S^ve昌仏Und
*heUo.ck
^include<stdi.o+h>voidmain()
5、编译源文件:
Linux上可用的C编译器是GNU C编译器,或简称GCC
a.cx
#tnclude<stdto.h>tntmatn()
{
intpl,p2;
while((pl=fork())==-i);if(pl==O)
printf(*'Childl!\n,r);else
{
whtle((p2=fork())==-1);tf(p2=-O)
printf(11Child2!\nM);else
#in elude <stdio.h>
mai n()
{
while(1)
{
printf(“Hello!\n”);
}
}
(1)、编写上面的源代码生成源文件“$gedit loop.c”
gedit loop.c
** (gedtt:4204):EARNING **: Couldn't connect to accesstb1.l1.ty bus: Failed to co nnect to socket /trip/dbus-GtHH83wFCs:Connection refused
printf(Father I\n");
}
return0;
}
编译运行结果如下:
wml@ubuntu:gcc -o a a.c wml@ubuntu:~$ */a
Father 1 wml@ubuntu:-$ Child2 l Childl!
8、运行以下程序,学习对后台执行程序的控制方式。 程序如下:
/*loop.c*/
else
prin tf("Father !\n");
}
return 0; }
编写上面的源代码生成源文件“$gedit a.c
wElgubuntu:~$ gedit a+t
** (gedit:5517)I WARNING **: Couldn1t connect tt> accessibility bus:Failed to co nnect to socket /tmp/dbus-HtlAMiBDLv:Connection refused
(5)、多次使用ps-l命令查看进程状态。
符信息。
3、运行实验指导书第24页程序,学习对后台执行程序的控制方式。
4、运行实验指导书第25页程序,分析程序执行过程中产生的子进程情况。
三、实验步骤及结果:
1、启动windows下已经安装好的VMware虚拟机进入linux系统
2、等待系统初始化完毕后启动命令终端
3、阅读实验指导书
4、编辑源文件:
GCC命令的基本格式是:gcc [选项]源文件[目标文件]常用选项:
-S:生成.s文件,GCCR进行预处理和编译,生成汇编代码.s文件。
-o:把文件输出到output_filename,这个名称不能与源文件同名。,GCC就将
文件输出到a.outo
例:
wmlOubuntu:gcc -o hello hello.c
相关主题