女子理发被剪耳垂,店员表示“剪掉耳朵很正常”
Розробник | Едсгер Дейкстра ? ?нш? розробники з Ейндговенського Технолог?чного Ун?верситету |
---|---|
Написано на | Мова асемблера машини Electrologica X8 |
Робочий стан | Проект закрито |
Початковий випуск | 1968 |
Платформи | Electrologica X8 |
THE multiprogramming system або THE OS — операц?йна система, спроектована ? реал?зована командою розробник?в, яку очолював Едсгер Дейкстра, у 1965-66-х роках.[1] Монограф??, що описували систему, були опубл?кован? 1968-го року.
Сам Дейкстра не використовував назву THE для операц?йно? системи, це була просто абрев?атура з н?д. Technische Hogeschool Eindhoven (Техн?чний ун?верситет Ейндговена, Н?дерланди). Система призначалася переважно для пакетно? обробки завдань[2] ? п?дтримувала багатозадачн?сть; дизайн системи не передбачав б?льш н?ж одного користувача. THE була схожа на операц?йну систему машини SDS 940, але ?множина процес?в у THE була статичною?[2]
У систем? THE з'явилася п?дтримка одного з перших програмних реал?зац?й в?ртуально? пам'ят? (машина Electrologica X8 не забезпечувала механ?зм?в, потр?бних, щоб реал?зувати в?ртуальну пам'ять апаратно).[2] Таким чином, прикладна програма для THE зв?льнялася в?д необх?дност? знання ф?зичних адрес пам'ят? на магн?тному барабан?. Реал?зац?я досягалася за допомогою модиф?кованого комп?лятора мови ALGOL (це була ?дина мова, що п?дтримувалася у THE), який ?автоматично генерував системн? виклики при доступ? до пам'ят?, таким чином гарантуючи, що якщо дан?, до яких звертаються, не були у оперативн?й пам'ят?, вони автоматично п?двантажувались з барабана?.[2] Механ?зми стор?нково? в?ртуально? пам'ят? також застосовувалися для буферизац?? даних вводу-виводу ? т?сно були ?нтегрован? з багатьма п?дсистемами само? ОС. THE була першою ОС, у як?й знайшли широке застосування семафори.
Арх?тектура операц?йно? системи вир?знялася нов?тн?ми для свого часу п?дходами до розд?лення шар?в (англ. layers): ?вищ?? шари мали, за задумом, залежати лише в?д ?нижчих?:
- Шар 0 в?дпов?дав за аспекти багатозадачност?: в?дбувалося прийняття р?шення про те, якому процесу вид?лити центральний процесор, з врахуванням процес?в, що були заблокован? на семафорах. Цей найнижчий шар м?стив обробники переривань ? зд?йснював перемикання контексту, коли потр?бно було запустити черговий процес. Говорячи сучасними терм?нами, це був планувальник операц?йно? системи.
- Шар 1 в?дпов?дав за вид?лання пам'ят?. У сучасн?й терм?нолог?? це був диспетчер п?дкачування стор?нок.
- Шар 2 забезпечував комун?кац?ю м?ж операц?йною системою ? консоллю оператора.
- Шар 3 забезпечував введення ? виведення даних з ? на пристро?, п?д'?днан? до комп'ютера (включно з механ?змами буферизац?? даних).
- Шар 4 складався з застосунк?в. Всього було 5 користувацьких процес?в, що в?дпов?дали за комп?ляц?ю, виконання програм, ? вив?д (друк) даних користувацьких програм. Коли будь-яка програма завершувалася, виконання передавалося назад до планувальника ОС (ор??нтованого на пр?оритети), який запускав процеси, що чекають на вв?д-вив?д.
- Шаром 5 вважався користувач системи (за словами Дейкстри, ?компонент, який реал?зували не ми?).
Такий п?дх?д, на думку розробник?в, полегшував формальне доведення коректност? аспект?в ОС, а також сприяв ?нкрементальн?й розробц? компонент?в системи. Шари реал?зувалися крок за кроком, шар 0 у першу чергу, а наступн? — п?сля ретельного тестування ? формального доведення (в рамках прийнятих абстракц?й). Такий под?л ядра ОС був у дечому схожий на п?дх?д, застосований у Multics з ?? механ?змами к?лець доступу ? сегментац??.
Система була написана на мов? асемблера для комп'ютера Electrologica X8. Ширина машинного слова у цьому комп'ютер? становила 27 розряд?в, об'?м пам'ят? на феритових к?льцях складав 32 к?лосл?в[2], а барабанно? — 512 к?лосл?в.
- ↑ Dijkstra, E.W. (1968), The structure of the 'THE'-multiprogramming system, Communications of the ACM, 11 (5): 341—346, doi:10.1145/363095.363143
- ↑ а б в г д Silberschatz, Abraham; Peterson, James L. (May 1988), 13: Historical Perspective, Operating System Concepts, с. 512