ЗАНЯТИЕ 5. «Режимы пакетной обработки и разделения времени»

Чтобы лучше понять, каковы особенности ОС для различ¬ных классов компьютерных систем и устройств, рассмотрим не¬сколько более подробно особенности этих устройств и обсудим со¬ответствующую специфику их операционных систем.

5.1 Особенности ОС для персональных компьютеров
Персональные компьютеры предназначены, как правило, для одного пользователя. Тем не менее, ОС для персональных ком¬пьютеров должна предусматривать режим мультипрограммирова¬ния (многозадачности), так как пользователям подчас удобнее вы¬полнять несколько заданий параллельно – например, набирать не¬который текст в редакторе, принимать электронную почту и одно¬временно печатать на принтере какие-либо документы. Кроме того, при работе в локальной сети возможен удаленный вход на компью¬тер других пользователей. То есть, ОС для персональных компью¬теров должна поддерживать также режим разделения времени.
Персональные компьютеры имеют разнообразный набор устройств ввода-вывода, работу с которыми должна поддерживать операционная система с помощью драйверов – низкоуровневых системных программ для управления этими устройствами. Для пользователя удобнее всего, если все необходимые драйверы встроены в операционную систему. Однако ситуация осложняется тем что драйверы устройств разрабатывает обычно фирма-разра¬ботчик соответствующего устройства — в англоязычной терминоло¬гии, Original Equipment Manufacturer (OEM),а не фирма-разработ¬чик ОС. Поэтому при выпуске и установке на компьютер новой ОС могут возникнуть проблемы с драйверами – какое-либо устройство новая ОС «не понимает». На практике, должно пройти не менее двух-трех лет эксплуатации новой ОС, прежде чем для нее появятся драйверы для всех используемых внешних устройств, хотя в по¬следнее время в этом отношении ситуация значительно улучшилась – новые ОС становятся все более «понятливыми» и имеют в своем составе огромные наборы драйверов.
Персональный компьютер имеет традиционные клавиатуру и мышь, обычно подключаемые через USB-порт, либо беспровод¬ные клавиатуру и мышь, блок управления которых также подклю¬чается через USB-порт. Портативный компьютер может иметь также встроенный манипулятор типа trackball (шарик для переме¬щения курсора мыши) или touchpad (плоская пластинка для этой же цели). К компьютеру подключен монитор: для настольного компь¬ютера – к порту VGA, для портативного – монитор встроен в ком¬пьютерную систему, но дополнительно может подключаться через порт VGA внешний монитор или мультимедийный проектор. К традиционным дополнительным внешним устройствам относится также принтер (подключается через порт USB, более старые модели – через так называемый параллельный порт,или LPT – аббревиа¬тура от Line PrinTer. Реже используется сканер – устройство для оцифровки бумажных изображений, например, подписанных или рукописных документов. Сканер может также подключаться через порт USB, однако некоторые модели сканеров подключаются через другой интерфейс – SCSI, используемый и для жестких дисков. Имеется внутренний жесткий диск (hard drive) емкостью 250 GB – 1 TB и более, подключаемый через интерфейс IDE (более старый) или SATA. Могут подключаться через порт USB также внешние накопители — flash-память, или «флэшки», имеющие миниатюрный размер и объем памяти до 128 гигабайт и более; ZIV drives и другие разновидности внешних жестких дисков, имеющие в настоящее время емкость до 1 терабайта. Операционная система должна обес¬печивать их использование как части компьютерной системы (например, на внешний ZIV-диск может быть даже установлено программное обеспечение, в том числе — другая операционная си¬стема). Для настольного компьютера в комплект входит устройство чтения и записи компакт-дисков в различных форматах — CD-ROM, CD-RW (с возможностью записи на CD); DVD-ROM/DVD-RW; DVD-RAM (последнее означает устройство с режимом непосред¬ственной записи на компакт-диск, как в память); BluRay – более современный формат компакт-дисков емкостью до 25 или 50 GB и др. Для ноутбука DVD-ROM, из соображений экономии веса и раз¬меров, может отсутствовать и должен подключаться, по шутливому выражению автора, «на веревочке» – через USB-порт. Весьма важ¬ным внешним устройством, особенно для портативного компью¬тера, является порт для подключения цифровой видеокамеры (IEEE 1394, или FireWire), более миниатюрный, чем USB. Он имеет дуп¬лексный режим работы, так что, например, перемотка видеоленты на видеокамере может запускаться программным путем с компью¬тера.
Наиболее важными свойствами ОС для персонального ком¬пьютера должны быть, конечно, простота и удобство в использова¬нии, дружественность к пользователю. Это достигается прежде всего, удобным и современным аппаратным и программным поль¬зовательским интерфейсом, например, интерфейсом типа multi-touch (с доступом непосредственно к экрану), ноутбуками типа Tablet PC (с возможностью поворота экрана и ввода информации прикосновением к экрану).
При разработке ОС для ПК используются те же технологии, которые применяются и в «больших» ОС (для mainframe-компьюте¬ров). Однако, поскольку пользователь имеет персональный доступ к компьютеру, он часто не нуждается в каких-либо системных про¬граммах для оптимизации работы процессора или в улучшенных средствах защиты (последней, однако, не следует пренебрегать и отключать ее, так как на компьютер возможны сетевые атаки).
Как мы уже говорили, на одном и том же персональном компьютере могут быть установлены, при необходимости, две или более операционных системы — такой компьютер носит название double bootable system, и при его включении пользователю выдается начальное меню для уточнения, какую именно ОС требуется запу¬стить – boot loader (загрузчик ОС). Такое использование компью¬тера рекомендуется, например, для студентов, изучающих ОС и желающих попробовать новую операционную систему, либо изу¬чить другую уже известную, на которую до сих пор не хватало вре¬мени, — например, установить на одном компьютере Windows и Linux. Для установки второй ОС необходимо воспользоваться спе¬циальной утилитой (например, Partition Magic ) для выделения на диске для инсталляции новой ОС отдельного раздела (partition) – смежной области дисковой памяти, имеющей определенное обо¬значение, чаще всего – в виде латинской буквы.
Персональные компьютеры имеют сетевые адаптеры (сете¬вые карты) – устройства для подключения к локальной сети. Соот¬ветственно, ОС для персональных компьютеров имеют в своем со¬ставе драйверы сетевых адаптеров и пользовательский интерфейс для настройки подключения компьютера к локальной сети (об этом подробнее – в специальном разделе данного курса, посвященном сетям).

5.2 Параллельные компьютерные системы и особенности их ОС.

Параллельные компьютерные системы – это мультипро¬цессорные системы с несколькими непосредственно взаимодей¬ствующими процессорами. Классические примеры: из зарубежных компьютеров — CRAY, из отечественных – «Эльбрус»; из более со¬временных – компьютеры серии СКИФ. В настоящее время выпус¬каются мультипроцессорные рабочие станции — например, купив или получив в подарок настольный компьютер, Вы можете обна¬ружить в его составе два или даже четыре процессора. Соответ¬ственно, ОС должна обеспечивать реконфигурацию такой системы, подключение новых процессоров или удаление процессоров из си¬стемы, распараллеливание решения задачи на нескольких процес¬сорах и синхронизацию решающих ее параллельных процессов.
Среди параллельных компьютеров выделяются тесно свя¬занные (tightly coupled) системы, в которых процессоры разделяют общую память и таймер (такты); взаимодействие между ними про¬исходит через общую память.
Многоядерные (multi-core) компьютеры– компьютерные системы, основанные на тесно связанных друг с другом процессо¬рах ( ядрах ), находящихся в одном кристалле, разделяющих ассо¬циативную память (кэш) второго уровня и работающих на общей памяти.
Преимущества параллельной компьютерной системы:

  1. Улучшенная производительность ( throughput ) – очевидно, что распараллеливание алгоритма решения задачи может позволить уменьшить суммарное время ее решения;
  2. Экономичность – в параллельной системе ОС может пору¬чить часть работы другому процессору или ядру;
  3. Повышенная надежность – при сбое или отказе одного из процессоров ОС может переключить вычисления на другой процессор;
  4. «Дружественное» к пользователю снижение производи-тельности (graceful degradation) – если один из процессоров отказал и выведен из конфигурации, пользователь, при пра¬вильной организации компьютера и ОС, может даже не по¬чувствовать замедления вычислений
  5. Устойчивость к ошибкам (fail-soft system) – стабильная ра¬бота многопроцессорной системы при ошибке в аппаратуре или в программе.

5.3 Симметричные и асимметричные мультипроцессорные системы

Симметричная мультипроцессорная система — symmetric multiprocessing (SMP) – это многопроцессорная компьютерная си¬стема, все процессоры которой равноправны и используют одну и ту же копию ОС. Операционная система при этом может выпол¬няться на любом процессоре. В такой системе любому свободному процессору может быть поручено любое задание. Все процессоры используют общую память и общие дисковые ресурсы. Несколько процессов (или потоков) могут исполняться одновременно без су¬щественного нарушения производительности. Большинство совре¬менных ОС поддерживают архитектуру SMP. После инсталляции ОС (например, Linux) на симметричную мультипроцессорную си¬стему пользователь может заметить в меню boot loader, что факти¬чески на его компьютер установилась не одна, а две версии ОС – с поддержкой SMP и без нее.
Асимметричная мультипроцессорная система (asymmetric multiprocessing) – это многопроцессорная компьютер¬ная система, в которой процессоры специализированы по своим функциям. Каждому процессору дается специфическое задание; главный процессор (master processor) планирует работу подчинен¬ных процессоров (slave processors).В такой системе ОС, как пра¬вило, выполняется на одном определенном, закрепленном за ней, центральном процессоре. Подобная архитектура более типична для очень больших систем. Пример – система «Эльбрус», которая имела в своем составе, в зависимости от конфигурации, от одного до 10 центральных процессоров, от одного до четырех специализи¬рованных процессоров ввода вывода (ПВВ),от одного до четырех процессоров передачи данных (ППД).
Схема организации SMP-архитектуры компьютеров приве¬дена на рис.16.

Рис. 16. Схема организации SMP-архитектуры компьютеров

5.4 Распределенные компьютерные системы и особенности их ОС
В распределенной системе (distributed system) вычисления распределены между несколькими физическими процессорами (компьютерами), объединенными между собой в сеть.
Слабо связанная система (loosely coupled system) – рас¬пределенная компьютерная система, в которой каждый процессор имеет свою локальную память, а различные процессоры взаимодей¬ствуют между собой через линии связи – высокоскоростные шины, телефонные линии, беспроводную связь (Wi-Fi, EVDO, Wi-Max и др.).
Преимущества распределенных систем:

  1. Разделение (совместное использование) ресурсов: в распределенной системе различные ресурсы могут храниться на разных компьютерах. Нет необходимости дублировать программы или данные, храня их копии на нескольких ком¬пьютерах.
  2. Совместная загрузка (load sharing ): каждому компьютеру в распределенной системе может быть поручено определенное задание, которое он выполняет параллельно с выполнением другими компьютерами своих заданий.
  3. Надежность: при отказе или сбое одного из компьютеров распределенной системы его задание может быть перерас¬пределено другому компьютеру, чтобы сбой в минимальной степени повлиял или вовсе не повлиял на итоговый результат.
  4. Связь: в распределенной системе все компьютеры связаны друг с другом, так что, например, при необходимости возмо¬жен удаленный вход с одного компьютера на другой с целью использования ресурсов более мощного компьютера.
    В распределенной системе компьютеры связаны в сетевую инфраструктуру, которая может быть:
  5. локальной сетью (local area network — LAN);
  6. глобальной или региональной сетью (wide area network — WAN).
    По своей организации распределенные системы могут быть клиент-серверными (client-server) или одноранговыми (peer-to-peer) системами. В клиент-серверной системе определенные компьютеры играют роль серверов, а остальные – роль клиентов, пользующихся их услугами. Подобная организация распределенных систем наибо¬лее распространена, и мы рассмотрим ее подробнее. В одноранго¬вой распределенной системе все компьютеры равноправны.
    Структура клиент-серверной системы изображена на рис. 17.
Рис. 17. Структура клиент-сер¬верной системы

5.5 Виды серверов в клиент-серверных компьютерных системах
Клиент-серверная архитектура распределенных систем весьма широко распространена и поддержана операционными си¬стемами. Поэтому очень важно знать, какие виды и функции серве¬ров предлагают современные распределенные системы.
Файл-сервер (file server) – компьютер и программное обес¬печение, предоставляющие доступ к подмножеству файловых си¬стем, расположенных на дисках компьютера-сервера, другим ком¬пьютерам локальной сети (LAN). Пример – серверное программное обеспечение SAMBA (SMB – сокращение от Server Message Block) для ОС типа UNIX (Linux, FreeBSD, Solaris и т.д.), обеспечивающее доступ с Windows-компьютеров локальной сети к файловым систе¬мам UNIX-машин. Samba также реализована для платформы Macintosh / MacOS.
Сервер приложений (application server) – компьютер и про¬граммное обеспечение, предоставляющее вычислительные ресурсы (память и процессор) и необходимое окружение для удаленного запуска определенных классов (как правило, больших) приложений с других компьютеров локальной сети. Примеры серверов прило¬жений — WebSphere (IBM), WebLogic (BEA) – наилучшие из извест¬ных серверов приложений, работающих в Java Enterprise Edition (JEE).
Сервер баз данных (database server) – компьютер и про¬граммное обеспечение, предоставляющее доступ другим компью¬терам сети к базам данных, расположенным на компьютере-сер¬вере. Пример: серверное программное обеспечение для доступа к базам данных Microsoft SQL Server.
Веб-сервер (Web server) – компьютер и программное обес¬печение, предоставляющее доступ клиентам через WWW к Web-страницам, расположенным на компьютере-сервере. Пример: сво¬бодно распространяемый Web-сервер Apache.
Прокси-сервер – компьютер и программное обеспечение, являющиеся частью локальной сети и поддерживающие эффектив¬ное обращение компьютеров локальной сети к Интернету, филь¬трацию трафика, защиту от внешних атак. Proxy-сервер обычно встроен в операционную систему.
Сервер электронной почты – компьютер и программное обеспечение, выполняющие отправку, получение и «раскладку» электронной почты для компьютеров некоторой локальной сети. Могут обеспечивать также криптование почты (email encryption) – шифрование электронных писем перед отправкой адресатам из определенного сетевого домена (как правило, заказчику) и их де¬шифровку после получения от заказчика.
Серверный бэк-энд (Server back-end) – группа (пул) связан¬ных в локальную сеть серверных компьютеров, используемых вме¬сто одного сервера, в целях большей надежности и предоставления большего объема ресурсов. Другой термин, близкий к этому, — центр обработки данных (data center).Эти понятия особенно акту¬альны в связи со все более широким распространением облачных вычислений, являющихся, с этой точки зрения, наиболее современ¬ной реализацией клиент-серверной схемы взаимодействия.

5.6 Кластерные вычислительные системы и их ОС
Компьютерные кластеры весьма популярны для научных вычислений. Компьютеры в кластере, как правило, связаны между собой через быструю локальную сеть. Кластеризация позволяет двум или более системам использовать общую память. Кластериза¬ция обеспечивает высокую надежность. Различают компьютерные кластеры двух видов:
• асимметричная кластеризация (asymmetric clustering) – ор-ганизация компьютерного кластера, при которой один ком¬пьютер выполняет приложение, а остальные простаивают;
• cимметричная кластеризация (symmetric clustering) — организация компьютерного кластера, при которой все ма¬шины кластера исполняют одновременно различные части одного большого приложения.
Различают также:
• кластеры с высокоскоростным доступом (high-availability clusters) – компьютерные кластеры, обеспечивающие опти¬мальный доступ к ресурсам, предоставляемым компьютерами кластера, например, к базам данных;
• кластеры с балансировкой загрузки (load-balancing clusters) – компьютерные кластеры, которые имеют несколько вход¬ных компьютеров, балансирующих запросы (front-ends), рас¬пределяющих задания между компьютерами серверного back-end’а (серверной фермы).
Кластеры часто используются в учебных заведениях и в ис-следовательских центрах (например, CERN, Швейцария). Операци¬онные системы для кластеров: Windows 2003 for clusters; Windows 2008 High-Performance Computing.

5.7 Системы и ОС реального времени
Системы реального времени часто используются как управ¬ляющие устройства для специальных приложений, — например, для научных экспериментов; в медицинских системах, связанных с изображениями; системах управления в промышленности; системах отображения (display); системах управления космическими поле¬тами, АЭС и др. Для таких систем характерно наличие и выполне¬ние четко определенных временных ограничений (время реакции – response time; время наработки на отказ и др.).
Различаются системы реального времени видов hard real-time и soft real-time.
Hard real-time – системы – системы реального времени, в которых при нарушении временных ограничений может возникнуть критическая ошибка (отказ) управляемого ею объекта. Примеры: система управления двигателем автомобиля; система управления кардиостимулятором. В таких системах вторичная память ограни¬чена или отсутствует; данные хранятся в оперативной памяти (RAM) или постоянном запоминающем устройстве (ПЗУ, ROM). При использовании таких систем возможны конфликты с систе¬мами разделения времени, не имеющие места для ОС общего назначения. Выражаясь более простым языком, при работе подоб¬ных систем не допускаются прерывания; все необходимые данные для основного цикла работы системы должны предварительно быть загружены в память; процесс, выполняющий код такой системы, не должен подвергаться откачке на диск. ОС для таких систем обычно упрощены, вместо виртуальной памяти выделяется физическая, все другие виды виртуализации ресурсов исключены. Популярной практикой разработки ОС реального времени является практика разработки таких ОС на основе открытых исходных кодов ОС об¬щего назначения путем «отсечения всего лишнего». Однако при этом следует соблюдать осторожность. Автору приходилось кон¬сультировать разработчиков системы реального времени для «Эль¬бруса», которые использовали для своей системы низкоуровневую процедуру выделения физической памяти, но не учли ее возмож¬ных конфликтов с общей системой виртуальной памяти ОС Эль-брус; в результате выделяемая память иногда «портилась» … в ре¬зультате изменения связующей информации в списке областей сво¬бодной памяти, который использовался механизмом виртуальной памяти «Эльбруса».
Soft real-time – системы – системы реального времени, в ко¬торых нарушение временных ограничений не приводит к отказу управляемого ею объекта. Обычно это системы управления не¬сколькими взаимосвязанными системами с постоянно изменяю¬щейся ситуацией. Пример — система планирования рейсов на ком¬мерческих авиалиниях . В случае какой-либо задержки в работе та¬кой системы, в худшем случае, пассажирам некоторых рейсов при¬дется немного подождать в аэропорту, но никаких фатальных по¬следствий не будет. Подобные системы имеют ограниченную по¬лезность для промышленных систем управления и в робототехнике. Они также полезны в современных приложениях (например, для муль¬тимедиа и виртуальной реальности), требующих развитых возмож¬ностей ОС.

5.8 Карманные компьютеры (handhelds) и их ОС
К данному классу устройств, как уже отмечалось, относятся карманные персональные компьютеры (КПК), или Personal Digital Assistants (PDA), и мобильные телефоны. Особенности и проблемы данного класса компьютеров следующие:
• ограниченный объем памяти;
• относительно медленные процессоры: для мобильного устройства типично ожидание выполнения простейшей ко¬манды в течение нескольких секунд, что неудобно;
• маленький размер экрана мониторов (дисплеев), отсюда – необходимость в специализированном программном обеспе¬чении для поддержки GUI; например, в Java Micro Edition (JME) – версии Java для мобильных устройств – невозможно использовать удобные общие пакеты AWT и Swing для раз¬работки GUI; вместо них разработчику в JME предлагаются специализированные пакеты вида javax.microelectro-nics…lcdui, несовместимые со стандартным изданием Java (JSE), что делает код зависимым от типа устройства, а иногда – и от конкретных моделей мобильных телефонов, которые имеют разные размеры экранов;
• невысокая скорость связи через Интернет: например, GPRS-модем мобильного телефона обеспечивает связь примерно со скоростью dial-up – 3-5 килобайт в секунду;
• связь для передачи данных осуществляется через Bluetooth или IrDA (причем последний часто отсутствует); имеются не все необходимые порты: например, часто в мобильных устройствах отсутствует порт USB, т.е. для них нельзя ис¬пользовать «флэшки», что весьма неудобно, и приходится ис¬пользовать специальные сверхминиатюрные диски типа SmartMedia, для которых в настольных компьютерах не все¬гда имеются адаптеры для чтения.
Тем не менее, современные средства коммуникации (например, Wi-Fi) и совместимые с персональными компьютерами порты и внешние модули памяти начинают использоваться и на карманных и мобильных устройствах.
В операционных системах и другом системном программ¬ном обеспечении для карманных и мобильных устройств прихо¬дится учитывать все эти ограничения, в частности, ограниченный объем памяти. В связи с этим целый ряд удобных повседневных программистских возможностей приходится для мобильных устройств запрещать (например, в JME нет вещественной арифме¬тики).
Развитие концепций и возможностей ОС представлено на рис. 18.
На схеме хорошо видны аналогичные «волны» («витки») развития ОС — сначала для mainframe-компьютеров, затем – для ми¬никомпьютеров, для персональных и для карманных компьютеров. Каждая волна проходит в своем развитии определенные этапы. ОС развиваются от резидентных мониторов до поддержки пакетного режима (для ранних моделей компьютеров), затем – режима разде¬ления времени, многопользовательских и сетевых возможностей.

Рис. 19. Развитие концепций и возможностей ОС.

5.9 Вычислительные среды
В современном мире ИТ имеет место тенденция к интегра¬ции описанных выше устройств и их локальных сетей в вычисли¬тельные среды – интегрированные распределенные компьютерные системы для решения задач в различных проблемных областях. Вычислительные среды подразделяются на следующие виды:
• традиционные вычислительные среды – локальные и региональные сети, используемые в течение нескольких де¬сятков лет;
• Web-ориентированные вычислительные среды – вычисли¬тельные среды на основе Web-сервисов, характерные для настоящего времени, начиная с 1990-х гг.; к этому классу от¬носятся и среды для облачных вы¬числений;
• встроенные (embedded) вычислительные среды – вычисли¬тельные среды для специализированных устройств, напри¬мер, сети микропроцессоров, встроенных в элементы линии электропередач.
Все эти виды вычислительных сред должны адекватно об-служиваться операционными системами, в чем и состоят ближай¬шие задачи их разработки.

5.10 Облачные вычисления и ОС для облачных вычислений
Облачные вычисления ( сloud computing ) являются одним из наиболее популярных направлений развития ИТ. «Облако» (cloud) – это уже десятки лет используемая метафора для изобра¬жения сервисов, предоставляемых через Интернет или другую коммуникационную сеть (например, через ATM-сеть). Облачные вычисления – модель вычислений, основанная на динамически масштабируемых (scalable) и виртуализованных ресурсах (данных, приложениях, ОС и др.), которые доступны и используются как сервисы через Интернет и реализуются с помощью высокопроизво¬дительных центров обработки данных (data centers)
С точки зрения пользователей, существует совокупность «облаков» (общедоступные, корпоративных, частных и др.), предо¬ставляемых различными компаниями, для использования мощных вычислительных ресурсов, которых нет у индивидуального пользо¬вателя. Как правило, «облачные» сервисы платные. Из бесплатных назовем Windows Live (http://www.live.com).
Недостаток облачных вычислений в том, что пользователь оказывается полностью зависимым от используемого им «облака» (в котором доступны используемые им данные и программы) и не может управлять не только работой «облачных» компьютеров, но даже резервным копированием своих данных. В связи с этим воз¬никает целый ряд важных вопросов о безопасности облачных вы¬числений, сохранении конфиденциальности пользовательских дан¬ных и т.д.; далеко не все из них на данный момент решены.
Серьезной проблемой организации облачных вычислений с точки зрения аппаратуры центров обработки данных является эко¬номия электроэнергии и проблема распределения загрузки, так как облачные вычисления в каждом центре обработки данных имеют (или в ближайшем будущем будут иметь) миллионы удаленных пользователей.
Наиболее популярная «облачная» платформа – Microsoft Windows Azure (облачная ОС) и Microsoft Azure Services Platform (реализованная на основе Microsoft.NET). Windows Azure можно рассматривать как «ОС в облаке» Пользователю нет необходимости беспокоиться о ее инсталляции на его компьютере, который может не иметь для этого необходимых ресурсов. Все, что требуется, это иметь Web-браузер и минимальный пакет надстроек (plug-ins) для запуска и использования через браузер облачных сервисов.
В настоящее время все крупные компании (Microsoft, IBM, HP, Dell, Oracle и др.) разрабатывают свои системы облачных вы¬числений; имеется тенденция к интеграции этих корпоративных систем в единое доступное пользователю «облако».

Оставить комментарий

avatar
  Подписаться  
Уведомление о