小心
计算机专业类课程
实验报告 课程名称:操作系统 学 院:软件学院 专 业:软件工程 学生姓名:李 希
学 号:2010231020018 指导教师:丁老师
日 期: 2012年5月5日
电子科技大学计算机学院实验中心
电 子 科 技 大 学
实 验 报 告
实验一
一、实验名称: 进程管理 二、实验学时:4 三、实验内容和目的: 实验内容: (1)进程的创建
写一段源程序,创建两个进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示字符。观察纪录屏幕上的显示结果,然后分析原因。 (2)进程的控制
修改编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。 实验目的:
(1)加深对进程概念的理解,明确进程和程序的区别。
(2)进一步认识并发执行的实质。
(3)分析进程竞争资源现象,学习解决进程互斥的方法。 四、实验原理:
利用fork函数来创建子进程,并返回子进程的ID号。
利用lockf函数来实现信号量对进程的资源竞争的调度,和互斥的方法。 五、实验器材(设备、元器件):
一台装有VS2010的电脑,操作系统为WIN7. 六、实验步骤:
(1) 先写好2个子进程程序,并且让2个子程序在屏幕上分别打印出
A,B
(2) 父进程创建2个子进程,并在屏幕上打印出C。 (3) 观察进程竞争资源的现象。
七、实验数据及结果分析:
电子科技大学计算机学院实验中心
子进程A的代码:
#include } 子进程B的代码: #include } 父进程C的代码: //#include \ #include void print_error() { DWORD nErrorNo = GetLastError ( ); LPSTR lpBuffer; FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM, NULL, nErrorNo, LANG_NEUTRAL, (LPTSTR) & lpBuffer, 0 , NULL ); if (lpBuffer == NULL) |
相关推荐: