OSDev

для всех
Текущее время: 26 апр 2024, 02:05

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Однотипность реализаций ОС
СообщениеДобавлено: 01 фев 2015, 10:12 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Почему подавляющее большинство разработчиков придерживается следующей модели?

Загрузка исполнимого кода ОС и передача управления на него => Инициализация =>
Добавление системных задач в очередь => while (!shutdown) { Task* task = dequeue_task(); task->execute(); }

** Состояние очереди может изменяться обработчиками прерываний.

P.S. Понимаю, что однозначного ответа на вопрос нет. Интересует мнение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 01 фев 2015, 14:33 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Задача ОС - выполнять задачи пользователя, и обслуживать периферийные устройства (прерывания).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 01 фев 2015, 19:20 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Думаю это от того что компьютер это ЭВМ
Электронно вычислительная машина. И ей нужно что-то вычислять считать. А таких вот задач вычислительных много и они долгие. А программы в частности ОС пишутся как раз для вычислительных машин.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 02 фев 2015, 09:43 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Да не вопрос :) У нас есть вычислительная машина, мы ее загружаем решением имеющихся задач.

Но почему "загрузчик" этих задач почти всегда реализуется так, как описано в первом сообщении? Другими словами, почему именно бесконечный цикл с выборкой задач из очереди?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 02 фев 2015, 13:15 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Почем бесконечный цикл? Так задач бесконечное число.
Почему очередь? Так не обязательно. Просто это самый простой способ планирования.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 02 фев 2015, 21:15 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
В смысле бесконечно много? Бесконечный цикл, чтобы ОС могла выполнять свою основную функцию постоянно, пока работает. Кстати, цикла в явном виде может и не быть. Например, у меня используется просто переключение на следующую в очереди выполнения задачу (или на текущую в другой очереди выполнения), а т.к. очереди выполнения имеют кольцевую структуру, то и получается цикл.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 03 фев 2015, 15:53 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Actium писал(а):
Загрузка исполнимого кода ОС и передача управления на него => Инициализация => ...
Представьте, что вместо ... - hlt, а любая работа системного уровня активируется обработчиками прерываний. Как мне кажется, такую модель вполне можно реализовать. Кто-то из участников форума ее вообще рассматривал?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 03 фев 2015, 18:52 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Actium писал(а):
Представьте, что вместо ... - hlt, а любая работа системного уровня активируется обработчиками прерываний. Как мне кажется, такую модель вполне можно реализовать. Кто-то из участников форума ее вообще рассматривал?
hlt, естественно, присутствует в специальных низкоприоритетных потоках ядра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 03 фев 2015, 19:45 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
phantom-84 писал(а):
hlt, естественно, присутствует в специальных низкоприоритетных потоках ядра.
Да, только как средство разгрузки проца.

P.S. Не знаю, как еще говорить о лесе, если все видят только деревья :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Однотипность реализаций ОС
СообщениеДобавлено: 03 фев 2015, 20:07 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Actium писал(а):
Actium писал(а):
Загрузка исполнимого кода ОС и передача управления на него => Инициализация => ...
Представьте, что вместо ... - hlt, а любая работа системного уровня активируется обработчиками прерываний. Как мне кажется, такую модель вполне можно реализовать. Кто-то из участников форума ее вообще рассматривал?

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB