2012-2013第一学期OS课程设计任务书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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次读写。