操作系统实验报告-进程管理.doc

操作系统实验报告-进程管理.doc

ID:50127123

大小:32.00 KB

页数:9页

时间:2020-03-05

操作系统实验报告-进程管理.doc_第1页
操作系统实验报告-进程管理.doc_第2页
操作系统实验报告-进程管理.doc_第3页
操作系统实验报告-进程管理.doc_第4页
操作系统实验报告-进程管理.doc_第5页
资源描述:

《操作系统实验报告-进程管理.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验内容:进程管理一、实验目的1、掌握Linux中进程的创建方法及执行情况;2、加深对进程、进程树等概念的理解;3、掌握Linux中如何加载子进程自己的程序;4、掌握父进程通过创建子进程完成某项任务的方法;5.、掌握系统调用exit()和_exit()调用的使用。6、分析进程竞争资源的现象,学习解决进程互斥的方法;进一步认识并发执行的实质二、实验内容(一)进程的创建1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符。#include

2、h>main(){intp,x;p=fork();if(p>0){x=fork();if(x>0)printf("father");elseprintf("child2");}elseprintf("child1");}输出结果:child1child2father2、运行以下程序,分析程序执行过程中产生的进程情况。#include main(){ int p,x;  p=fork();  if (p>0)   fork();  else{      fork();      fork();    }   sleep(

3、15);  }实验步骤:编译连接 gcc –o forktree forktree.c后台运行 ./forktree &使用 pstree –h 查看进程树运行结果: ├─gnome-terminal─┬─bash─┬─forktree─┬─forktree─┬─forktree───forktree     │                │      │          │          └─forktree     │                │      │          └─forktree     │     

4、           │      └─pstree分析:程序运行,系统首先创建一个进程forktree,执行到p=fork()创建一个子进程forktree,子进程获得处理机优先执行,父进程等待;执行else,当执行到第一个fork()函数时,子进程创建了一个进程forktree,称之为孙进程,孙进程获得处理机往下执行,子进程等待;执行到第二个fork()函数时,孙进程又创建一个进程forktree,称之为重孙进程,重孙进程很快执行完,将处理机还给孙进程,孙进程很快执行完,将处理机还给子进程;子进程继续往下执行,执行到第二个fork()函

5、数,又创建一个进程forktree,称之为第二孙进程,并获得处理机执行,此进程很快执行完,将处理机还给子进程,子进程也很快执行完,将处理机还给父进程,父进程P>0执行if语句,运行fork()函数,又创建一个进程forktree,称之为第二子进程,此进程获得处理机执行很快运行完,将处理机还给父进程,父进程运行sleep(15)语句,休眠15秒,用pstree命令查询进程树。3、运行程序,分析运行结果。#include main(){ int p,x,ppid,pid;  x=0;  p=fork();  if(p>0)  

6、  { printf("parent output x=%d",++x);      ppid=getpid();      printf("Thi id number of parent is:ppid=%d",ppid);     }    else    { printf("child output x=%d",++x);      pid=getpid();      printf("Thi id number of child is:pid=%d",pid);    }} 运行结果:Parent output x=

7、1This id number of parent is:ppid=3110Child output x =1This  is number of child is:pid=3111分析:fork创建进程的时候子进程与父进程共享代码区,子进程复制父进程的数据区,所以,两个进程中的数据互不影响都是1。4、loop.c#include main(){  while(1){  };{实验步骤:编译 gcc loop.c –o loop后台运行 ./loop &(可多次使用该命令)多次使用ps命令查看进程状态结果:F S   UI

8、D   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD0 S   1000  2645  2643     0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。