<<
>>

Косвенность

Иногда говорят, что нет такой проблемы в кибернетике, которую нельзя решить на другом уровне косвенности. Хотя это определенное преувеличение, во фразе имеется и доля истины. Рассмотрим несколько примеров.
В системах на основе процессора x86 при нажатии клавиши аппаратура формирует прерывание и помещает в регистр устройства не символ ASCII, а скан-код клавиши. Более того, когда позднее клавиша отпущена, генерируется второе прерывание, также с номером клавиши. Такая косвенность предоставляет операционной системе возможность использовать номер клавиши в качестве индекса в таблице, чтобы получить по его значению символ ASCII. Этот способ облегчает обработку разных клавиатур, существующих в различных странах. Наличие информации как о нажатии, так и об отпускании клавиш позволяет использовать любую клавишу в качестве регистра, так как операционной системе известно, в каком порядке нажимались и отпускались клавиши.

Косвенность используется также при выводе данных. Программы могут выводить на экран символы ASCII, но эти символы могут интерпретироваться как индексы в таблице, содержащей текущий отображаемый шрифт.

Элемент таблицы содержит растровое изображение символа. Такая форма косвенности позволяет отделить символы от шрифта.

Еще одним примером косвенности служит использование старших номеров устройств в UNIX. В ядре содержатся две таблицы: одна для блочных устройств и одна для символьных, — индексированные старшим номером устройства. Когда процесс открывает специальный файл, например /dev/hd0, система извлекает из i-узла информацию о типе устройства (блочное или символьное), а также старший и младший номера устройств и, используя их в качестве индексов, находит в таблице драйверов соответствующий драйвер. Такой вид косвенности облегчает реконфигурацию системы, так как программы имеют дело с символьными именами устройств, а не с фактическими именами драйверов.

Еще один пример косвенности встречается в системах передачи сообщений, указывающих в качестве адресата не процесс, а почтовый ящик. Таким образом достигается существенная гибкость (например, секретарша может принимать почту своего шефа).

В определенном смысле использование макросов, например,

#define PROC_TABLE_SIZE 256

также представляет собой одну из форм косвенности, поскольку программист может написать программу, не зная фактической величины таблицы. Считается хорошей

практикой давать символьные имена всем константам (иногда кроме -1, 0 и 1) и помещать их в заголовки с соответствующими комментариями.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Косвенность:

  1. Косвенные позитивные высказывания.
  2. АГРЕССИЯ КОСВЕННАЯ
  3. Похвала косвенная как хвалить не хваля
  4. Как воспринимает просьбу мужчина, если она выражена косвенно
  5. 4. Выражайтесь прямо.
  6. Статья 24. Умысел и его виды
  7. Уровень психотехнический (средств деятельности)
  8. Определение десятое
  9. Контрольные вопросы
  10. Престижный эффект
  11. ОГРАНИЧЕНИЯ ПРИ ЗАКЛЮЧЕНИИ ТРУДОВОГО ДОГОВОРА
  12. Статья 161. Нарушение равноправия граждан в зависимости от их расовой, национальной принадлежности или религиозных убеждений
  13. Основания
  14. Вопросы для самоконтроля 1.
  15. ВНУШЕНИЕ
  16. § 2. Формы участия государства в имущественном обороте
  17. СПОСОБЫ И МЕТОДЫ ПСИХОЛОГИЧЕСКОГО ВОЗДЕЙСТВИЯ.
  18. Распространенные ошибки при обращении с просьбой
  19. • изучения и оценки восприятия, понимания ситуации, события и последствий своего поведения.
  20. Основания