Exec (Amiga)

редактировать

Exec i s ядро ​​ из AmigaOS. Это 13 KB многозадачность микроядро, которое включало упреждающую многозадачность всего в 256 КБ памяти (как поставлялось с первыми Amiga 1000s ). Exec предоставляет функции для многозадачности, управления памятью и обработки прерываний и динамических разделяемых библиотек.

Он действует как планировщик для задач, выполняемых в системе, обеспечивая упреждающую многозадачность с приоритетным циклическим планированием. Exec также обеспечивает доступ к другим библиотекам и высокоуровневому межпроцессному взаимодействию через передачу сообщений. Другие сопоставимые микроядра имели проблемы с производительностью из-за необходимости копировать сообщения между адресными пространствами. Поскольку у Amiga только одно адресное пространство, передача сообщений Exec довольно эффективна. Единственный фиксированный адрес памяти в программном обеспечении Amiga (адрес 4) - это указатель на exec.library, который затем можно использовать для доступа к другим библиотекам. Exec был разработан и реализован Карлом Сассенратом.

Содержание
  • 1 Exec
  • 2 ExecSG
  • 3 Ссылки
  • 4 Внешние ссылки
Exec

В отличие от более новых современных операционных систем, ядро ​​exec не запускается «с привилегиями». Современные операционные системы для 68000, такие как Atari TOS и SunOS, использовали инструкции trap для вызова функций ядра. Это заставило функции ядра работать в режиме супервизора 68000, а пользовательское программное обеспечение - в непривилегированном пользовательском режиме. Напротив, вызовы функций exec выполняются с таблицей переходов библиотеки, а код ядра обычно выполняется в пользовательском режиме. Когда режим супервизора необходим ядру или программам пользователя, используются библиотечные функции Supervisor ()или SuperState ().

Одним из ограничений ядра Exec было то, что несовместимая программа могла отключать многозадачность на долгое время или на неопределенный срок, вызывая вызовы Exec Forbid ()или Disable (), без последующего вызова соответствующих Permit ()или Enable (), в результате чего среда будет работать как одна задача. Многозадачность также может быть отключена программами, которые из-за ошибки программного обеспечения или намерения изменяют структуры данных Exec или код, хранящийся в оперативной памяти (RAM), возможно, из-за отсутствия блока управления памятью (MMU) поддержка.

Даже с такими ограничениями Exec удовлетворяет определению алгоритма упреждающего планирования, используя подпрограмму упреждающего планирования и основывая интервалы прерывания на часах.

Ядро Linux разработчик Линус Торвальдс однажды описал проект Amiga как кооперативный, хотя он использует политику упреждающего планирования. Причина этого, как он утверждал, заключалась в том, что отсутствие защиты [памяти] между задачами означало, что задача могла помешать системе работать с упреждением. Поскольку задачи должны были бы выбрать не останавливать упреждающий механизм, это привело бы к своего рода перевернутой кооперативной системе. Такое сочетание защиты и политики планировщика нестандартно.

ExecSG

ExecSG (второе поколение) - это ядро, используемое AmigaOS 4. Это ядро ​​было лицензировано Hyperion Entertainment у Thomas Frieden и Hans-Jörg Frieden. Он предоставляет те же функции и структуры, что и ядро ​​Commodore Amiga Exec, но работает только на процессорах PowerPC. Конечное происхождение ExecSG не указано.

Ссылки
Внешние ссылки
  • Портал Amiga
Последняя правка сделана 2021-05-19 09:34:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте