Шар абстракції
Шар абстракції (Архітектурний шар) — у інформатиці, засіб розділення складних систем на простіші частини. Забезпечує приховування особливостей реалізації.
- окремий шар переважно розглядається як єдине самодостатнє ціле
- шар вищого рівня користується послугами шару нижчого рівня
- шар нижчого рівня не знає про шар вищого рівня
- проміжний шар переважно приховує від вищого шару особливості нижчого шару
- нижчий шар може замінюватися на аналогічний за фунціональністю
- нижчий шар можуть використовувати різні шари вищого рівня
- кожен шар є кандидатом на стандартизацію
При використанні шарів абстракції виникає питання визначення розбиття на шари та меж відповідальності кожного шару.
Перші обчислювачі (комп'ютери) мали лише наперед визначену функціональність. Програмовані або універсальні комп'ютери дозволяли ввести програму для виконання. Таким чином з'явились два шари — апаратного і програмного забезпечення. Збільшення вимог і ускладнення цих шарів привело до виділення додаткових шарів — у апаратному забезпеченні: мікроархітектури та машинної мови, у програмному забезпеченні — системного програмного забезпечення (операційної системи, яка також могла бути розбита на ядро та драйвери і системні бібліотеки, мови програмування), та прикладного програмного забезпечення — прикладних бібліотек, прикладних програм.
Конвеєр (pipeline) забезпечує розбиття складної операції на ряд простіших кроків, які послідовно виконуються.
В системах комп'ютерної графіки (як наприклад OpenGL) графічний конвеєр складається з
- вершинних операцій
- перетворення координат вершин об'єкта з системи координат об'єкта у систему координат вікна відображення
- розрахунок освітленості вершин об'єкта
- відтинання частин об'єкта, що лежать за межами видимого об'єму
- растеризації: перетворення геометричних даних у фрагменти. Фрагменти складаються із екранних координат, кольору, текстурних координат та інших даних що формують зображення у буфері кадру
- операцій над фрагментами, які розраховують значення для запису у буфер кадру
- Фаулер, Мартин (2008). Архитектура корпоративных программных приложений. Вильямс. с. 544. ISBN 978-5-8459-0579-6.
- Таненбаум, Эндрю (2007). Современные операционные системы. Издательский дом «Питер». с. 1040. ISBN 978-5-318-00299-1.
- Martz, Paul (2006). OpenGL® Distilled. Addison Wesley. с. 304. ISBN 0-321-33679-8.
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |