操作系统实验2指导电子课件

上传人:ths****59 文档编号:54369648 上传时间:2018-09-11 格式:PPT 页数:25 大小:245KB
返回 下载 相关 举报
操作系统实验2指导电子课件_第1页
第1页 / 共25页
操作系统实验2指导电子课件_第2页
第2页 / 共25页
操作系统实验2指导电子课件_第3页
第3页 / 共25页
操作系统实验2指导电子课件_第4页
第4页 / 共25页
操作系统实验2指导电子课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《操作系统实验2指导电子课件》由会员分享,可在线阅读,更多相关《操作系统实验2指导电子课件(25页珍藏版)》请在金锄头文库上搜索。

1、1,2018年9月11日,北京交通大学计算机学院 翟高寿,主讲教师:翟高寿(副教授) 联系电话:010-51684177 (办) 电子邮件: 制作人:翟高寿 制作单位:北京交通大学计算机学院,操作系统实验指导,2,2018年9月11日,北京交通大学计算机学院 翟高寿,教学要求 待续,一、完成四个必做实验课题,并通过课程作业网站提交相应完整的实验课题电子版打包文件,至少包含实验报告、源程序和可执行系统(截至结束周周日)。 二、实验报告应给出实验目的、实验设计、 源程序清单和说明、算法及关键数据结构设计、实验问题回答、实验过程中间结果屏幕截图、疑难解惑及经验教训含他人专解。,1、页面置换算法(1-

2、4周) 2、线程同步机制(5-8周) 3、内存管理器(9-12周) 4、文件系统模拟(13-16周),实验相互检查学习融入报告,3,2018年9月11日,北京交通大学计算机学院 翟高寿,教学要求 续完,三、电子版目录结构要求:1、以自己的学号姓名和课题编号、课题简称为一级目录名,如09281001岳飞02线程同步机制2、目录组织结构示例09281001岳飞02线程同步机制|- 实验报告文档.doc|-无同步控制的线程并发运行|-源程序子目录+可执行文件|-Windows同步线程并发运行|-源程序子目录+可执行文件Peterson同步线程并发运行|-源程序子目录+可执行文件,4,2018年9月1

3、1日,北京交通大学计算机学院 翟高寿,线程同步机制,5,2018年9月11日,北京交通大学计算机学院 翟高寿,线程同步机制实验目的,通过观察共享数据资源但不受控制的两个线程的并发运行输出结果,体会同步机制的必要性和重要性。然后利用现有操作系统提供的同步机制编程实现关于该两个线程的有序控制,同时要求根据同步机制的Peterson软件解决方案尝试自己编程实现同步机制和用于同一问题的解决,并基于程序运行时间长短比较两种同步机制。,6,2018年9月11日,北京交通大学计算机学院 翟高寿,线程同步机制课题基本要求1,基于给定银行账户间转账操作模拟代码作为线程执行代码,在主线程中创建两个并发线程,编程实

4、现并观察程序运行结果和予以解释说明。利用Windows互斥信号量操作函数解决上述线程并发问题,并分析、尝试和讨论线程执行体中有关信号量操作函数调用的正确位置。,7,2018年9月11日,北京交通大学计算机学院 翟高寿,线程同步机制课题基本要求2,根据同步机制的Peterson软件解决方案尝试自己编程实现线程同步机制和用于上述线程并发问题的解决,并基于程序运行时间长短将其与基于Windows互斥信号量的线程同步机制的效率展开比较。其间,可规定线程主体代码循环执行1000000次。,8,2018年9月11日,北京交通大学计算机学院 翟高寿,共享数据资源的并发线程代码示例,int nAccount1

5、 = 0, nAccount2 = 0; /主线程创建的全局变量 int nLoop = 0; int nTemp1, nTemp2, nRandom; do nTemp1 = nAccount1;nTemp2 = nAccount2;nRandom = rand();nAccount1 = nTemp1 + nRandom;nAccount2 = nTemp2 - nRandom;nLoop+; while (nAccount1 + nAccount2) = = 0); printf(“循环次数为%dn“, nLoop);,银行账户间转账操作模拟,9,2018年9月11日,北京交通大学计算机

6、学院 翟高寿,Windows线程编程知识1,线程函数原型及框架 DWORD WINAPI ThreadExecutive(LPVOID lpParameter) int *pID = (int*)lpParameter;return 0; ,#include ,10,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows线程编程知识2,线程创建函数原型 HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddres

7、s, LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId );,ThreadExecutive,11,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows线程编程知识3,等待线程函数原型 DWORD WaitForMultipleObjects(DWORD nCount,CONST HANDLE *lpHandles,BOOL fWaitAll,DWORD dwMilliseconds );,hThread HANDLE hThread2;,INFINITE,TRUE,12,2018年9月11日,北京交通大学计

8、算机学院 翟高寿,Windows线程编程知识4,互斥信号量创建函数原型 HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCTSTR lpName );,FALSE,13,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows线程编程知识5,互斥信号量释放唤醒函数原型 BOOL ReleaseMutex(HANDLE hMutex );,14,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows线程编程知识6,互斥信号量申请(上锁/等待)函数原型 DWOR

9、D WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds );,INFINITE,15,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows线程编程知识7,线程挂起函数原型 VOID Sleep(DWORD dwMilliseconds );,0,16,2018年9月11日,北京交通大学计算机学院 翟高寿,Windows时间编程知识,系统时间获取函数原型 DWORD GetTickCount(VOID),17,2018年9月11日,北京交通大学计算机学院 翟高寿,线程同步机制 相关知识说明,18,2018年9月11日,北

10、京交通大学计算机学院 翟高寿,利用软件方法解决进程互斥问题,进程互斥算法1 设置访问编号 进程互斥算法2 设置访问标志 进程互斥算法3 设置访问标志 进程互斥算法4 编号+标志问题,Peterson解决方案,19,2018年9月11日,北京交通大学计算机学院 翟高寿,进程互斥算法1设置访问编号,Var turn: integer :=i; repeatwhile turni do no_op;临界区turn:=j; until false;,20,2018年9月11日,北京交通大学计算机学院 翟高寿,进程互斥算法2设置访问标志,Var flagi, flagj: boolean :=false

11、, false; repeatwhile flagj do no_op;flagi := true;临界区flagi := false; until false;,21,2018年9月11日,北京交通大学计算机学院 翟高寿,进程互斥算法3设置访问标志,Var flagi, flagj: boolean :=false, false; repeatflagi := true;while flagj do no_op;临界区flagi := false; until false;,22,2018年9月11日,北京交通大学计算机学院 翟高寿,进程互斥算法4编号+标志,Var flagi, flagj: boolean;turn: integer; repeatflagi := true; turn := j;while (flagj and turn=j) do no_op;临界区flagi := false; until false;,Peterson软件解决方案,23,2018年9月11日,北京交通大学计算机学院 翟高寿,内存管理器,24,2018年9月11日,北京交通大学计算机学院 翟高寿,文件系统模拟,25,2018年9月11日,北京交通大学计算机学院 翟高寿,预祝各位同学 秉承知行, 实践真知!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号