欢迎来到天天文库
浏览记录
ID:38515833
大小:403.50 KB
页数:28页
时间:2019-06-14
《实验4 并发与调度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统原理实验周苏Zs@mail.hz.zj.cnQQ:81505050安全性⑩输入/输出管理⑦调度⑤存储器管理⑥进程描述与控制③并发性④文件管理⑧联网⑨操作系统的各个主题粗线表示从设计和实现的角度考虑关系非常紧密实验4并发与调度通过对事件和互斥体对象以及对文件和文件映射对象的了解,来加深对操作系统进程同步、线程同步的理解;通过Linux并发程序的调试,学习操作系统并发程序的工作方式实验4.1Windows2000线程同步实验4.2Windows2000线程间的通讯实验4.3Linux并发程序设计实验估计时间:120分钟,难度系数:4§4.1Windows2000
2、线程同步Windows2000提供的常用对象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据临界段事件互斥体信号背景知识多线程编程中关键的一步是保护所有的共享资源,工具主要有互锁函数、临界段和互斥体等;另一个实质性部分是协调线程使其完成应用程序的任务,为此,可利用内核中的事件对象和信号在进程内或进程间实现线程同步的最方便的方法是使用事件对象,这一组内核对象允许一个线程对其受信状态进行直接控制背景知识而互斥体则是另一个可命名且安全的内核对象,其主要目的是引导对共享资
3、源的访问。拥有单一访问资源的线程创建互斥体,所有想要访问该资源的线程应该在实际执行操作之前获得互斥体,而在访问结束时立即释放互斥体,以允许下一个等待线程获得互斥体,然后接着进行下去与事件对象类似,互斥体容易创建、打开、使用并清除。利用CreateMutex()API可创建互斥体,创建时还可以指定一个初始的拥有权标志,通过使用这个标志,只有当线程完成了资源的所有的初始化工作时,才允许创建线程释放互斥体背景知识为了获得互斥体,首先,想要访问调用的线程可使用OpenMutex()API来获得指向对象的句柄;然后,线程将这个句柄提供给一个等待函数。当内核将互斥体对象发送给等
4、待线程时,就表明该线程获得了互斥体的拥有权。当线程获得拥有权时,线程控制了对共享资源的访问——必须设法尽快地放弃互斥体。放弃共享资源时需要在该对象上调用ReleaseMute()API。然后系统负责将互斥体拥有权传递给下一个等待着的线程(由到达时间决定顺序)背景知识在本实验中,通过对事件和互斥体对象的了解,来加深对Windows2000线程同步的理解。回顾系统进程、线程的有关概念,加深对Windows2000线程的理解了解事件和互斥体对象通过分析实验程序,了解管理事件对象的API了解在进程中如何使用事件对象了解在进程中如何使用互斥体对象了解父进程创建子进程的程序设计
5、方法实验目的在开始本实验之前,请回顾教科书的相关内容需要做以下准备一台运行Windows2000Professional操作系统的计算机计算机中需安装VisualC++6.0专业版或企业版工具/准备工作事件对象互斥体对象实验内容与步骤实验估计时间:120分钟,难度系数:5§4.2Windows2000线程间的通讯Windows2000提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射。这类对象允许一个线程很容易地向同一进程或其他进程中的另一线程发送信息背景知识文件对象文件对象是人
6、们所熟悉的永久存储的传统元素。将一个文件看作是内核对象可使开发人员获得比标准C++文件操作更为强大的功能内核允许开发人员在系统设备或网络上创建代表永久存储数据块的文件对象。这些文件对象是对永久存储数据的低级访问者;用C++运行库或其他方法打开的所有文件最终都要变成对CreateFile()API的调用CreateFile()函数分配一个内核对象来代表一个永久的文件。当在磁盘上创建一个新文件或当打开一个已经存在的文件时,就调用这个API背景知识创建调用比创建事件、互斥体或信号量要复杂。首先必须在lpFilename中指定对象名,并且要指向文件系统中所访问的位置。接着必
7、须用dwDesiredAccess参数提供所需的访问级别由创建函数要求的共享模式参数dwShareMode可以指定当另一进程企图同时访问数据时会发生什么。与所有其他第一级内核对象一样,可以利用lpSecurityAttributes参数指定所创建对象的安全性。接着,要通过dwCreationDisposition参数告诉创建函数,如果数据在指定的永久存储介质中存在或不存在时的行为背景知识可以使用dwFlagsAndAttributes参数来指定文件的属性(如只读),并确定对数据所执行的读写操作的行为。最后一个参数hTemplateFile可指定另一个文件对象作为
此文档下载收益归作者所有