实际上,如果实现锁机制还是条件变量什么的,双向链表的线程切换其实根本就是不用管的,只要我们锁机制实现的好,管它怎么切换呢。
在哪里上锁呢,是在DLListThread,可以把insert和remove看成管程方法,然后在里面实现锁机制就不错。
实现锁之后,就是简单的引用就可以了,需要注意的是,之前造好的makefile需要进行改正,不同的实验需要不同的makefile,因此,需要将系统多次备份。这时候需要实验1的东西。
修 改nachos-3.4/code/Makefile.common 中 的 THREAD_H、 THREAD_C、 THREAD_O,把synch.x换成synch_sleep.x, 在nachos-3.4/code/threads/ 目录中依次执行 make depend 和 make,重新编译 threads 子系统
自此程序算编好了。
nachos操作系统(五)
最新推荐文章于 2024-04-23 10:03:14 发布
本文探讨了在实现双向链表时如何确保线程安全,通过使用锁机制和条件变量,使insert和remove操作成为原子操作。文章详细介绍了在DLListThread中应用锁机制的方法,并指导如何修改makefile以适应不同实验需求。
3335

被折叠的 条评论
为什么被折叠?



