nachos操作系统(五)

本文探讨了在实现双向链表时如何确保线程安全,通过使用锁机制和条件变量,使insert和remove操作成为原子操作。文章详细介绍了在DLListThread中应用锁机制的方法,并指导如何修改makefile以适应不同实验需求。

实际上,如果实现锁机制还是条件变量什么的,双向链表的线程切换其实根本就是不用管的,只要我们锁机制实现的好,管它怎么切换呢。

在哪里上锁呢,是在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 子系统

自此程序算编好了。
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值