网站大量收购独家精品文档,联系QQ:2885784924

操作系统课程设计报告(网络21朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰).doc

操作系统课程设计报告(网络21朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰).doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告(网络21朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰)操作系统课程设计报告(网络121朱正杰)

操作系统课程设计报告 题目: 线程安全型双向链表的实现 专 业: 网络工程 201210314005 姓 名: 朱正杰 上海海事大学信息工程学院 2014年 12月 15日 目录 1.课程设计任务描述与要求 1 1.1任务描述 1 2.系统总体结构描述与主要数据结构说明 1 2.1系统总体结构描述 1 2.2主要数据结构说明 2 3.课程设计报告内容 5 3.1模块功能 5 3.2详细流程图 6 3.3实现思路说明 7 3.4程序清单 7 3.5注释 8 4.总结 19 附录: 19 程序使用说明 19 程序测试思想 20 程序测试结果 20 参考书目: 21 1.课程设计任务与 1.1任务描述 一个安全的双向链表,所谓线程安全,就是该链表能够实现多个线程同时正确的链表结点,也就是能够实现对链表这个资源的保护。 1.2 需要实现的函数 InitList函数:初始化一个空的双向,并初始化各个用于保护链表的信号量。 Insert函数:向链表指定位置插入一个结点。 Erase函数:删除指定位置的结点。 Clear函数:删除链表中的所有结点 Find函数:查找链表中是否有指定的元素,若有,返回能够该的指针;若无,返回 Print函数:打印当前链表中的所有元素。该链表后,编写一个测试程序,生成多个线程同时读写该链表,验证链表执行是否,并给出测试报告。总体结构描述与数据结构说明 总体结构描述 总体结构设计的任务,是系统分析的逻辑模型设计应用软件系统的物理结构。系统模型必须符合逻辑模型,能够完成逻辑模型所规定的处理功能。物理的基本要求。 应可修改,即易读,易于进行查错、改错、可以根据的变化和用户的要求各种的改变和改进。系统具有可修改性,对于系统开发和维护影响。据统计在系统周期中各阶段的应用软件费用及人力投入大体分布如下:系统开发:%;维护:%。 程序功能简单,未用数据库辅助存储技术,本程序只供实现对双向链表的插入,删除,查找和打印等功能。2.2主要数据结构说明 部分: //产生随机数 const int lsarea=10000; //链表大小随机数 const int earea=10000; //元素范围随机数 const int sum=100000; //线程运行总次数 int th=0; //初始化当前线程总数 int th_cz=1; //初始化当前查找线程总数 int th_cr=1; //初始化当前插入线程总数 int th_sc=1; //初始化当前删除线程总数 HANDLE h_Mutex; //控制读者数量readcount的互斥访问量 HANDLE mutex; //控制读写互斥,写写互斥的信号量 typedef int ElemType; // 定义ElemType为int类型的别名 typedef struct DuLNode *PNode; //结点指针 //定义结点结构体 typedef struct DuLNode{ ElemType data; //定义数据域 PNode prior; //定义前驱指针 PNode next; //定义后继指针 }DuLNode,*DLN; //定义双向链表结构体 typedef struct DuLinkList{ DLN head; //定义头结点 int Length; //定义链表长度 }DuLinkList,*DLL; //定义读者传参结构体 struct Readarg{ DLL List; //定义链表 ElemType e; //定义查找元素 }; //定义写者传参结构体 struct Writearg{ DLL List; //定义链表 int add; //定义插入或删除的位置 ElemType e; //定义插入元素 int Flag; //定义传入标示符(cr执行插入操作,sc执行删除操作) }; 线程函数部分: WaitForSingleObject(mutex,INFINITE);//等待信号量信号 ReleaseMutex(h_Mutex);//释放互斥量信号 ReleaseSemaphore(mutex,1,NULL);//释放信号量信号 主函数部分:HANDLE hThread[sum];//定义线程句柄unsigned threadID[sum];//定义sum个线程Readarg *RA=new Readarg[1];//创建读者传参变量RA[0].List=L;//传参变量赋值 RA[0].e=random(100);//传参变量赋值 Wr

您可能关注的文档

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档