MIT6.828 operating system:Threads and Locking

报告详细介绍了MIT6.828操作系统实验中关于线程和锁定的部分。实验对比了单线程和双线程在执行散列操作时的效率和key丢失情况。双线程虽然能完成两倍工作,但可能导致key丢失,原因是时间片轮转调度可能导致线程间的key覆盖。通过在put和get操作中添加锁,可以避免key丢失问题。
摘要由CSDN通过智能技术生成

report of Threads and Locking

实验要求

threads and locking

实验了解

初步了解

在我们使用gcc -g -O2 ph.c -pthread成功编译后,按照实验指导书我们体会一下单线程和双线程的区别

harry@ubuntu:~/Desktop/os/Threads and Locking$ ./a.out 1
0: put time = 0.004051
0: get time = 6.730206
0: 0 keys missing
completion time = 6.734654

harry@ubuntu:~/Desktop/os/Threads and Locking$ ./a.out 2
1: put time = 0.009607
0: put time = 0.010374
1: get time = 6.664562
1: 14969 keys missing
0: get time = 6.673753
0: 14969 keys missing
completion time = 6.684481

每个线程分两个阶段(phases)运行。在第一个阶段,每个线程将NKEYS/nthread keys放入the hash table
在第二阶段,每个线程从散列表中获取NKEYS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值