Здесь мой вопрос относительно того, что оператор M прерывает L и начинает работать, т. Е. Может ли процесс, выполняющийся в критическом разделе, быть прерван или прерван.
Зависит от того, как реализован критический раздел.
В коде операционной системы вы часто найдете критические разделы, реализованные там, где прерывания заблокированы. В такой реализации процесс всегда будет выполнять весь критический раздел без прерывания.
В пользовательском коде, который использует критические разделы, реализованные с помощью системных служб, процесс неизменно может быть прерван. Если бы это было не так, процесс мог бы захватить систему, поместив весь ее код в критическую секцию.
Вы описываете одну из причин, по которой приоритеты процесса должны быть последовательными. Если вы не выполняете обработку в режиме реального времени или фоновую пакетную обработку, все процессы обычно должны иметь одинаковый базовый приоритет.
Раньше старые ленты DECUS были заполнены приложениями "справедливой доли", которые снизили бы приоритет процессов с высокой загрузкой ЦП и привели бы к хаосу при системном планировании.