- 47
- 0
- 约2.61万字
- 约 29页
- 2020-07-22 发布于江苏
- 举报
操作系统实验报告 (Linux 版)
网络 142 潘豹 142999
1
实验一观察 Linux 进程状态
一、实验目的
在本实验中学习 Linux 操作系统的进程状态, 并通过编写一些简单代码来观察各种情况
下, Linux 进程的状态,进一步理解进程的状态及其转换机制。
二、实验环境
硬件环境:计算机一台,局域网环境;
软件环境: Linux Ubuntu 操作系统, gcc 编译器。
(四)查看 “不可中断阻塞 ”状态( D )
创建一个 C 程序,如 uninter_status.c,让其睡眠 30s
代码:
#includeunistd.h
#includestdio.h
int 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.h
int main()
2
{
sleep(30);
return;
}
实验结果 :
(四)查看 “不可中断阻塞 ”状态( D )
创建一个 C 程序,如 uninter_status.c,让其睡眠 30s
编译链接,后台运行该程序(后接 ),并使用 ps 命令查看运行状态
代码 :
#includeunistd.h
#includestdio.h
int main()
{
if(vfork()==0)
{
sleep(300);
return;
}
}
实验结果:
(五)查看 “僵尸 ”进程( Z )
创建一个 C 程序,如 zombie_status.c,在其中创建一个子进程,并让子进程迅速结束,
而父进程陷入阻塞
编译链接,后台运行该程序(后接 ),并使用 ps 命令查看运行状态( 30s 内)
代码:
#includeunistd.h
#inclduestdio.h
3
int main()
{
if(fork())
{
sleep(300);
}
}
实验结果:
实验二观察 Linux进程 / 线程的
原创力文档

文档评论(0)