Добавлен: 29.10.2018
Просмотров: 48176
Скачиваний: 190
476
Глава 5. Ввод и вывод информации
Когда будет близка к истощению последняя батарея, операционная система должна
предупредить пользователя, а затем осуществить последовательное выключение, га-
рантируя, к примеру, что файловая система не получит повреждений.
Интерфейс с драйверами устройств
У ряда операционных систем имеется совершенный механизм для осуществления управ-
ления электропитанием, который называется ACPI (Advanced Configuration and Power
Interface — усовершенствованный интерфейс конфигурирования системы и управления
энергопитанием). Операционная система может отправлять любому подчиненному
драйверу команды, требующие от него отчета о совместимости его устройств и их те-
кущих состояниях. Это свойство приобретает особую важность в сочетании с режимом
«включай и работай» (plug and play), потому что после запуска операционная система
даже не знает, какие устройства имеются в компьютере, не говоря уже об их свойствах
относительно энергопотребления или возможности управления электропитанием.
Она также может посылать команды драйверам, приказывая им снизить уровень энер-
гопотребления управляемых ими устройств (разумеется, на основе ранее изученных
возможностей). Есть также движение и в другом направлении. В частности, когда
устройство вроде клавиатуры или мыши обнаруживает пользовательскую активность
после периода бездействия, оно сигнализирует системе о необходимости вернуться
к нормальному режиму работы.
5.8.2. Роль прикладных программ
До сих пор мы рассматривали способы, с помощью которых операционная система
может снизить энергопотребление различных устройств. Но существует и другой
подход: предписать программам снизить энергопотребление, даже если это влечет за
собой ухудшение юзабилити (лучше снизить его качество, чем не предоставить вообще
никакой возможности восприятия, когда сядет батарея и экран перестанет светиться).
Обычно такая информация передается, когда степень разряженности батареи преодоле-
ет некое пороговое значение. Тогда программа должна решить, что ей следует сделать:
снизить производительность, чтобы продлить жизнь батареи, или поддерживать про-
изводительность на том же уровне, рискуя остаться без питания.
И тут возникает вопрос: как именно программа может снизить свою производитель-
ность, чтобы сэкономить энергию? Этот вопрос изучали Флинн и Сатьянарайанан
(Flinn and Satyanarayanan, 2004). Они привели четыре примера, показывающие, как
снижение производительности может сэкономить электроэнергию. Давайте их рас-
смотрим.
В данном исследовании информация представлена пользователю в различных формах.
Когда производительность не снижена, информация представляется в лучшем виде.
При снижении производительности качество (четкость) информации, предоставляемой
пользователю, ухудшается по сравнению с тем, каким оно могло бы быть. Примеры
будут рассмотрены чуть позже.
Чтобы замерить потребление электроэнергии, Флинн и Сатьянарайанан изобрели
программное средство под названием PowerScope, которое создавало профиль энер-
гопотребления программы. Чтобы воспользоваться этой программой, компьютер
должен быть подключен к внешнему источнику питания через управляемый про-
5.9. Исследования в области ввода-вывода данных
477
граммой цифровой мультиметр. Используя мультиметр, программа могла считывать
количество миллиампер, поступающих от источника питания, и таким образом опре-
делять мгновенную мощность, потребляемую компьютером. PowerScope периодически
снимал показания счетчика команд и потребления электроэнергии и записывал эти
данные в файл. После завершения работы программы этот файл подвергался анализу,
показывая потребление энергии каждой процедурой. Эти измерения легли в основу
их наблюдений. Также использовались измерения экономии электроэнергии аппарат-
ными средствами, служившие основой для измерения экономии, получаемой за счет
снижения производительности.
Первой программой, подвергшейся измерениям, был видеоплеер. В неухудшенном режи-
ме он проигрывал 30 кадров в секунду при полном разрешении и в цвете. Одной из форм
ухудшения был отказ от цветовой информации и показ видео в черно-белом варианте.
Второй формой ухудшения было уменьшение частоты кадров, приводившее к мерцанию
и рывкам. Еще одной формой ухудшения было уменьшение количества пикселов в обо-
их направлениях либо снижением пространственного разрешения, либо уменьшением
отображаемой картинки. Предпринятые меры позволили сэкономить до 30 % энергии.
Второй была программа распознавания речи. Она проводила оцифровку сигнала
с микрофона. Полученная информация могла либо анализироваться на ноутбуке, либо
отправляться по радиоканалу для анализа на стационарном компьютере. При втором
варианте экономилась энергия на работе центрального процессора, но затрачивалась
энергия на работу радиоканала. Ухудшение происходило за счет использования менее
объемного словаря и упрощенной акустической модели. Выигрыш составил около 35 %.
В качестве следующего примера была взята программа просмотра карты, которая
получала карту по радиоканалу. Ухудшение заключалось либо в кадрировании карты
в меньшем разрешении, либо в предписании удаленному серверу пропускать мелкие
дороги, чтобы передавать меньшее количество бит. Здесь тоже был достигнут выигрыш
примерно в 35 %.
Четвертый эксперимент касался передачи JPEG-изображений веб-браузеру. Стандарт
JPEG допускает использование различных алгоритмов, что позволяет выбирать между
качеством изображения и размером файла. Здесь выгода составила в среднем лишь 9 %.
Итак, в целом, эксперименты показали, что если согласиться с некоторым ухудшением
качества, пользователь при одном и том же заряде батарей может добиться более про-
должительной работы.
5.9. Исследования в области
ввода-вывода данных
По вопросам ввода-вывода проводится большое количество исследований. Часть из
них сосредоточены на конкретных устройствах, а не на общих проблемах в этой сфере.
Другие работы сконцентрированы на всей инфраструктуре ввода-вывода. Например,
архитектура Streamline нацелена на предоставление ввода-вывода, приспособленного
под приложение, которое минимизирует издержки на копирование, переключение
контекста, отправку сигналов и неэффективное использование кэша и TLB (DeBruijn
et al., 2011). Она опирается на понятия о Beltway Buffers, усовершенствованных кру-
говых буферах, являющихся более эффективными средствами, чем существующие
системы буферирования (DeBruijn and Bos, 2008). Streamline особенно эффективна
478
Глава 5. Ввод и вывод информации
для высокотребовательных сетевых приложений. Есть и еще одна сетевая архитекту-
ра ввода-вывода, Megapipe (Han et al., 2012), предназначенная для рабочих нагрузок,
ориентированных на обмен сообщениями. Она создает двунаправленные каналы для
каждого ядра между ядром и пользовательским пространством, на которые системы на-
слаивают абстракции, подобные облегченным сокетам. Эти сокеты не обладают полной
совместимостью с POSIX, поэтому для получения преимуществ от более эффективного
ввода-вывода приложения нуждаются в адаптации.
Зачастую целью исследований служит повышение тем или иным образом произво-
дительности конкретного устройства. Примером могут послужить дисковые системы.
Неизменной популярностью пользуется область исследования алгоритмов планирова-
ния перемещения блока головок. Иногда усилия концентрируются на повышении про-
изводительности (Gonzalez-Ferez et al., 2012; Prabhakar et al., 2013; Zhang et al., 2012b),
а иногда основное внимание уделяется снижению энергопотребления (Krish et al., 2013;
Nijim et al., 2013; Zhang et al., 2012a). С ростом популярности объединения серверов
с использованием виртуальных машин актуальность приобрела тема планирования ис-
пользования дисков для виртуализированных систем (Jin et al., 2013; Ling et al., 2012).
Но не все темы отличаются новизной. Большое внимание уделяется таким старым
приемам резервирования, как RAID (Chen et al., 2013; Moon and Reddy, 2013; Timcenko
and Djordjevic, 2013), а также твердотельным накопителям (Dayan et al., 2013; Kim et
al., 2013; Luo et al., 2013). На теоретическом фронте некоторые исследователи уделяют
внимание моделированию дисковых систем с целью лучшего понимания их произво-
дительности под различными рабочими нагрузками (Li et al., 2013b; Shen and Qi, 2013).
Что же касается устройств ввода-вывода, то в центре внимания находятся не только
диски. Еще одной ключевой областью исследований, относящейся к вводу-выводу,
является сетевой обмен данными. В число тем исследований входят энергопотребле-
ние (Hewage and Voigt, 2013; Hoque et al., 2013), работа сетей в интересах центров об-
работки данных (Haitjema, 2013; Liu et al., 2103; Sun et al., 2013), повышение качества
обслуживания (Gupta, 2013; Hemkumar and Vinaykumar, 2012; Lai and Tang, 2013)
и производительности (Han et al., 2012; Soorty, 2012).
Учитывая большое количество ноутбуков, используемых учеными, работающими в об-
ласти компьютерных наук, и весьма незначительное время работы аккумуляторных
батарей на многих ноутбуках, неудивительно, наверное, что огромный интерес вы-
зывают программные технологии сокращения энергопотребления. Среди конкретных
рассматриваемых тем встречаются сбалансированность тактовой частоты различных
ядер для достижения приемлемой производительности без необоснованных энерго-
затрат (Hruby 2013), потребление энергии и качество обслуживания (Holmbacka et
al., 2013), оценка энергопотребления в режиме реального времени (Dutta et al., 2013),
предоставление служб операционной системы для управления энергопотреблением
(Weissel, 2012), изучение энергетических затрат на обеспечение безопасности (Kabriand
Seret, 2009) и планирование при воспроизведении мультимедиа (Wei et al., 2010).
Но ноутбуками интересуются далеко не все исследователи. Некоторые из них мыслят
шире и желают сэкономить мегаватты в центрах обработки данных (Fetzer and Knauth,
2012; Schwartz et al., 2012; Wang et al., 2013b; Yuan et al., 2012).
На другом полюсе спектра исследований очень актуальной является тема энергопо-
требления в сетях датчиков (Albath et al., 2013; Mikhaylov and Tervonen, 2013; Rasaneh
and Banirostam, 2013; Severini et al., 2012).
5.10. Краткие выводы
479
Как ни удивительно, но предметом исследований до сих пор является скромный тай-
мер. Для предоставления высокого разрешения в некоторых операционных системах
таймер запускается на частоте 1000 Гц, что приводит к существенным издержкам.
Избавление от этих издержек также является темой исследований (Tsafir et al., 2005).
Аналогично этому исследовательские группы по-прежнему обеспокоены задержка-
ми при обработке прерываний, особенно в области операционных систем реального
времени. Поскольку такие системы зачастую встроены в весьма ответственные узлы
(например, в системы рулевого управления и торможения), допущение прерываний
только в весьма специфические приоритетные моменты позволяет системе контроли-
ровать возможные чередования и разрешает использовать для повышения надежности
формальную верификацию (Blackham et al., 2012).
Также по-прежнему весьма активно проводятся исследования в области драйверов
устройств. Многие сбои операционных систем вызываются некачественными драй-
верами устройств. В Symdrive авторы представили среду тестирования драйверов
устройств без фактического обращения к устройствам (Renzelmann et al., 2012).
В качестве альтернативного подхода в еще одной работе (Rhyzik et al., 2009) показан
способ автоматического создания драйверов устройств на основе спецификаций при
существенном снижении вероятности допущения ошибок.
Также исследователей интересует тема тонких клиентов, особенно мобильных
устройств, подключенных к облаку (Hocking, 2011; Tuan-Anh et al., 2013). И наконец,
имеется ряд статей на весьма необычные темы, например по изучению сооружений
в качестве больших устройств ввода-вывода (Dawson-Haggerty et al., 2013).
5.10. Краткие выводы
Ввод-вывод данных, несмотря на часто проявляемое к этой теме пренебрежительное
отношение, играет весьма важную роль. С вводом-выводом связана довольно суще-
ственная часть любой операционной системы. Ввод-вывод может осуществляться
одним из трех способов. Во-первых, существует программный способ ввода-вывода,
при котором центральный процессор занимается вводом или выводом каждого байта
или слова и пребывает в цикле ожидания, пока сможет получить или отправить сле-
дующую порцию данных. Во-вторых, существует ввод-вывод, управляемый прерыва-
ниями, при котором центральный процессор инициирует передачу символа или слова
и переходит к решению каких-нибудь других задач, пока не поступит прерывание,
сигнализирующее о завершении ввода-вывода. В-третьих, существует прямой доступ
к памяти — DMA, при котором отдельная микросхема полностью управляет передачей
блока данных, выдавая прерывание только тогда, когда будет передан весь блок.
Структура ввода-вывода может состоять из четырех уровней: процедур обработки пре-
рываний, драйверов устройств, программ ввода-вывода, не зависящих от конкретных
устройств и библиотек ввода-вывода, и программ спулинга, работающих в пользова-
тельском пространстве. Драйверы устройств учитывают особенности работы устройств
и предоставляют единообразные интерфейсы для всех остальных компонентов опера-
ционной системы. Программы, не зависящие от конкретных устройств, занимаются
буферизацией и отправкой отчетов об ошибках.
Диски бывают разных типов: магнитные диски, RAID-массивы, флеш-накопители
и оптические диски. На вращающихся дисках алгоритм планирования перемещения
480
Глава 5. Ввод и вывод информации
блока головок может использоваться для повышения производительности работы
диска, но присутствие виртуальной геометрии усложняет решение этой задачи. За
счет образования пары из двух дисков можно создать стабильное хранилище данных,
обладающее рядом полезных свойств.
Часы используются для отслеживания фактического времени, ограничения времени
работы процессов, обслуживания сторожевых таймеров и производства подсчетов.
У символьно-ориентированных терминалов существует множество проблем отно-
сительно специальных символов, которые могут содержаться во входных данных,
и специальных эскейп-последовательностей, которые могут находиться в выходных
данных. Данные могут вводиться в режиме без обработки и в режиме с обработкой
в зависимости от того, какая степень управления входными данными нужна программе.
Эскейп-последовательности в выходных данных управляют перемещениями курсора
и выполняют вставку и удаление текста на экране.
Многие UNIX-системы используют систему X Window System в качестве основы поль-
зовательского интерфейса. Она состоит из программ, которые собраны в специальные
библиотеки, выдающие команды на вывод графической информации, и X-сервера,
который отображает информацию на дисплее.
Многие персональные компьютеры используют для формирования выходных дан-
ных графические интерфейсы пользователя — GUI, которые основаны на WIMP-
парадигме: Window — окна, Icons — значки, Menus — меню и Pointing device — ука-
зывающие устройства. Программы, основанные на использовании GUI-интерфейса,
управляются, как правило, событиями. События, связанные с клавиатурой, мышью
и другими устройствами, посылаются программе для обработки сразу же после их
возникновения. В UNIX-системах GUI-интерфейсы почти всегда работают поверх
X-системы.
Тонкие клиенты имеют ряд преимуществ над стандартными персональными компью-
терами, наиболее часто выраженных в простоте и меньшем уровне обслуживания.
И наконец, управление электропитанием является очень важным вопросом для теле-
фонов, планшетов и ноутбуков из-за ограниченного срока работы от аккумуляторных
батарей, а для настольных компьютеров и серверных машин — из-за счетов на оплату
электроэнергии, выставляемых организациям. Операционная система может приме-
нить различные технологии для уменьшения энергопотребления. Программы также
могут внести свою лепту, пожертвовав некоторыми качественными показателями ради
продления срока работы от аккумуляторной батареи.
Вопросы
1. Прогресс в технологии производства микросхем позволил поместить весь контрол-
лер, включая всю логику доступа к шине, на недорогой чип. Как это повлияло на
модель, показанную на рис. 1.6?
2. Возможно ли с учетом скоростей, указанных в табл. 5.1, проводить оцифровку до-
кумента на сканере и передавать его по сети стандарта 802.11g на полной скорости?
Обоснуйте ответ.
3. На рис. 5.2, б показан один из способов организации ввода-вывода, отображае-
мого на пространство памяти, рассчитанный на использование отдельных шин