操作系统试验三:观察Linux进程/线程的异步并发执行

一、实验目的

通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程的异步执行。理解进程及线程的区别及特性,进一步理解进程是资源分配单位,线程是独立调度单位。

二、实验环境

硬件环境:计算机一台,局域网环境;
软件环境:Linux Ubuntu操作系统,gcc编译器。

三、实验内容和步骤

1、进程异步并发执行
(1)
编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用fork函数创建两个子进程,每个子进程对count加1后,显示“I am son, count=x”或“I am daughter, count=x”,父进程对count加1之后,显示“I am father, count=x”,其中x使用count值代替。最后父进程使用waitpid等待两个子进程结束之后退出。
编译连接后,多次运行该程序,观察屏幕上显示结果的顺序性,直到出现不一样的情况为止,并观察每行打印结果中count的值

#include
#include
int main()
{
   
   
    pid_t son_pid,daughter_pid;
    int count = 1;
    son_pid = fork();
    if(son_pid == 0){
   
   
        count ++;
        printf("i am son, count = %d\n", count);
    }
    else{
   
   
    daughter_pid = fork();
        if(daughter_pid == 0){
   
   
            count++;
            printf("i am daughter, count = %d\n"

你可能感兴趣的:(linux,c++,c语言)