Презентация Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)

Презентация Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)


Предлагаем ознакомиться с содержанием и скачать для редактирования или печати презентацию «Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)», содержащую 16 слайдов и доступную в формате ppt. Размер файла доклада составляет 246.47 KB

Просмотреть и скачать

Слайды и текст этого доклада

Билет № 8 1 Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. По
Рис.1 Билет № 8 1 Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)
Поток данных (англ. stream) в программировании — абстракция, используемая для чтения или записи файл
Рис.2 Поток данных (англ. stream) в программировании — абстракция, используемая для чтения или записи файлов, сокетов и т. п. в единой манере. Потоки являются удобным унифицированным программным интерфейсом для чтения или записи файлов (в том числе специальных и, в частности, связанных с устройствами), сокетов и передачи данных между процессами. Поддержка потоков включена в большинство языков программирования и едва ли не во все современные (на 2008 год) операционные системы. При запуске процесса ему предоставляются предопределённые стандартные потоки. Возможность перенаправления потоков позволяет связывать различные программы, и придаёт системе гибкость, являющуюся частью философии Unix. Абстракция потока особенно важна в языке программирования Си, где он представляет собой источник ввода и/или вывода данных, обычно байтов, связанный с файлом,устройством, либо другим процессом. Работа с потоками перенесена во многие другие языки: *C++: iostream из стандартной библиотеки C++. *Языки платформы . NET Framework (например, C#): Base Class Library, пространство имен System. IO.
Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 90
Рис.3 Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д. Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.
Создание процесса Простейшей операционной системе (например, внутри холодильника или магазина для пр
Рис.4 Создание процесса Простейшей операционной системе (например, внутри холодильника или магазина для продажи газированной воды) не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства. В более сложных системах надо создавать новые процессы. Обычно они создаются: 1. При запуске ОС, 2. При появлении запроса на создание процесса — происходит в случае, если работающий процесс создает новый процесс. Завершение процесса Минимум 2 этапа завершения: 1. Процесс удаляется из всех очередей планирования, т. е. ОС больше не планирует выделение каких-либо ресурсов процессу 2. Сбор статистики о потреблённых процессом ресурсах с последующим удалением его из памяти Причины завершения процесса: 1. Обычный выход 2. Выход по исключению или ошибке 3. Недостаточный объем памяти 4. Превышение лимита отведённого программе времени 5. Выход за пределы отведённой области памяти 6. Неверная команда (данные интерпретируются как команды) 7. Ошибка защиты 8. Завершение родительского процесса 9. Ошибка ввода/вывода 10. Вмешательство оператора
Билет № 8 2 Открытый интерфейс доступа к базам данных - ODBC. (Архитектура, функции ODBC. Понятие ис
Рис.5 Билет № 8 2 Открытый интерфейс доступа к базам данных - ODBC. (Архитектура, функции ODBC. Понятие источника данных. Схема доступа к источнику данных и использованием ODBC API)
ODBC (англ. Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, ра
Рис.6 ODBC (англ. Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификаций Call Level Interface (CLI), который разрабатывался организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы. В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных было необходимо написать свой код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки источникам данных различных типов. Этот интерфейс был назван Open Database Connectivity, или открытый механизм взаимодействия с базами данных. C помощью ODBC прикладные программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками. Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта. Приложения используют эти функции, реализованные в соответствующем конкретному источнику данных драйвере, для унифицированного доступа к различным источникам данных. MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным процедурным API. Вместо создания простой оболочки процедурного API разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных. Основа ODBC Интерфейс ODBC (Open Database Connectivity) был разработан фирмой Microsoft как открытый интерфейс доступа к базам данных. Он предоставляет унифицированные средства взаимодействия прикладной программы, называемой клиентом (или приложением-клиентом), с сервером - базой данных. В основу интерфейса ODBC были положены спецификация CLI-интерфейса (Call-Level Interface), разработанная X/Open, и ISO/IEC для API баз данных, а также язык SQL (Structured Query Language) как стандарт языка доступа к базам данных. Интерфейс ODBC проектировался для поддержки максимальной интероперабельности приложений, которая обеспечивает унифицированный доступ любого приложения, использующего ODBC, к различным источникам данных. Так, если приложение, соответствующее стандарту ODBC и SQL, первоначально разрабатывалось для работы с базой данных Microsoft Access, а затем таблицы этой базы были перенесены в базу данных Microsoft SQL Server или базу данных Oracle, то приложение сможет и дальше обрабатывать эти данные без внесения дополнительных изменений. Для взаимодействия с базой данных приложение-клиент вызывает функции интерфейса ODBC, которые реализованы в специальных модулях, называемых ODBC-драйверами. Как правило, ODBC-драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может поддерживать несколько ODBC-драйверов. При установке на компьютер любого SQL-сервера (базы данных, поддерживающей один из стандартов языка SQL, например, SQL-92) автоматически выполняется регистрация в реестре Windows и соответствующего ODBC-драйвера.
Функциональная модель ODBC Функциональная модель ODBC Интерфейс ODBC (Open Database Connectivity) бы
Рис.7 Функциональная модель ODBC Функциональная модель ODBC Интерфейс ODBC (Open Database Connectivity) был разработан фирмой Microsoft как открытый интерфейс доступа к базам данных. Он предоставляет унифицированные средства взаимодействия прикладной программы, называемой клиентом (или приложением-клиентом), с сервером - базой данных. В основу интерфейса ODBC были положены спецификация CLI-интерфейса (Call-Level Interface), разработанная X/Open, и ISO/IEC для API баз данных, а также язык SQL (Structured Query Language) как стандарт языка доступа к базам данных. Интерфейс ODBC проектировался для поддержки максимальной интероперабельности приложений, которая обеспечивает унифицированный доступ любого приложения, использующего ODBC, к различным источникам данных. Так, если приложение, соответствующее стандарту ODBC и SQL, первоначально разрабатывалось для работы с базой данных Microsoft Access, а затем таблицы этой базы были перенесены в базу данных Microsoft SQL Server или базу данных Oracle, то приложение сможет и дальше обрабатывать эти данные без внесения дополнительных изменений. Для взаимодействия с базой данных приложение-клиент вызывает функции интерфейса ODBC, которые реализованы в специальных модулях, называемых ODBC-драйверами. Как правило, ODBC-драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может поддерживать несколько ODBC-драйверов. При установке на компьютер любого SQL-сервера (базы данных, поддерживающей один из стандартов языка SQL, например, SQL-92) автоматически выполняется регистрация в реестре Windows и соответствующего ODBC-драйвера.
Архитектура ODBC Архитектура ODBC представлена четырьмя компонентами (рис. 1. 1): Приложение-клиент,
Рис.8 Архитектура ODBC Архитектура ODBC представлена четырьмя компонентами (рис. 1. 1): Приложение-клиент, выполняющее вызов функций ODBC. Менеджер драйверов, загружающий и освобождающий ODBC-драйверы, которые требуются для приложений-клиентов. Менеджер драйверов обрабатывает вызовы ODBC-функций или передает их драйверу. ODBC-драйвер, обрабатывающий вызовы SQL-функций, передавая SQL-серверу выполняемый SQL-оператор, а приложению-клиенту - результат выполнения вызванной функции. Источник данных, определяемый как конкретная локальная или удаленная база данных. Рис. 1. 1. Архитектура ODBC Основное назначение менеджера драйверов - загрузка драйвера, соответствующего подключаемому источнику данных, и инкапсуляция взаимодействия с различными типами источников данных посредством применения различных ODBC-драйверов. ODBC-драйверы, принимая вызовы функций, взаимодействуют с приложением-клиентом, выполняя следующие задачи: 1. управление коммуникационными протоколами между приложением-клиентом и источником данных; 2. управление запросами к СУБД; выполнение передачи данных от приложения-клиента в СУБД и из базы данных в приложение-клиент; 3. возвращение приложению-клиенту стандартной информации о выполненном вызове ODBC-функции в виде кода возврата; 4. поддерживает работу с курсорами и управляет транзакциями. Приложение-клиент одновременно может устанавливать соединения с несколькими различными источниками данных, используя разные ODBC-драйверы, а также несколько соединений с одним и тем же источником данных, используя один и тот же ODBC-драйвер.
Функции ODBC API Все функции ODBC API условно можно разделить на четыре группы: 1. основные функции
Рис.9 Функции ODBC API Все функции ODBC API условно можно разделить на четыре группы: 1. основные функции ODBC, обеспечивающие взаимодействие с источником данных; 2. функции установки (setup DLL); 3. функции инсталляции (installer DLL) ODBC и источников данных; 4. функции преобразования данных (translation DLL). Объявления всех функций и используемых ими типов данных содержатся в заголовочных файлах. Группа основных функций ODBC API разбита на три уровня: 1. функции ядра ODBC; 2. функции 1 уровня; 3. функции 2 уровня. Каждый ODBC-драйвер специфицируется как драйвер, поддерживающий определенный уровень функций ODBC API. Прототипы функций ядра ODBC API находятся в файле Sql. h (C/C++, Visual Studio), а прототипы функций 1 и 2 уровней - в файле Sqlext. h. Применение #define ODBCVER позволяет указать используемую версию (например, #define ODBCVER 0x0351 ). Прототипы функций установки и инсталляции находятся в файле odbcinst. h.
Схема доступа к источнику данных с использованием ODBC API Первым шагом при реализации доступа к ист
Рис.10 Схема доступа к источнику данных с использованием ODBC API Первым шагом при реализации доступа к источнику данных посредством ODBC API без применения пула соединений является создание дескриптора окружения. После выделения памяти под дескриптор окружения приложение должно вызвать функциюSQLSetEnvAttr для задания значения атрибуту дескриптора окруженияSQL_ATTR_ODBC_VERSION. Если не установить номер версии ODBC API, то при создании дескриптора соединения функция SQLAllocHandle вернет код ответа SQLSTATE равным HY010, что соответствует коду произошедшей ошибки. После создания дескриптора окружения создаются дескрипторы соединений. Каждый дескриптор соединения формируется вызовом функции SQLAllocHandle с типом дескриптора, равным SQL_HANDLE_DBC. Драйвер выделяет память для хранения информации о соединении и возвращает значение дескриптора соединения. Далее для реального соединения с источником данных вызывается функция SQLConnect или функцияSQLDriverConnect. Для выполнения SQL-операторов создаются дескрипторы операторов. Они позволяют получить доступ к информации о выполненном операторе, имени курсора и атрибутах. Дескриптор оператора формируется вызовом функции SQLAllocHandle со значением типа дескриптора, равным SQL_HANDLE_STMT. При создании дескриптора оператора драйвер автоматически создает еще четыре дескриптора и записывает указатели на них в атрибуты дескриптора оператора SQL_ATTR_APP_ROW_DESC, SQL_ATTR_APP_PARAM_DESC,SQL_ATTR_IMP_ROW_DESC и SQL_ATTR_IMP_PARAM_DESC. Эти четыре дескриптора называются неявно размещаемыми дескрипторами. Для явного размещения дескриптора приложения следует вызвать функцию SQLAllocHandle со значением типа дескриптора, равным SQL_HANDLE_DESC. При этом формируется дескриптор, называемый явно размещаемым дескриптором. Приложение может указать драйверу использовать явно размещенный дескриптор приложения вместо автоматически созданного для данного дескриптора оператора. Для этого следует вызвать функцию SQLSetStmtAttr с атрибутом SQL_ATTR_APP_ROW_DESC или SQL_ATTR_APP_PARAM_DESC. Явно размещаемые дескрипторы также ассоциируются с дескриптором соединения: они остаются доступны только до тех пор, пока приложение имеет соединение с базой данных. Поскольку явно размещаемые дескрипторы ассоциируются с дескриптором соединения, то приложение может ассоциировать такие дескрипторы с несколькими дескрипторами операторов для данного соединения. Неявно размещаемый дескриптор приложения не может быть ассоциирован более чем с одним дескриптором оператора. Если явно размещаемый дескриптор освобождается, то дескриптору оператора опять назначается неявно размещаемый дескриптор.
Билет № 8 3 Виртуализация серверного программного обеспечения для улучшения работоспособности локаль
Рис.11 Билет № 8 3 Виртуализация серверного программного обеспечения для улучшения работоспособности локальной сети. (Широко распростоненные серверные операционные системы. Целесообразность использования виртуализации ОС. Виртуализация ОС для учебных целей)
Выбор серверного программного обеспечения Windows Server 2008 R2 Standard. Сервер предназначен для у
Рис.12 Выбор серверного программного обеспечения Windows Server 2008 R2 Standard. Сервер предназначен для увеличения надежности и гибкости серверной инфраструктуры, помогая сэкономить время и сократить расходы. Инструменты, встроенные в данную платформу, дают больший контроль над управлением и настройками. Улучшенные администрирование и диагностика дают возможность применения различных инструментов для увеличения эффективности и снижения затрат на инфраструктуру. Повседневное управление серверами в центрах обработки данных является трудоемкой задачей, которая стоит перед любым ИТ-специалистом. Стратегии управления системой на данный момент сводится к возможности управление как физическими таки виртуальными средами. Чтобы помочь в этом вопросе, в Windows Server 2008 R2 появились новые возможности для уменьшения текущего управления операционной системы и оперативных задач. Такими инструментами стали Windows Server Hyper-V и усовершенствованная Служба удаленных рабочих столов. Windows Server 2008 R2 Standard является мощной платформой для веб-приложений и служб. Internet Information Services (IIS) 7. 5 обеспечивает модульность и гибкость. Платформа содержит ряд усовершенствований для удаленного администрирования, включая улучшенное удаленное управление с помощью графических консолей управления, командной строки, а также автоматизированные скрипты. Windows Server 2008 R2 может потреблять до 18% меньше энергии на идентичных аппаратных по сравнению с Windows Server 2003. Обзор возможностей: Windows Server 2008 Standard обладает следующими функциональными возможностями. поддержка 32 ГБ ОЗУ для 64-разрядных систем (4 ГБ для 32-разрядных систем) поддержка до четырех многоядерных процессоров до 250 подключений службы сетевого доступа (RRAS) до 50 подключений сервера политики сети до 250 подключений сервера терминалов поддержка виртуализации на базе технологии Hyper-V и один бесплатный виртуальный экземпляр. Windows Server 2008 R2 Foundation. Надежная база для запуска большинства малых бизнес-приложений. Платформа позволяет работать с файлами, принтерами, удаленным доступом и безопасностью системы. Простой и знаковый интерфейс Windows позволит создать безопасную и надежную локальную сеть. Серверная система Foundation совместима с большинством устройств и оборудованием, что позволить получить полноценную отдачу от платформы. Сервер общего назначения обеспечивает надежной и доступной технологией для запуска бизнес-приложений и для обмена информацией и ресурсами. Будучи основанной на Windows Server 2008 R2 означает, что вы можете запускать как базовую инфраструктуру, службы удаленного рабочего стола и управления идентификацией решения для Вашего бизнеса, так и иметь поддержку основных (LOB) приложений. Данная редакция предназначена для владельцев небольших компаний и ИТ-специалистов, занимающихся их поддержкой. Windows Server Foundation основан на простоте и техническими возможностями, которые дает Windows Server 2008 R2. Windows Server 2008 R2 Enterprise. Данная платформа предоставляет высокий уровень работоспособности системы, также гибкость и масштабируемость инфраструктуры. Предусмотрены и реализованы расширенные возможности виртуализации и управления. Виртуализация серверов может помочь Вам: • Логически консолидировать сервера и оптимизировать управление. • Снизить затраты связанные с питанием и охлаждением центра обработки данных. • Повысить доступность системы. • Оптимизировать использование ресурсов системы и добиться значительной экономии в затратах на управление инфраструктурой. Windows Server 2008 R2 Enterprise – это мощная серверная платформа, обеспечивающая надежную поддержку для самых важных процессов и нагрузок. Обеспечение непрерывной работы сотрудниками компании, круглосуточный доступ поставщикам и партнерам – решающие факторы в выборе платформы. Удаленные сотрудники, клиенты и партнеры могут иметь постоянный доступ к системам и данным.
Windows Web Server 2008 R2. Издание предназначено для использования в качестве интернет веб-сервера.
Рис.13 Windows Web Server 2008 R2. Издание предназначено для использования в качестве интернет веб-сервера. Он объединен с IIS 7. 0, ASP. NET и Microsoft. NET Framework. Платформа позволяет организации быстро развертывать веб-страниц, веб-сайты, веб-приложения и веб-сервисы. Улучшенные инструменты для администрирования и диагностики позволят снизить расходы на инфраструктуру. Улучшения в новой редакции: • Повышение технического потенциала по сравнению с предыдущими версиями, а также сняты ограничения на установку Microsoft SQL Server. • Включает в себя Internet Information Services (IIS) 7. 5, Microsoft ASP. NET и Microsoft. NET Framework. • Специализированная функциональность роли сервера поддерживает четыре 32 гигабайта (ГБ) оперативной памяти. • Экономичность нового поколения веб-сервера, который имеет конкурентоспособную цену для предприятий. Эта платформа поддерживает роли веб-сервера и DNS-сервера, обладает повышенной надежностью и масштабируемостью и обеспечивает управление в самых разных средах: от отдельного веб-сервера до фермы веб-серверов. Windows Server 2008 R2 Datacenter. Данная серверная платформа оптимизирована для крупномасштабной виртуализации, требующей высокого уровня масштабируемости, надежности и доступности для поддержки больших и критически важных приложений. С неограниченными правами на использование виртуализации и технологии на базе гипервизора Windows Server 2008 R2 Datacenter обеспечивает гибкость и экономию средств. Данный продукт также поддерживает обработку важных задач и нагрузок, таких как ERP, базы данных, консолидация серверов и пользовательских, линейных бизнес-приложений. Сервер является платформой корпоративного уровня для важнейших бизнес-приложений и крупномасштабной виртуализации на небольших или мощных серверах. Данная редакция поддерживает от 2 до 64 процессоров. Windows Server R2 2008 Datacenter — это надежная основа для решений виртуализации корпоративного уровня и крупномасштабных систем. Windows HPC Server 2008 R2. Высокопроизводительные вычисления (HPC) дает аналитикам, инженерам и ученым вычислительные ресурсы, необходимые для принятия более эффективных решений, инноваций, научных исследований и развития скорости и ускорения выхода на рынок. Некоторые примеры использования HPC включает: расшифровка геномов, анимации фильмов, анализ финансовых рисков, оптимизации моделирования краш-тестов, моделирование глобальных решений климата, вычислительная гидродинамика (CFD) и других очень сложных задач. Последние программные и аппаратные достижения сделали возможным использовать существующие ИТ-навыки и создать среду высокопроизводительных вычислений для использования готовых серверов и высокоскоростных межсоединений. Эти системы могут поставлять передовые вычислительные мощности с большей эффективностью и на значительно более низкую стоимость входа и собственности. Такие системы состоят из кластера, объединяющего несколько серверов, каждый из которых выполняет конкретную задачу. Средства масштабирования Windows HPC Server 2008 обеспечивают поддержку тысяч процессорных ядер и содержат консоли управления, помогающие выполнять проактивный мониторинг и поддерживать работоспособность и стабильность системы. Гибкость и широкие возможности взаимодействия, предоставляемые средствами планирования, обеспечивают интеграцию с высокопроизводительными вычислительными платформами на базе Windows и Linux и поддерживают приложения с сервис-ориентированной архитектурой (SOA) и пакетное выполнение приложений. Windows Server 2008 R2 for Itanium-Based Systems. Windows Server 2008 R2 для систем на базе Itanium – это платформа для наиболее ресурсоемких и критически важных бизнес-аналитических и корпоративных приложений. Устойчивость платформы подходит для приложений, которые обмениваются данными между процессами. Стандартизация центра обработки данных на основе стандартов Windows Server 2008 R2 может улучшить гибкость и помочь в достижении более низкой совокупной стоимости владения. Миграция решения RISC / UNIX и мэйнфреймов на базе Itanium серверов под управлением Windows Server 2008 R2 помогает повысить производительность, сократить расходы и повысить масштабируемость. Это программное обеспечение также предоставляет лицензионные права запускать неограниченное число виртуальных экземпляров Windows Server 2008 R2 для систем на базе Itanium в сочетании со сторонними технологиями виртуализации. Виртуализация Hyper-VTM недоступна для систем на базе процессоров Itanium. Эта платформа поддерживает крупные СУБД, бизнес-приложения и системы, разработанные на заказ, и отвечает всем потребностям растущего бизнеса. Для повышения доступности служит поддержка отказоустойчивых кластеров и возможности динамического аппаратного секционирования.
Виртуализа́ция в вычислениях — процесс представления набора вычислительных ресурсов, или их логическ
Рис.14 Виртуализа́ция в вычислениях — процесс представления набора вычислительных ресурсов, или их логического объединения, который даёт какие-либо преимущества перед оригинальной конфигурацией. Это новый виртуальный взгляд на ресурсы составных частей, не ограниченных реализацией, физической конфигурацией или географическим положением. Обычно виртуализированные ресурсы включают в себя вычислительные мощности и хранилище данных. По-научному, виртуализация — это изоляция вычислительных процессов и ресурсов друг от друга. Примером виртуализации являются симметричные мультипроцессорные компьютерные архитектуры, которые используют более одного процессора. Операционные системы обычно конфигурируются таким образом, чтобы несколько процессоров представлялись как единый процессорный модуль. Вот почему программные приложениямогут быть написаны для одного логического (виртуального) вычислительного модуля, что значительно проще, чем работать с большим количеством различных процессорных конфигураций. Одной из главных функций операционной системы является создание такого способа взаимодействия с устройством, при котором все специфические операции скрываются от пользователя. Так, скажем, существует гигантское разнообразие дисков-накопителей информации, но большинство из них может быть представлено внутри ОС как некое устройство доступа, информация с которого может быть получена (и записана) блочным способом. Таким образом, осуществляется виртуализация устройств — программа пользователя, работающая, например, с подобным устройством, видит его как некий обобщенный или виртуальный диск. Виртуализировать, означает, взять нечто одной формы и заставить его казаться другой формы. Виртуализировать компьютер, означает, заставить компьютер казаться сразу несколькими компьютерами или совершенно другим компьютером. Вообще, под термином «виртуальный» мы понимаем нечто, не имеющее реального воплощения или отличающееся от реального, существующего физически. Например, виртуальная память процесса, которая противопоставляется физической. Этот способ использования термина «виртуальный» можно охарактеризовать как один из доминирующих сейчас принципов организации операционных систем. Когда производится виртуализация, существует не единственный способ ее осуществления. Фактически есть несколько путей, с помощью которых достигаются одинаковые результаты через разные уровни абстракции.
Виртуализация оборудования В случае с виртуализацией оборудования используется специальный программн
Рис.15 Виртуализация оборудования В случае с виртуализацией оборудования используется специальный программный слой – гипервизор (hypervisor), позволяющий эмулировать на одном физическом сервере несколько виртуальных окружений – виртуальных машин, которые изнутри выглядят как отдельные физические машины, со своим набором оборудования и ресурсов. Существует две разновидности виртуализации оборудования: полная виртуализация и паравиртуализация. Полная виртуализация. Полная виртуализация, которую также называют естественной (native virtualization), - очень интересный метод виртуализации. Эта модель использует виртуальную машину, которая выступает как посредник между гостевой операционной системой и реальным оборудованием. Некоторые инструкции защищенного режима должны перехватываться и обрабатываться внутри гипервизора, поскольку аппаратура не доступна непосредственно из операционных систем, доступ к ней предоставляется через гипервизор. Полная виртуализация работает быстрее, чем эмуляция аппаратуры, но производительность все же ниже, чем на реальной аппаратуре, из-за посредничества гипервизора. Паравиртуализация. Паравиртуализация - это другой популярный метод, который имеет некоторое сходство с полной виртуализацией. Этот метод тоже использует гипервизор для разделяемого доступа к оборудованию, но интегрирует код виртуализации в саму операционную систему. Этот подход позволяет избежать любой перекомпиляции или перехвата команд, поскольку операционная система сама участвует в процессе виртуализации. Виртуализация уровня операционной системы Виртуализация уровня ОС подразумевает в первую очередь не эмуляцию аппаратного обеспечения для различных виртуальных машин, а работу на уровне разделения групп процессов и ресурсов в рамках одной ОС. При виртуализации уровня ОС все процессы работают в единой ОС (что накладывает ограничение на ядро ОС – оно единое для всех ВМ), но процессы различных ВМ не видят и не влияют друг на друга, распределением ресурсов и разграничением доступа между ними занимается подсистема виртуализации на уровне ядра ОС. За счет этого внутри каждой ВМ видны и доступны к использованию только выделенные ей ресурсы. Свободные/неиспользуемые ресурсы могут быть динамически перераспределены между различными ВМ, это дает уникальные возможности по эффективному использованию ресурсов и позволяет повысить плотность размещения ВМ. Наиболее распространенными целями использования виртуализации являются: 1. повышение эффективности использования оборудования; 2. унификация используемого оборудования, повышение управляемости; 3. повышение надежности/стабильности. Обязательное условие успеха при переходе на виртуализацию – четкоe понимание цели внедрения той или иной технологии. Пожалуй, главное – это не просто использовать виртуальные машины как дешевые и высоконадежные альтернативные варианты физических серверов, а понимать, что это особый тип сервиса, со своими достоинствами и недостатками, со своими отличительными чертами. Только в таком случае можно будет получить максимальную пользу от виртуализации.
Технологии виртуализации позволяют снизить затраты на технику и более эффективно использовать вычисл
Рис.16 Технологии виртуализации позволяют снизить затраты на технику и более эффективно использовать вычислительные ресурсы, что особенно актуально в период кризиса. В Новосибирском государственном университете обучается около 7 тыс. студентов. В 2007 году по итогам Всероссийского конкурса инновационных образовательных программ, проходящего в рамках национального проекта «Образование», это учебное заведение получило 930 млн. руб. на реализацию проекта «Инновационные образовательные программы и технологии, реализуемые на принципах партнерства классического университета, науки, бизнеса и государства». Эти деньги способствовали внедрению новых информационных технологий в образовательной, научной, инновационной и управленческой деятельности университета. Интерес к технологиям виртуализации возник в НГУ еще раньше, когда в ходе совместного проекта компании Parallels (ранее SWsoft) и НГУ была создана учебно-научная лаборатория НГУ-Рarallels. Основная цель лаборатории — привлечь студентов к исследовательской деятельности в условиях, максимально приближенных к тем, в которых находятся компании, занимающиеся коммерческой разработкой программного обеспечения. По соседству с НГУ, в Новосибирском Академгородке, находится один из центров исследований и разработок компании Parallels. Многие из освоивших технологии виртуализации студентов, вероятно, будут им востребованы. Благодаря средствам, полученным по гранту, в НГУ созданы современные серверные центры, где будут сконцентрированы основные вычислительные ресурсы, которые пока еще распределены по всей территории университета. «Нам важно было сэкономить как рабочее время администраторов, так и место в серверной комнате, — поясняет заведующий лабораторией НГУ-Рarallels Дмитрий Иртегов. — Держать для размещения сайта каждой кафедры по отдельному мощному серверу нерационально». В НГУ пошли по пути контейнерной виртуализации, она позволяет запускать на одном физическом сервере множество виртуальных, что очень актуально для учебного процесса. Контейнерная виртуализация обеспечивает работу в одной ОС (Windows, Linux, Solaris) нескольких виртуальных сессий, которые друг друга «не видят». Их изоляция идет не на уровне перехвата обращения к аппаратуре, как в технологии гипервизора, а на уровне операционной системы. Чем это хорошо? Во-первых, возрастает плотность размещения виртуальных серверов (контейнеров), поскольку в каждом из них находится не полноценная ОС, а лишь процессы, индивидуальные для данного пользователя. Во-вторых, увеличивается производительность, поскольку при контейнерной виртуализации не перехватывается обращение к аппаратуре. В-третьих, такая виртуализация обходится дешевле, чем при эмуляции аппаратных ресурсов (ее обеспечивает гипервизор). Есть у контейнерной виртуализации, в отличие от аппаратной, и недостаток: все виртуальные машины вынуждены работать под управлением одной и той же версии ОС. Это не позволяет, например, запустить Linux и Windows на одной машине.


Скачать презентацию