linux操作系统应用实训报告
操作系统实验报告(Linux版) 网络142潘豹 实验一观察Linux进程状态 一、实验目的 在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。 二、实验环境 硬件环境:计算机一台,局域网环境; 软件环境:LinuxUbuntu操作系统,gcc编译器。 查看“不可中断阻塞”状态 创建一个C程序,如uninter_,让其睡眠30s 代码: #include #include intmain() { inti=0,j=0,k=0; for(i=0;i;> #include intmain() { sleep(30); return; } 实验结果: 查看“不可中断阻塞”状态 创建一个C程序,如uninter_,让其睡眠30s 编译链接,后台运行该程序,并使用ps命令查看运行状态 代码: #include #include intmain() { if(vfork()==0) { sleep(300); return; } } 实验结果: 查看“僵尸”进程 创建一个C程序,如zombie_,在其中创建一个子进程,并让子进程迅速结束,而父进程陷入阻塞 编译链接,后台运行该程序,并使用ps命令查看运行状态 代码: #include #incldue 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 #include 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,然后使用pthread_create函数创建两个线程,每个线程对count加1后,显示“Iamson,count=x”或“Iamdaughter,count=x”,父进程对count加1之后,显示“Iamfather,count=x”,其中x使用count值代替。最后父进程使用pthread_join等待两个线程结束之后退出。 实验Linuxshell基本命令使用 实验目的: 熟悉Linux操作系统环境,掌握Linux的基本命令。 实验提示: 1、Linux命令行的语法结构: $command[[-]option(s)][optionargument(s)][commandargument(s)]含义: ?$:lin