2012-2013第一学期OS课程设计任务书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012-2013第一学期OS课程设计任务书

2012.10.30

一、设计内容

设计一个多任务(多线程)的系统,涉及进(线)程的操作、通信、同步,以及内存管理、文件操作等核心知识点。

二、设计目的

理解进(线)程的概念;掌握进(线)程通信的基本原理及典型的通信方式;掌握进(线)程同步机制及其实现机理;掌握内存操作、文件操作;熟悉软件设计、开发过程,提高团队合作的意识和能力。

三、基本要求

设计一个基于C/S模式的综合应用系统,该系统的功能需求自定义,但必须涵盖“设计内容”所规定的知识点:进(线)程的创建、终止、socket通信、同步、内存操作及文件操作。

必须采用图形用户界面(MFC或基于C#的WinForm程序),开发环境采用VC6.0或VS2008。

四、课程设计的进度安排

五、课程设计的考核

1、阶段性文档:需求设计、架构设计、功能模块设计说明、测试报告及总结

2、检查程序

3、课程设计说明书及源码

六、具体任务

1.生产者-消费者问题

问题描述:参看课本。

输入:生产者个数、消费者个数、缓冲区个数、每个生产者生产产品的个数等。

输出:生产者-消费者并发执行的过程。消费者消费完所有的产品结束。

2.内存管理

编写一个程序,包括两个线程,一个线程用于模拟内存分配活动,另一个用于跟踪第一个线程的内存行为,要求两个线程之间通过信号量实现同步,模拟内存活动的线程可以从一个文件中读出要进行的内存操作。每个内存操作包含如下内容:

时间:每个操作等待时间;

块数:分配内存的粒度;

操作:包括保留一个区域、提交一个区域、释放一个区域、回收一个区域、加锁与解锁一个区域。可将它们的编号放置于一个文件中。

保留是指保留进程的虚地址空间,而不分配物理地址空间;

提交是指在内存中分配物理地址空间;

回收是指释放物理地址空间,而保留进程的虚地址空间;

释放是指将进程的物理地址与虚拟地址空间全部释放;

大小:块的大小;

访问权限:共五种PAGE_READONLY, PAGE_READWRIYE, PAGE_EXEXUTE, PAGE_EXEXUTE _READ, PAGE_EXEXUTE _READWRIYE.

提示:使用windows提供的信号量。

对windows分配虚拟内存、改变内存状态,以及对物理内存(physical memory)和页面文件(page file)状态查询的API函数的功能、参数限制、使用规则作较深入的了解。

3.快速文件系统

设计一个函数int filter(char source,char* sink,int f)其中

source:源文件,即从哪个文件中读取数据;

sink:目标文件,即将数据写入哪个文件;

f:一个对文件的操作(可以任意定义)。

分别用三种方式实现对一个文件的操作:

(1)无缓冲区方式:表示使用的标志位是FILE_FLAG_NO_BUFFERING;

(2)缓冲方式:表示使用的标志位是FILE_FLAG_SEQUENTIAL_SCAN;

(3)异步方式:表示使用的标志位是FILE_FLAG_OVERLAPPED。

具体说明:

Filter函数的作用是从source文件中读取数据,经过操作f后,写入文件sink中。

整个过程需要三个部分完成:

(1)建立三个filter文件(功能不同),并自己生成一个源文件(大小不小于512kb),作为file1,经过10步,写入sink,记录总体时间。即从file1写入file2,从file2写入file3,…,从file9写入file10,从file10写入sink文件。

(2)用createfile建立文件时使用FILE_FLAG_SEQUENTIAL_SCAN标志,系统将给文件加上缓冲区,与(1)类似,做10次读写。注意缓冲区大小必须小于文件大小。

(3)用createfile建立文件时使用FILE_FLAG_OVERLAPP标志,将使用异步传输。同(1)(2)一样做10次读写。

相关文档
最新文档