Уровень абстракции (программирование): различия между версиями

грубый перевод
(нет других значений)
(грубый перевод)
[[Файл:Computer abstraction layers.svg|thumb|200px| Типичное представление [[Архитектура компьютера|архитектуры компьютера]] в виде последовательности уровней абстракции: [[Аппаратное обеспечение|аппаратного обеспечения]], [[Прошивка|прошивки]], [[Язык ассемблера|языка ассемблера]], [[Ядро операционной системы|ядра операционной системы]], [[Операционная система|операционной системы]] и [[Процесс (информатика)|приложений]] (см. также<ref name="Tanenbaum"/>).]]
{{Грубый перевод}}
 
'''Уровень абстракции''' предоставляет способ сокрытия деталей реализации определенного множества функциональных возможностей. Модели программного обеспечения, использующие уровни абстракции, включают [[Сетевая модель OSI|семиуровневую модель OSI]] для [[Протокол передачи данных|протоколов передачи данных]] [[Компьютерная сеть|компьютерных сетей]], библиотеку графических примитивов [[OpenGL]], модель ввода-вывода на основе потоков байт из [[Unix]], адаптированную [[MSDOSMS DOS]], [[Linux]] и большинством других современных [[Операционная система|операционных систем]].
 
В операционной системе Unix большинство типов операций ввода-вывода рассматриваются как потоки байтов, считываемые или записываемые на [[Компьютерная техника|устройство]]. Эта модель потока байтов используется для ввода-вывода в [[файл]], [[Сокет (программный интерфейс)|сокет]] и [[компьютерный терминал]], чтобы обеспечить независимость от устройства ввода-вывода. Для чтения и записи в устройство на уровне приложения программа вызывает функцию открытия устройства, которое может соответствовать реальному устройству, например, терминалу или [[/dev|виртуальному устройству]], например, [[порт (компьютерные сети)|сетевому порту]] или файлу в [[Файловая система|файловой системе]]. Физические характеристики устройства передаются операционной системе, которая, в свою очередь, предоставляет абстрактный [[интерфейс]], позволяющий [[программист]]у считывать и записывать [[байт]]ы в устройство. Операционная система затем выполняет действительное [[преобразование]], необходимое для чтения и записи потока байтов в устройство.
В [[Информатика|информатике]] уровень абстракции — это обобщение модели [[алгоритм]]а без реальной реализации. Эти обобщения возникают из общих сходных элементов, которые лучше всего инкапсулируется моделью, выражающей сходство, присутствующее в различных конкретных реализациях. Упрощение, вносимое хорошим уровнем абстракции, позволяет с легкостью использовать повторно полезное понятие или метафору, при этом ситуации, когда это может быть точно применено, легко различимы.
 
Хорошая абстракция обобщает то, что можно сделать абстрактным; допуск специфики нарушает абстракцию и еееё успешное применение требует приспособления к каждому уникальному требованию или проблеме.
 
Часто уровни абстракции организуются в иерархию уровней абстракции. [[Сетевая модель OSI]] содержит семь уровней абстракции. Каждый уровень модели OSI ISO инкапсулирует и рассматривает отдельную часть требований по организации связи, сокращая таким образом сложность соответствующих инженерных решений.
С точки зрения [[Архитектура компьютера|архитектуры компьютера]] система часто представляется моделью из пяти уровней абстракции: [[компьютерная техника]] (см. [[Слой аппаратных абстракций]]), [[Прошивка|прошивками]], [[Язык ассемблера|языком ассемблера]], [[Ядро операционной системы|ядр операционной системы]] и [[Процесс (информатика)|приложений]].<ref name="Tanenbaum">{{cite book |last= Tanenbaum |first=Andrew S. |authorlink=Andrew S. Tanenbaum |title=Structured Computer Organization |year=1979 |publisher=Prentice-Hall |location=[[Englewood Cliffs, New Jersey]] |isbn=0-13-148521-0}}</ref>
 
== СсылкиПримечания ==
{{примечания}}
 
{{DEFAULTSORT:Abstraction Layer}}
 
[[Категория:Архитектура компьютеров]]