Комментарии 4
Новая постоянный фид филлерных новостей "Рэймонд Чен объясняет"? В стиле "М'Айк Лжец в TES: шутки, комментарии, оправдания разработчиков".
Сегодня рубрика "#ОправданияОтЧена" под кодовым названием "Мы так и не сумели сделать нормальную многозадачность с гарантированным выделением ресурсов для критичных системных приложений".
Your priority checkout pass gets you to the front of the line, but if the person at the register has a large shopping cart full of groceries, you just have to wait until they are done before you get your chance.
...неверно. При переключении процесса планировщиком идет сброс контекста выполнения одного и переключение на контекст другого процесса, в рамках аналогии: выгружальщику тележки просто не дадут разгрузить всё: ему дадут выгрузить и пробьют порцию в ровно M товаров в течении кванта времени, после чего его развернут в конец очереди и так, пока он не пробьёт и не оплатит всё.
Или верно, но тогда у меня вопросы к системному планировщику и программистам, его реализовавшему, который при многозадачности позволяет такое в принципе - потому, что это уровень кооперативной многозадачности, которой грешили 3.х (там вообще мрак с хендлерами) и 95-98я.
Вместо "у нас есть гарантированно пустые слоты в цикле планировщика, доступные только конкретно прописанным программам управления и недоступные никому больше - аналог SysRQ в линуксах. Их может быть - удельно - больше в простое (idle) и меньше при загрузке пользовательскими задачами, но они будут всегда и мы через них можем организовать хоть какой-то диалог с пользователем даже при полной загрузке проца" сделано такое вот.
Или эти слоты есть, но новые, слопленные писаные на стильных-моднявых-кырасивых WinUI, таскбар и диспетчер (в отличие от их писанных на чистом GDI предков) уже не успевают полноценно даже отрисоваться и нужно выкатывать общественности М'Айка Чена с оправданиями?
крайне сложно исправить ситуацию, если ваши инструменты вынуждены делить критически важные ресурсы с тем самым процессом, который вышел из‑под контроля», — указывает Чен.
Понятно. Все упирается в недостатки аппаратной архитектуры. Наверно для ядра ОС нужен отдельный аппаратный узел, и оперативка должна быть типа Dual-Port. Кнопка Win должна быть не на клавиатуре, а того же типа как кнопки Power и Reset. Еще нужен дисплей Win. Тогда можно будет обеспечить надежный контроль над всеми процессами.
Ну да, режим пультового терминала, как в PDP-11, работающий в теневом режиме в отдельной памяти и при переключении в него не затрагивающий ни состояния регистров, ни состояния оперативной памяти (кроме теневого ОЗУ, подключаемого именно при работе пульта). Или кнопка Magic... Наконец, JTAG и отдельный большой и толстый аппаратный отладчик. Но это ж сугубо низкоуровневая отладочная система. Через него нельзя (вернее, можно, но очень непросто) получить доступ именно к механизмам ОС. Процессы, потоки и т.п. А проще было бы, если бы планировщик системы, получив управление (а он рано или поздно получит управление даже в самой загруженной системе) и обнаружив взведенный по нажатию спецкомбинации флаг, просто перестал бы отдавать процессорное время всем пользовательским процессам. Кроме диспетчера задач.
del
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Рэймонд Чен объяснил зависание панели задач при перегрузке системы в Windows 10 и 11