操作系统linux版实验报告.docxVIP

  • 407
  • 0
  • 约1.66万字
  • 约 30页
  • 2017-12-26 发布于河南
  • 举报
操作系统linux版实验报告

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

文档评论(0)

1亿VIP精品文档

相关文档