Можно ли выгрузить процесс из оперативной памяти, удерживая блокировку? - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь понять, как работает переключатель контекста процесса и механизм подкачки процесса , особенно когда процесс получает блокировку.

Предположим, что процесс A приобрел либо Mutex , либо Spinlock . Пожалуйста, исправьте меня, если я ошибаюсь ниже.

В случае Спинлок : Когда процесс получил Спинлок , приоритетное действие ядра отключено, следовательноне будет переключения контекста , так правда ли, что отключение вытеснения (переключение контекста) также предотвращает выгрузку процесса? Или есть другой способ, которым ядро ​​помечает процесс как «не подлежащий обмену», пока он удерживает Spinlock ?

В случае Mutex: процесс может переходить в состояние сна, удерживая мьютекс , а также выгрузка не отключена . можно ли заменить этот процесс, удерживая мьютекс ? Если нет, то как этот процесс будет предотвращен от замены?

Извините за неясное объяснение проблемы.

Платформа: Linux на x86

...