1、 课 程 设 计 任 务 书 课程名称 操作系统 课 题 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 2013 年 6 月 24 日 任务完成日期 20 一 、 设 计内容与 设计要求 1设计内容:设计内容: 课题课题 5:模拟实现读者写者问题 读者写者问题是一个经典的并发程序设计问题,是经常出现的一种同步问题。 所谓读者写者问题,是指保证一个 writer 进程必须与其他进程互斥地访问共享对象 的同步问题。 读者写者问题可以这样的描述,有一群写者和一群读者,写者在写同一本书, 读者也在读这本书,多个读者可以同时读这本书,但是,只能有一个写者在写书, 并且,读者比写者优先,也
2、就是说,读者和写者同时提出请求时,读者优先。当读 者提出请求时需要有一个互斥操作, 另外, 需要有一个信号量 S 来当前是否可操作。 2 选题方案:选题方案: 所选题目根据学号确定,学号模 7 加 1,即(学号%7+1) 。如你的学号为 9,则 所选题目号为:9%7+1(题目 3) 。 3 设计要求:设计要求: 3.1 课程设计报告规范 (1)需求分析 a.程序的功能。 b.输入输出的要求。 (2)概要设计 a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模 块的功能。 b.课题涉及的数据结构和数据库结构; 即要存储什么数据, 这些数据是什么样 的结构,它们之间有什么关系等
3、。 (3)详细设计 a.采用 C 语言定义相关的数据类型。 b.写出各模块的类 C 码算法。 c.画出各函数的调用关系图、主要函数的流程图。 (4)调试分析以及设计体会 a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果 和含有错误的输入及输出结果。 b.程序调试中遇到的问题以及解决问题的方法。 c.课程设计过程经验教训、心得体会。 (5)使用说明 用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。 (6)书写格式 a.设计报告要求用 A4 纸打印成册: b.一级标题用 3 号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为 22。 (7)附录 源程序清
4、单(带注释) 3.2 考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新 精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出 每位同学的课程设计成绩。具体考核标准包含以下几个部分: (1)平时出勤 (占 10%) (2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占 10%) (3)程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占 40%) (4)设计报告(占 30%) 注意:不得抄袭他人的报告(或给他人抄袭) ,一旦发现,成绩为零分。 (5)独立完成情况(占 10%) 。 3.3 课程验收要求 (1)运行所设
5、计的系统。 (2)回答有关问题。 (3)提交课程设计报告。 (4)提交软盘(源程序、设计报告文档) 。 (5)依内容的创新程度,完善程序情况及对程序讲解情况打分。 二、 进度安排 第 19 周:星期一 8:0012:00 上机 星期二 8:0012:00 上机 星期三 14:3018:30 上机 目目录录 1 课题的主要功能 . 5 2 课题的功能模块的划分 5 2.1 线程的创建 5 2.2 实现信号量互斥和同步 . 5 2.3 信号量控制 6 2.4 读写过程 . 6 2.5 结构体创建 6 2.6 各个模块图 7 3 主要功能实现. 8 4 程序调试 9 5 总结 10 6 附件 11
6、7 评分表.错误错误!未定义书签。未定义书签。 1 课题的主要功能 课题描述:模拟实现读者写者问题 模拟操作:读者写者问题是一个经典的并发程序设计问题,是经常出现的一种同步 问题。 所谓读者写者问题,是指保证一个 writer 进程必须与其他进程互斥地访问共享对象 的同步问题。 读者写者问题可以这样的描述,有一群写者和一群读者,写者在写同一本书,读者 也在读这本书,多个读者可以同时读这本书,但是,只能有一个写者在写书,并且,读 者比写者优先,也就是说,读者和写者同时提出请求时,读者优先。当读者提出请求时 需要有一个互斥操作,另外,需要有一个信号量 S 来当前是否可操作。 2 课题的功能模块的划分 2.12.1 线程的创建线程的创建 线程的创建主要用到 windows API Create Thread 完成线程创建,在调用进程的 地址空间创建一个个