多进程实现


实验题目

1. 实验内容

《计算机操作系统》这门课对进程有这样的描述:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

2. 实验要点

掌握操作系统进程的概念、特征、进程间的切换。
掌握Linux系统下与进程相关的函数。

3. 实验环境

Eclipse-CDT 2.3.4
C\C++

4. 工作目录

本实验的工作目录为: /headless/Desktop/Process
访问方式如下:
双击打开桌面上的 eclipse 软件。
选择 /headless/Desktop/OS/Process 工作空间,打开本实验工作目录。

5.实验任务

1.掌握操作系统进程的概念。
2.完成实验步骤2中的程序1,学会使用操作系统的fork()函数。
请完成实验任务,并撰写实验报告。

准备工作

对于本次实验,首先要明白的是打开工程和打开.c文件的区别
打开一个工程(简单来说最左侧一列是有工程包的):
在这里插入图片描述
打开一个.c文件
在这里插入图片描述

两者的区别不仅是是否有工程包哦!

代码编程

部分代码:

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 parent process\n");
    }
}

其实也不能说上面的代码时错误的,只是这是一部分,我们要完善这个代码,使它可以运行
因为是第一个代码,我们只需要添加一些头文件即可

完整代码

代码如下(示例):

#include<stdio.h>
#include<unistd.h>
#include<iostream>

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 parent process\n");
    }
}

运行步骤

1.先编译在这里插入图片描述
2.在运行
鼠标右击,选择菜单栏中的“run as”
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值