nachos操作系统(二)

今天继续深入这个系统。

首先,在main.cc中,主要就是这个处理参数,其中,q是设置testnum,t是设置threadnum(线程数),n就是设置n(节点个数),e是设置err_type(错误类型),有一个default,还是设置testnum。然后就进入了threadtest函数。

在threadtest.cc中,就是主要功能了,它说设置测试号为2,意思是
里面加了不少自己编写的函数,例如Dllistthread, threadtest2, 值得注意的是,threadtest也就在这里,其实,testnum表示的是测试编号,例如它是2,就执行了threadtest2这段代码,然后我们就执行threadtest2这段代码。

在threadtest2这段代码中,功能很简单,首先设置一个出错提示链表,然后根据threadnum数量,调用new thread来创建这些线程,创建出来后就fork到dllistthread一个函数,是什么意思呢?这个函数有一个int参数,它里面就是insert和remove,而里面使用的dllist是一个全局变量,应该就是不断的存取这个导致的出错。

在insert和remove函数中,它会有随机插入一个数,remove呢,也会随机移走一个数,同时都会打印出来。

它这里出错是什么原因呢,就是你在插入或者删除的时候,突然被切换了,插入的时候突然切换成别的插入和删除,很有可能导致节点丢失或者其他的问题,这个就是实验的目的所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值