云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统实验指导书

操作系统实验指导书

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 15:01:27

实验四、Window进程管理实验

一、实验目的

1、学习信号量的使用。

2、使用MFC提供的函数创建线程。

二、实验内容

1、配合操作系统课程的学习,加深对线程的控制与描述的理解并熟悉VC的使用。

2、学会VC下信号量的使用。

3、利用信号量机制完成5个生产者10个消费者的同步。 4、设计一个有 N个进程共行的进程调度程序。

三、实验步骤

(一)、用CSemaphore类实现信号量同步

1、创建MFC AppWizard工程

2、在stdafx.h中加入#include

3、在**View.cpp中定义线程函数UINT ThreadFunc(LPVOID lpParameter) {HWND hWnd=(HWND)lpParameter;

::MessageBox(hWnd,\semaphore.Lock();

::MessageBox(hWnd,\semaphore.Unlock();

::MessageBox(hWnd,\return 1;}

4、定义全局信号量CSemaphore semaphore(2,2,\5、创建线程响应函数:void CMy**View::OnThread() {HWND hWnd=GetSafeHwnd();

AfxBeginThread(ThreadFunc,(LPVOID)hWnd); }

- 9 -

(二)多线程控制实验

从屏幕左上角向右下角显示运动的“HELLO”,从右上角向左下角显示运动的“GOOD”,并能控制线程结束。

1、创建线程函数_beginthread(CharThread,0,(void*)&posChar) _beginthread(NumThread,0,(void*)&posNum) _beginthread(KillThread,0,NULL)

2、函数定义部分:void CharThread(void *posChar)

{ … }

(三)利用信号量机制完成5个生产者10个消费者的同步。 (四)设计一个有 N个进程共行的进程调度程序。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等。

进程的优先数及需要的运行时间可以事先人为地指定。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪 Wait、运行Run、或完成Finish三种状态之一。

就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。

如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。

- 10 -

每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。

重复以上过程,直到所要进程都完成为止。

- 11 -

实验五、进程间通信机制

一、实验目的

1、由于Windows是事件驱动的,所以消息传递对于Windows编程是很重要的。通过实践来掌握Windows的消息传递机制。

二、实验内容

1、在客户端(Client端)使用SendMessage函数发送消息到服务器端(Server端)实现进程间通信。 发送进程在发送消息之前,先在自己的内存空间设置一个发送区,把欲发送的消息填入其中,然后再用发送过程将其发送出去。接收进程则在接收消息之前,在自己的内存空间内设置相应的接收区,然后用接收过程接收消息。发送进程向消息缓冲区写消息,而不用管接收进程是否已经准备好要接收。接收进程则从消息缓冲区内读消息。

三、实验步骤

1、客户端:

(1)创建基于对话框的MFC工程。在对话框中添加控件如下。

(2)为编辑框Edit添加类型为CString的成员变量m_msg。方法将鼠标放到Edit框上点击鼠标右键选择ClassWizard,打开MFC ClassWizard选项卡,选中第二个选项Member Variables,在IDC_EDIT1上双击,即可看到如下对话框。

- 12 -

搜索更多关于: 操作系统实验指导书 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验四、Window进程管理实验 一、实验目的 1、学习信号量的使用。 2、使用MFC提供的函数创建线程。 二、实验内容 1、配合操作系统课程的学习,加深对线程的控制与描述的理解并熟悉VC的使用。 2、学会VC下信号量的使用。 3、利用信号量机制完成5个生产者10个消费者的同步。 4、设计一个有 N个进程共行的进程调度程序。 三、实验步骤 (一)、用CSemaphore类实现信号量同步 1、创建MFC AppWizard工程 2、在stdafx.h中加入#include 3、在**View.cpp中定义线程函数UINT ThreadFunc(LPVOID lpParam

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com