Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Exec [ править ]

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

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

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

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

ExecSG [ править ]

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

Ссылки [ править ]

  1. ^ Сассенрат, Карл (1986). Справочное руководство Amiga ROM Kernel . Exec.
  2. Холлоуэй, Тим (январь 1991). «Объектно-ориентированный Amiga Exec: конструкция ядра операционной системы Amiga следует правилам объектно-ориентированного программирования». Байт (январь 1991 г.). Макгроу-Хилл . С. 329–332, 234. ISSN 0360-5280 . 
  3. Перейти ↑ Stallings, William (2009). Операционные системы - Внутреннее устройство и принципы проектирования (6-е изд.). Река Аппер Сэдл, Нью-Джерси: Пирсон Прентис Холл . ISBN 9788120336292.
  4. Линус Торвальдс (17 октября 1996 г.). "Jalleen mahtava uusi keksinto m $ oftilta" [Опять же, великое новое изобретение от M $] (на финском). Группа новостейsfnet.atk.sodat . Usenet: [email protected] . Проверено 25 февраля 2011 года . Amiga - это «псевдо-упреждающая» многозадачность, которую люди Amiga называют упреждающей, но на самом деле это не так. WinNT в этом плане впереди световые годы. ... из-за отсутствия защиты памяти. Любая программа может полностью завладеть машиной и тем самым предотвратить многозадачность. Многозадачность в Amiga является совместной, поскольку требует одобрения и помощи от запуска приложений [... muistinsuojauksen puutteen vuoksi. Mikä tahansa ohjelma voi ottaa koneen haltuunsa täysin ja estää siten moniajo. Eli Amigan moniajo on kooperatiivinen, koska se vaatii sen että ajettavat ohjelmat hyväksyvät sen moniajon ja auttavat sitä]
  5. ^ «Юстиа: Hyperion Entertainment против Amiga Inc.» .

Внешние ссылки [ править ]

  • Amiga Exec