Actium писал(а):
Actium писал(а):
Загрузка исполнимого кода ОС и передача управления на него => Инициализация => ...
Представьте, что вместо ... - hlt, а любая работа системного уровня активируется обработчиками прерываний. Как мне кажется, такую модель вполне можно реализовать. Кто-то из участников форума ее вообще рассматривал?
Тут пытались обсуждалась функциональную ОС ( ОС на ЛИСП). Все согласились что это утопия.
Если бы всё было так просто то бы ОС не потребовалось, а достаточно было бы сделать контролёр на основе теории автоматов. Без всяких софт процессоров.
Но в реальности требуется выполнять несколько задач одновременно. А так как входные параметры случайные. Сегодня жёсткий диск считал файл за 1 мс завтра попала соринка за 2 мс.
Или метастабильность из-за который раз в 1 час обязательно да бывает ошибка. Или из-за грозы прошла импульсная помеха и в TCP соединение потерялся пакет ACK и сеть повисла на 1 минуту.
Вот и приходиться планировать рациональное использование процессора с учётом неравномерного поступления входных команд(событий, сигналов, прерываний) и того что как правило требуется одновременно выполнять несколько команд.
Как рационально загрузить процессор что-бы он быстрее закончил работу? Вот и приходиться маневрировать пока одна задача ждёт порцию данных что-бы рассчитать контрольную сумму. Другая отправляет запрос, а третья записывает на жёсткий диск. При этом та которая пишет на жёсткий диск ещё должна рассчитать куда писать с учетом что четвёртая ведёт дефрагментацию которая внезапно начала исполняться на середине записи в файл.