第3章 程序实现
图3-5 写者优先算法函数流程图
3.3.3 无优先算法流程图
根据定义的函数名称和功能画无优先算法的函数流程图如下图3-6所示:
19
第3章 程序实现
图3-6 无优先算法函数流程图
20
心得体会
心得体会
这一次课程设计,我们组完成了题目3即“读者-写者问题与进程同步”问题,更加系统地理解和掌握了临界区和进程互斥的概念掌握用信号量和PV操作实现进程互斥的方法。要求学生用信号量和PV操作实现读者/写者问题的读者优先算法、写者优先算法和无优先算法。经过读者写者问题的编写,我对同步机构应用有了深入的了解,懂得了运用信号量实现进程间的互斥,实现了不让共享资源同时修改。用信号量上的原语操作使临界段问题的解决比较简单明了了。读者写者问题的编写,花的时间很多,也学到很多东西。了解在支持多道程序的并发操作系统设计中,如何解决资源共享时进程间的同步与互斥的信号量机制。
课程设计提高了我们对所学知识的综合应用能力,全面检查并掌握所学的内容,培养独立思考、刻苦钻研的精神,在分析问题、解决问题的过程中,更是获得一种成功的喜悦,进而增加学习和应用的兴趣。同时也要督促自己在学习的过程中不断的完善自我,加强自己的动手操作能力,培养我的独立思考的那种思维方式。
总之,这一次课程设计我们深刻的理解操作系统,而且锻炼了实际编程能力和思维方式,虽然有难度过程中遇到很多问题,经过深刻细致的理解问题、剖析问题、解决问题使我们深刻的认识理解了读者/写者问题与进程同步。
21
参考文献
参考文献
[1] 刘肄卓 著.操作系统实验教程113301-113302 [2] 百度百科 http://baike.http://m.wodefanwen.com//
[3] 左万历 等著.计算机操作系统教程(第三版). 北京:高等教育出版社,2010.7
22
附录1 源代码
附录1 源代码
#include
#define MAX_THREAD 10 //待测试的线程数 typedef struct{ //表示测试数据格式 char thread_name[3]; //线程名 unsigned int require_moment; //请求操作时刻 unsigned int persist_time; //操作持续时间 }TEST_INFO;
TEST_INFO test_data[MAX_THREAD]={ //测试数据表 {\ // r表示读者线程 {\ //w表示写者线程 {\ {\ {\ {\ {\ {\ {\ {\};
int read_count=0; //记录正在读文件的读者数
int write_count=0; //在写者优先算法中记录声明要写文件的写者数 CRITICAL_SECTION CS_DATA; //用于保护文件的临界区变量
HANDLE h_mutex_read_count=CreateMutex(NULL,FALSE,\ //读者计数器互斥体
HANDLE h_mutex_write_count=CreateMutex(NULL,FALSE,\ //写者计数器互斥体 HANDLE h_mutex_reader_wait=CreateMutex(NULL,FALSE,\ //在写者优先算法中用于阻塞读者的互斥体
23
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库操作系统读者写者问题(5)在线全文阅读。
相关推荐: