假设一个进程正在等待某个其他进程持有的锁。它要么自旋锁(忙等待)要么进入睡眠状态,当锁被释放时被唤醒。如果等待时间太长,最好还是睡觉,因为会占用太多资源。如果等待时间较短,则首选自旋锁,以避免睡眠和唤醒的开销。现在,通常进程本身决定是自旋锁还是休眠。但是有没有办法从操作系统做出这个决定?
所以,问题是,操作系统是否有一种技术可以知道进程何时等待锁定,如果有,操作系统本身决定使用的任何有效技术(从锁定的等待时间可能是多长时间)已发布)是否允许进程忙等待,或让进程休眠?
假设一个进程正在等待某个其他进程持有的锁。它要么自旋锁(忙等待)要么进入睡眠状态,当锁被释放时被唤醒。如果等待时间太长,最好还是睡觉,因为会占用太多资源。如果等待时间较短,则首选自旋锁,以避免睡眠和唤醒的开销。现在,通常进程本身决定是自旋锁还是休眠。但是有没有办法从操作系统做出这个决定?
所以,问题是,操作系统是否有一种技术可以知道进程何时等待锁定,如果有,操作系统本身决定使用的任何有效技术(从锁定的等待时间可能是多长时间)已发布)是否允许进程忙等待,或让进程休眠?