实验题目
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”