ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
886202 Топик полностью
fk0, легенда (03.12.2018 23:34, просмотров: 101) ответил NAUT на адекватно документируются только событийные системы на автоматах (однозначность кода и рисунка)
Даже если ОС вытесняющая, то не значит вытеснение будет использовано для чего попало. В целом ничего плохого в ОС нет -- кто-то же должен заниматься основными функциями ОС: https://ru.wikiped …0%BA%D1%86%D0%B8%D0%B8
Основные функции: - Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.). - Загрузка программ в оперативную память и их выполнение. - Стандартизированный доступ к периферийным устройствам (устройства ввода-вывода). - Управление оперативной памятью (распределение между процессами, организация виртуальной памяти). - Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе. - Обеспечение пользовательского интерфейса. - Сохранение информации об ошибках системы. Дополнительные функции: - Параллельное или псевдопараллельное выполнение задач (многозадачность). - Эффективное распределение ресурсов вычислительной системы между процессами. - Разграничение доступа различных процессов к ресурсам. - Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам. - Взаимодействие между процессами: обмен данными, взаимная синхронизация. - Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений. - Многопользовательский режим работы и разграничение прав доступа (см.: аутентификация, авторизация).
Для типичной микроконтроллерной системы список может сокращаться до обработки фатальных ошибок (монитор способный распечатать стек и перезапустить, ватчдог), управление запуском (бутлоадер), файловой системы, распределения памяти, (псевдо)параллельного исполнения (многозадачная ОС), синхронизации процессов (при наличии вытесняющей многозадачности). В целом ОС нужна. Другое дело, смысл существования многозадачной ОС обычно неправильно понимают. Многозадачная ОС НЕ НУЖНА для выполнения параллельных задач, и даже скорей вредна. Попытка каждую параллельную задачу вынести в отдельный параллельный поток кончится исчерпанием оперативной памяти под стеки задач и бесконечными проблемами синхронизации параллельных потоков. Параллелизм в ОС нужен не для этого. В обобщённом случае архитектура относительно сложной системы будет стоять из небольшого числа потоков, меньшего числа независимых параллельных задач. Действительно параллельно будут исполняться или задачи мало зависящие от других и никак с другими не связанные, или требующие малого времени реакции, либо требующие явного вытеснения (длительные расчеты, например). Преимущество вытесняющих ОС над корпоративными в основном во времени реакции -- время реакции (на какое-либо событие) может определяться скоростью переключения контекста. Основная часть задач же будет выполняться в некотором "планировщике", который из себя будет представлять пул потоков (несколько штук, в пределе один-два), из которого будут запускаться обработчики событий (в свободном потоке из пула) до завершения. Обработчики не блокирующиеся явным образом (на вводе-выводе, например) разумеется, но практически блокировки всё же возможны на мьютексах. Подразумевается, что остальные задачи будут являться событийно-управляемыми (т.е. те же автоматы, вид немного с другой стороны), и таких задач множет быть очень много, сотни. При том, что небольшого количества потоков может быть достаточно для их обслуживания, т.к. все события не возникают одновременно, или в худшем случае обрабатываются по мере возможности (не обязательно в порядке очереди).
[ZX]