怎么把自己的网站做自适应网站,网站建设机构培训,东莞手机网站建设公司,所有网站都能进的浏览器在内核中#xff0c;可能出现多个进程#xff08;通过系统调用进入内核模式#xff09;访问同一个对象、进程和硬中断访问同一个对象、进程和软中断访问同一个对象、多个处理器访问同一个对象等现象#xff0c;我们需要使用互斥技术#xff0c;确保在给定的时刻只有一个主…在内核中可能出现多个进程通过系统调用进入内核模式访问同一个对象、进程和硬中断访问同一个对象、进程和软中断访问同一个对象、多个处理器访问同一个对象等现象我们需要使用互斥技术确保在给定的时刻只有一个主体可以进入临界区访问对象。如果临界区的执行时间比较长或者可能睡眠可以使用下面这些互斥技术。
1信号量大多数情况下我们使用互斥信号量。
2读写信号量。
3互斥锁。
4实时互斥锁。
申请这些锁的时候如果锁被其他进程占有进程将会睡眠等待代价很高。 如果临界区的执行时间很短并且不会睡眠那么使用上面的锁不太合适因为进程切换的代价很高可以使用下面这些互斥技术。
1原子变量。
2自旋锁。
3读写自旋锁它是对自旋锁的改进允许多个读者同时进入临界区。
4顺序锁它是对读写自旋锁的改进读者不会阻塞写者。
申请这些锁的时候如果锁被其他进程占有进程自旋等待也称为忙等待。 进程还可以使用下面的互斥技术。
1禁止内核抢占防止被当前处理器上的其他进程抢占实现和当前处理器上的其他进程互斥。
2禁止软中断防止被当前处理器上的软中断抢占实现和当前处理器上的软中断互斥。
3禁止硬中断防止被当前处理器上的硬中断抢占实现和当前处理器上的硬中断互斥。 在多处理器系统中为了提高程序的性能需要尽量减少处理器之间的互斥使处理器可以最大限度地并行执行。从互斥信号量到读写信号量的改进从自旋锁到读写自旋锁的改进允许读者并行访问临界区提高了并行性能但是我们还可以进一步提高并行性能使用下面这些避免使用锁的互斥技术。
1每处理器变量。
2每处理器计数器。
3内存屏障。
4读-复制更新 Read-Copy Update RCU。
5可睡眠 RCU。
使用锁保护临界区如果使用不当可能出现死锁问题。内核里面的锁非常多定位很难为了方便定位死锁问题内核提供了死锁检测工具 lockdep。