Файл: Debian Таненбаум Бос.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 48037

Скачиваний: 190

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

12.5. Управление проектом   

1101

обеспечения. Воодушевленные собственным успехом, во второй раз разработчики 
включают в систему все погремушки и побрякушки, намеренно не включенные в пер-
вый выпуск. В результате система раздувается и ее производительность снижается. 
От этой неудачи команда разработчиков трезвеет и при выпуске третьей версии снова 
соблюдает осторожность.

Рис. 12.5. Проектирование программного обеспечения: а — традиционное поэтапное; б — аль-

тернативный метод создания работающей уже с первого дня системы

Это наблюдение отчетливо видно на примере пары систем CTSS — MULTICS. Опера-
ционная система CTSS была первой универсальной системой разделения времени, и ее 
успех был огромен, несмотря на минимальную функциональность системы. Создатели 
операционной системы MULTICS, преемницы CTSS, были слишком амбициозны, за 
что и поплатились. Сами идеи были неплохи, но новых функций добавилось слишком 
много, что привело к низкой производительности системы, страдавшей этим недугом 
в течение долгих лет и так и не получившей коммерческого успеха. Третьей в этой ли-
нейке была операционная система UNIX, разработчики которой проявили значительно 
бˆольшую осторожность и в результате добились существенно больших успехов.

12.5.4. Панацеи нет

Помимо книги «Мифический человеко-месяц», Брукс написал также статью «No 
Silver Bullet» (Панацеи нет ) (Brooks, 1987), получившую широкий резонанс. В ней он 
доказывал, что в ближайшие 10 лет ни одно средство, поисками которого в те времена 
занималось множество людей, не приведет к существенному (на порядок) увеличению 
производительности при создании программного обеспечения. Как показывает опыт 
последних лет, он был прав.

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


background image

1102  

 Глава 12. Разработка операционных систем 

12.6. Тенденции в проектировании 
операционных систем

В 1899 году Чарльз Дьюэл, возглавлявший тогда бюро патентов США, предложил 
тогдашнему президенту США Мак-Кинли ликвидировать патентное бюро (а также 
рабочее место Чарльза Дьюэла!), поскольку, как он писал, «все, что можно было изо-
брести, уже изобретено» (Cerf and Navasky, 1984). Тем не менее прошло всего несколько 
лет, и на пороге патентного бюро показался Томас Эдисон с заявками на электрические 
лампы, фонограф и кинопроектор. Дело в том, что мир все время меняется, и опера-
ционные системы должны постоянно адаптироваться под новые реалии. В этой главе 
упоминался ряд тенденций, которые сегодня должны учитывать разработчики опера-
ционных систем.

Чтобы избежать путаницы: разработки в области оборудования, упоминаемые далее, 
уже существуют. Нет только программного обеспечения операционных систем для 
их эффективного использования. Обычно когда появляется новое оборудование, все 
просто накидывают на него старое программное обеспечение (Linux, Windows, и т. д.) 
и считают, что все в порядке. В конечном счете ничего хорошего в этом нет. Для 
работы с передовым оборудованием требуется передовое программное обеспечение. 
Придумать его — задача для ученых, занимающихся компьютерными технологиями, 
студентов соответствующего профиля или профессионалов в области информаци-
онных технологий.

12.6.1. Виртуализация и облако

Виртуализация относится к тем идеям, которые постоянно витают в воздухе. Впер-
вые она была реализована в 1967 году на базе IBM CP/CMS, а теперь вернулась 
уже на платформе x86. Гипервизоры, взаимодействующие непосредственно с обо-
рудованием (рис. 12.6), работают уже на многих компьютерах. Гипервизор создает 
множество виртуальных машин, обладающих собственными операционными систе-
мами. Это явление уже рассматривалось в главе 7, и, похоже, у него есть хорошие 
перспективы на будущее. В наши дни многие компании подхватывают эту идею, 
виртуализируя и другие ресурсы. Например, повышенный интерес проявляют 
к виртуализации управления сетевым оборудованием. Этот интерес идет еще даль-
ше — к вопросам запуска управления сетями в облаке. Кроме того, поставщики 
и исследователи ведут постоянную работу по совершенствованию гипервизоров по 
ряду показателей, делая их меньше и быстрее, а также повышая их гарантируемые 
изоляционные свойства.

Рис. 12.6. Гипервизор, работающий с четырьмя 

виртуальными машинами


background image

12.6. Тенденции в проектировании операционных систем   

1103

12.6.2. Многоядерные микропроцессоры

Возникает вполне очевидный вопрос: что со всеми этими ядрами делать? Если запущен 
популярный сервер, обрабатывающий тысячи клиентских запросов в секунду, ответ 
может быть относительно простым. Например, можно решить выделить по ядру на 
каждый запрос. Если предположить, что ситуации с блокировками будут возникать 
не слишком часто, это может сработать. Ну а что делать со всеми этими ядрами на 
планшетных компьютерах?

Есть и еще один вопрос: какого типа ядра нам нужны? Суперскалярные ядра с глубо-
кой конвейеризацией с предполагаемой выдающейся производительностью спекуля-
тивных вычислений на высоких тактовых частотах могут великолепно себя проявить 
при выполнении последовательного кода. Но не слишком подойдут, если в работе 
прослеживается большой объем параллельных вычислений. Многие приложения 
лучше себя чувствуют с небольшими и простыми ядрами, если получают их в большом 
количестве. Некоторые специалисты ратуют за гетерогенные мультиядра, но возникает 
тот же самый вопрос: какие именно ядра, в каком количестве и с какими скоростями 
работы? И это мы даже не упомянули о вопросах работы операционной системы и всех 
ее приложений. Будет ли операционная система работать на всех ядрах или только на 
некоторых из них? Будет ли один или несколько сетевых комплектов? Какой объем 
совместно используемых ресурсов понадобится? Будут ли конкретные ядра выделяться 
конкретным функциям операционной системы (например, сетевому комплекту или 
комплекту хранения данных)? Если будут, то станут ли эти функции тиражироваться 
для лучшей масштабируемости?

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

12.6.3. Операционные системы с большим 
адресным пространством

По  мере того как на смену 32-разрядным машинам приходят 64-разрядные, становится 
возможным главное изменение в строении операционных систем. 32-разрядное адрес-
ное пространство на самом деле не так уж велико. Если попытаться разделить 2

32

 байт 

на всех жителей Земли, то каждому достанется менее одного байта. В то же время 2

64

 

примерно равно 2 · 10

19

. При этом в 64-разрядном адресном пространстве каждому 

жителю планеты можно выделить фрагмент размером 3 Гбайт.

Что можно сделать с адресным пространством в 2 · 10

19

 байт? Для начала мы можем 

отказаться от концепции файловой системы. Вместо этого все файлы можно постоянно 
хранить в памяти (виртуальной). В конце концов, в ней достаточно места для более 
чем миллиарда полнометражных фильмов, сжатых до 4 Гбайт.

Другая возможность заключается в использовании перманентных объектов. Объек-
ты могут создаваться в адресном пространстве и храниться в нем до тех пор, пока не 
будут удалены все ссылки на объект, после чего сам объект автоматически удаляется. 
Такие объекты будут сохраняться в адресном пространстве даже после выключения 
и перезагрузки компьютера. Чтобы заполнить все 64-разрядное адресное пространство, 


background image

1104  

 Глава 12. Разработка операционных систем 

нужно создавать объекты со скоростью 100 Мбайт/с в течение 5000 лет. Разумеется, 
для хранения такого количества данных потребуется очень много дисков, но впервые 
в истории ограничивающим фактором стали физические возможности дисков, а не 
адресное пространство.

При большом количестве объектов в адресном пространстве становится интересно 
позволить нескольким процессам работать одновременно в одном адресном простран-
стве, чтобы упростить совместное использование объектов. Применение такой схемы, 
разумеется, приведет к появлению операционных систем, сильно отличающихся от 
существующих в настоящий момент. Еще один системный аспект, который придется 
пересмотреть при введении 64-разрядных адресов, — это виртуальная память. При 
2

64

 байт виртуального адресного пространства и восьмикилобайтных страницах у нас 

будет 2

51

 страниц. Работать с обычными таблицами страниц такого размера будет не-

просто, поэтому потребуется другое решение. Возможно использование инвертирован-
ных таблиц страниц, однако предлагались и другие идеи (Talluri et al., 1995). В любом 
случае, появление 64-разрядных операционных систем создает новую большую область 
исследований.

12.6.4. Беспрепятственный доступ к данным 

На заре развития вычислительной техники существовала значительная разница между 
той и этой машинами. Если данные были на этой машине, получить к ним доступ с той 
машины было невозможно, если только они не были на нее предварительно перене-
сены. Кроме того, если у вас имелись данные, вы не могли ими воспользоваться, пока 
не было установлено соответствующее программное обеспечение. Но эта модель из-
менилась.

В наши дни пользователи ожидают, что можно получить доступ к большинству дан-
ных из любых мест и в любое время. Как правило, это достигается хранением данных 
в облачных структурах с использованием таких служб хранения данных, как Dropbox, 
GoogleDrive, iCloud и SkyDrive. Все хранящиеся там файлы могут быть доступны 
с любого устройства, имеющего сетевое подключение. Более того, программы для до-
ступа к данным зачастую также находятся в облачном хранилище, поэтому вам даже 
не нужно иметь их где-либо установленными. Это позволяет людям читать и изменять 
файлы текстового процессора, электронных таблиц и презентаций, используя смартфон 
в любом, даже самом необычном месте. Все это обычно выдается за прогресс.

Чтобы добиться абсолютной беспрепятственности, требуется немало скрытых от глаз 
хитроумных системных решений. Например, что делать, если нет сетевого подключе-
ния? Разумеется, не хотелось бы, чтобы работа людей прерывалась. Также понятно, 
что можно поместить изменения в локальный буфер и обновить основной документ 
при восстановлении подключения, но как быть, если на многих устройствах были про-
изведены конфликтующие друг с другом изменения? При совместном использовании 
данных эта проблема возникает довольно часто, но она может проявляться даже при 
единственном пользователе. Более того, если файл имеет большой размер, не хотелось 
бы долго ждать, пока к нему будет открыт доступ. Ключевыми вопросами здесь вы-
ступают кэширование, предварительная загрузка и синхронизация. У существующих 
сегодня операционных систем работа по объединению нескольких машин все еще 
имеет ряд существенных препятствий. И мы, конечно же, можем исправить ситуацию 
в этой области.


background image

12.6. Тенденции в проектировании операционных систем   

1105

12.6.5. Компьютеры с автономным питанием

Мощные персональные компьютеры  с 64-разрядным адресным пространством, под-
ключением к высокоскоростной сети, несколькими процессорами и высококаче-
ственными изображением и звуком теперь стали стандартом для настольных систем 
и быстро занимают область ноутбуков, планшетных компьютеров и смартфонов. Если 
эта тенденция сохранится, то чтобы обеспечить все эти запросы, их операционные си-
стемы должны будут существенно отличаться от сегодняшних систем. Кроме того, они 
должны будут выдерживать баланс энергопотребления и поддержания приемлемого 
температурного режима устройства. Тепловыделение и энергопотребление являются 
одними из наиболее важных проблем даже в компьютерах высокого класса. Но еще 
более быстро развивающийся сегмент рынка составляют компьютеры с автономным 
питанием, к которым относятся ноутбуки, планшеты, дешевые нетбуки и смартфоны. 
Большинство из них поддерживают беспроводное соединение с внешним миром. Для 
них нужны операционные системы, отличающиеся от операционных систем, разра-
ботанных для устройств высокого класса, меньшими размерами, большей скоростью, 
гибкостью и большей надежностью. Многие из этих устройств сейчас основаны на 
традиционных операционных системах, таких как Linux, Windows и OS X, но с суще-
ственными изменениями. Кроме того, для управления набором радиосредств в них 
часто используются решения на основе микроядер и гипервизоров.

Эти операционные системы должны лучше нынешних систем справляться с опера-
циями полного подключения (по проводам), слабого подключения (по беспроводной 
связи) и автономной работой, включая накопление данных перед отключением от 
сети и проверку непротиворечивости данных перед новым подключением. В будущем 
им также придется лучше нынешних систем справляться с проблемами мобильности 
(например, находить лазерный принтер, регистрироваться на нем и посылать ему файл 
по радио). Особое значение для этих систем имеет управление энергопотреблением, 
включая продолжительные диалоги между операционной системой и приложениями 
о том, сколько осталось энергии в батареях и как ее лучше всего использовать. Также 
может стать важной динамическая адаптация приложений к крошечным экранам. 
Наконец, для новых режимов ввода и вывода, включая ввод рукописного текста и ре-
чевой ввод, в операционной системе могут потребоваться новые методы, позволяющие 
повысить качество. Скорее всего, операционная система портативного беспроводного 
управляемого голосом компьютера с автономным питанием будет существенно отли-
чаться от системы, работающей на 64-разрядном настольном компьютере с 16-ядерным 
центральным процессором с гигабитным оптоволоконным сетевым подключением. 
И разумеется, будет бесчисленное множество гибридных машин, имеющих собствен-
ные требования.

12.6.6. Встроенные системы

Последняя область, в которой будут плодиться и размножаться новые операционные 
системы, — это встроенные системы . Операционные системы в стиральных машинах, 
микроволновых печах, куклах, радиоприемниках, MP3-проигрывателях, видеокамерах, 
лифтах и кардиостимуляторах будут отличаться от всех перечисленных ранее и, скорее 
всего, друг от друга. Каждая из них должна быть тщательно «скроена» под конкретное 
приложение, так как маловероятно, что кому-либо придет в голову засунуть карту 
PCIe в кардиостимулятор, чтобы превратить его в контроллер лифта. Поскольку во