读者写者问题测试结果分析 下载本文

内容发布更新时间 : 2024/5/21 23:17:20星期一 下面是文章的全部内容请认真阅读。

测试结果分析

测试数据:

程序菜单界面:

读者优先结果:

读者优先结果分析:

根据测试数据及读者优先原则可知,线程1R在第2s先执行,当他执行了1s后,线程2w发出申请,但是被阻塞,实现读写互斥,然后,线程4R在第5s时发出申请,并被准许访问数据区,线程3R在第6s时发出申请并被准许访问数据区,

同时实现了多个读者线程1R、3R、4R三个读者线程同时读数据允许,在第4s时5w发出申请,但是被阻塞。直到第10s时三个读者线程全部执行完成,2w线程开始写操作,并且在它完成之前,写者线程5w仍然处于阻塞的状态,从而实现了两个写者进程之间的互斥。

写者优先结果:

写者优先结果分析:根据测试数据及写者优先原则可知,读者线程1R在第2s时先

执行,当读者线程执行1s后,线程2w发出申请,但是读者线程正在进行,所以写者线程2w被阻塞,实现了读写互斥,然后在第4s时,写者线程5w申请,但是1R未执行完成,所以线程5W被阻塞,接下来,线程4R和线程3R分别在第5s和 第6s发出读请求,但是被阻塞,线程1R完成后,线程2W开始执行,执行完成后,虽然是3R、4R发出过申请,但是由于是写者优先,故5W开始执行,执行完成之后才开始按照时间先后顺序执行4R和3R读者线程,此时也实现了多个读者同时读数据的操作。

实验总结:

本次实验主要是涉及了互斥信号量机制,允许多个进程同时读一个共享对象,因为读操作不会使数据文件混乱,但不允许写进程和读进程同时访问共享对象,因为这些访问会引起混乱,实验内容和所需知识都属于操作系统初级阶段,尤其是在具体系统平台下进行具体实现,但是实验代码熟悉起来比较困难,代码编程修改过程中遇见很多问题,也花费了大量的时间。在实验的过程中,通过通过画流程图,单步跟踪,以及仔细阅读代码都得到了解决,而且也对实验程序进行了简化和修改。通过实验,个人进一步对于互斥信号量机制和进程相关同步问题加

深了理解。