预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

操作系统实验报告(Linux版)网络142潘豹142999实验一观察Linux进程状态实验目得在本实验中学习Linux操作系统得进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程得状态,进一步理解进程得状态及其转换机制。二、实验环境硬件环境:计算机一台,局域网环境;软件环境:LinuxUbuntu操作系统,gcc编译器。(四)查瞧“不可中断阻塞”状态(D)创建一个C程序,如uninter_status、c,让其睡眠30s代码:#include<unistd、h〉#include<stdio、h〉intmain(){inti=0,j=0,k=0;for(i=0;i<1000000;i++){for(j=0;j<1000000;j++){k++;k--;}}}实验结果:(二)查瞧“暂停”状态(T)运行run_status进程,其进入R状态:代码同上:(三)查瞧“可中断阻塞”状态(S)创建一个C程序,如interruptiblie_status、c,让其睡眠30s编译链接,后台运行该程序(后接&符号),并使用ps命令查瞧运行状态代码:#include〈unistd、h>#include<stdio、h>intmain(){sleep(30);return;}实验结果:(四)查瞧“不可中断阻塞”状态(D)创建一个C程序,如uninter_status、c,让其睡眠30s编译链接,后台运行该程序(后接&),并使用ps命令查瞧运行状态代码:#include〈unistd、h>#include〈stdio、h>intmain(){if(vfork()==0){sleep(300);return;}}实验结果:(五)查瞧“僵尸”进程(Z)创建一个C程序,如zombie_status、c,在其中创建一个子进程,并让子进程迅速结束,而父进程陷入阻塞编译链接,后台运行该程序(后接&),并使用ps命令查瞧运行状态(30s内)代码:#include<unistd、h>#incldue<stdio、h>intmain(){if(fork()){sleep(300);}}实验结果:实验二观察Linux进程/线程得异步并发执行一、实验目得通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程得异步执行。理解进程及线程得区别及特性,进一步理解进程就是资源分配单位,线程就是独立调度单位。二、实验环境硬件环境:计算机一台,局域网环境;软件环境:LinuxUbuntu操作系统,gcc编译器.三、实验内容与步骤1、进程异步并发执行编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用fork函数创建两个子进程,每个子进程对count加1后,显示“Iamson,count=x”或“Iamdaughter,count=x”,父进程对count加1之后,显示“Iamfather,count=x”,其中x使用count值代替。最后父进程使用waitpid等待两个子进程结束之后退出。编译连接后,多次运行该程序,观察屏幕上显示结果得顺序性,直到出现不一样得情况为止,并观察每行打印结果中count得值。代码:#include<unistd、h>#include<stdio、h〉intmain(){pid_tson_pid,daughter_pid;intcount=1;son_pid=fork();if(son_pid==0){count++;printf(”iamson,count=%d\n",count);}else{daughter_pid=fork();if(daughter_pid==0){count++;printf(”iamdaughter,count=%d\n",count);}else{count++;printf("iamfather,count=%d\n”,count);waitpid(son_pid,NULL,0);waitpid(daughter_pid,NULL,0);}}}2、线程异步并发执行编写一个C语言程序,该程序首先初始化一个count变量为1,