1.实验目的:
(1)了解在Linux操作系统中进程的特点和表现形式
(2)掌握Linux查看进程的方式与方法
(3)在一个进程中创建另一个进程的方法
(4)掌握父进程和子进程的关系和fork的用法
2.实验内容:
(1)编写一个简单的程序,使用ps或top工具观察该进程的的ID号,并使用kill工具终止进程运行。
(2)编写一个程序,使用fork函数生成一个子进程,并使用相关工具观察进程状态。
若将上述实例(2),改写为:
#include <sys/types.h>
#include <unistd.h>
void main()
{
int i;
if ( fork() == 0 )
{
/* 子进程程序 */
for ( ;; )
printf("This is child process\n");
}
else
{
/* 父进程程序*/
for ( i = 1; i <1000; i ++ )
printf("This is process process\n");
}
}
若将将实例(2)改为:
#include <sys/types.h>
#include <unistd.h>
void main()
{
int i;
if ( fork() == 0 )
{
/* 子进程程序 */
for ( ;; )
printf("This is child process\n");
}
else
{
/* 父进程程序*/
for (;;)
printf("This is process process\n");
}
}
3.实验步骤:
(1)编写一个简单的程序,使用ps或top工具观察该进程的的ID号,并使用kill工具终止进程运行。
#include <stdio.h>
int main()
{
while(1)
{
printf("I am the first process!\n");
}
return 0;
}
(2)编写一个程序,使用fork函数生成一个子进程,并使用相关工具观察进程状态。
#include <sys/types.h>
#include <unistd.h>
void main()
{
int i;
if ( fork() == 0 )
{
/* 子进程程序 */
for ( i = 1; i <1000; i ++ )
printf("This is child process\n");
}
else
{
/* 父进程程序*/
for ( i = 1; i <1000; i ++ )
printf("This is process process\n");
}
}
若将上述实例(2),改写为:
#include <sys/types.h>
#include <unistd.h>
void main()
{
int i;
if ( fork() == 0 )
{
/* 子进程程序 */
for ( ;; )
printf("This is child process\n");
}
else
{
/* 父进程程序*/
for ( i = 1; i <1000; i ++ )
printf("This is process process\n");
}
}
若将将实例(2)改为:
#include <sys/types.h>
#include <unistd.h>
void main()
{
int i;
if ( fork() == 0 )
{
/* 子进程程序 */
for ( ;; )
printf("This is child process\n");
}
else
{
/* 父进程程序*/
for (;;)
printf("This is process process\n");
}
}