Skip to content

zldscr0/os_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

os_test

1.2022/4/18 : 解决临界区冲突的几种算法尝试

thread1:Peterson算法的软件实现

thread2:硬件实现,内联汇编使用XCHG指令

在thread1 的基础上实现一个优先级转置问题的复现

实现过程中遇到的问题:

1.pthread库提供的FIFO调度算法不是抢占式的调度(目前可查的资料中都显示FIFO是抢占式的调度,所以未实现出抢占式优先级调度。

2.修改调度算法后必须使用管理员模式运行,否则无法正常运行(在用户模式下不能直接修改调度算法)

运行方式 sudo ./xxx

3.直接运行此代码的话会发现count仍然不等于100000,发生这种现象是因为在虚拟机上运行该程序的时候是多核运行的,并不能模拟单核运行该程序,所以需要在运行时限制程序在某一cpu上运行。

4.然后想要复现优先级转置的问题的话,可以借用sleep让低优先级的进程进入临界区后陷入等待态,然后高优先级进程将运行,之后就卡死了(其实这样的模拟是非常无聊的,因为没有实现抢占式调度,所以就是一个很nt的模拟过程……

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages