Учебный курс Операционные среды, системы и оболочки Лекция 18 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.

Презентация:



Advertisements
Похожие презентации
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
Advertisements

Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Обзор операционных систем ВОУНБ им. М. Горького «Операционная система - это совокупность программ, обеспечивающих управление процессом обработки информации.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Информатика в школе Операционная система Программное обеспечение.
Архитектура операционных систем Семестр 2, Лекция 1.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Администрирование информационных систем Лекция 4. Система управления базами данных.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Операционные системы
Технические и программные средства реализации информационных процессов Тема 5-2.
1 Работа под управлением ОС Windows. 2 Темы для обсуждения 1. Что такое операционная система Что такое операционная система Понятие ОС Виды ОС 2. Операционная.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Системное программное обеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами.
Операционные системы Проект ученика 8 А класса Юрченко Василия.
Операционная система. 1.Общее понятие операционных системОбщее понятие операционных систем 2.Классификация ОСКлассификация ОС 3.Обзор наиболее популярных.
Раздел 3 Сетевые модели. Тема 3.1 Понятие сетевой модели. Архитектура сети определяет основные элементы сети, характеризует ее общую логическую организацию,
Основы операционных систем. Литература к курсу (основная) В.Е.Карпов, К.А.Коньков Основы операционных систем.
Разработка учебно-лабораторного стенда для проведения тестов на проникновение в типовую корпоративную локально- вычислительную сеть предприятия Научный.
Операционная система Назначение и состав. На IBM-совместимых персональных компьютерах используются операционные системы корпорации Microsoft Windows,
Транксрипт:

Учебный курс Операционные среды, системы и оболочки Лекция 18 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович

Операционные системы2 UNIX Solaris (Sun Microsystems). Sun Solaris сегодня входит в число самых известных коммерческих версий UNIX. ОС обладает развитыми средствами поддержки сетевого взаимодействия и представляет собой одну из самых популярных платформ для разработки корпоративных решений для нее существует около 12 тыс. различных приложений, в том числе серверов приложений и СУБД почти от всех ведущих производителей. ОС Solaris 9 поддерживает до 1 млн. работающих процессов, до 128 процессоров в одной системе и до 848 процессоров в кластере, до 576 Гбайт физической оперативной памяти, поддержку файловых систем размером до 252 Тбайт, наличие средств управления конфигурациями и изменениями, встроенную совместимость с Linux. HP-UX (Hewlett-Packard). HP-UX 11i имеет средства интеграции с Windows и Linux, средства переноса Java-приложений, разработанных для этих платформ, а также средства повышения производительности Java-приложений. HP-UX 11i поддерживает Linux API, что гарантирует перенос приложений между HP-UX и Linux. Операционная система поддерживает до 256 процессоров и кластеры размером до 128 узлов, подключение и отключение дополнительных процессоров, замену аппаратного обеспечения, динамическую настройку и обновление операционной системы без необходимости перезагрузки, резервное копирование в режиме on-line и дефрагментацию дисков без выключения системы.

Операционные системы3 AIX (IBM). AIX является клоном UNIX производства IBM, предназначенным для выполнения на серверах pSeries и RS/6000. Операционная система обладает совместимостью с Linux. В числе особенностей AIX 5L наличие полностью 64-разрядных ядра, драйверов устройств и среды исполнения приложений (при этом имеется и 32- разрядное ядро и поддержка 32-рязрядных приложений), поддержка 256 Гбайт оперативной памяти, поддержка файлов объемом до 1 Тбайт, удобные средства администрирования, поддержка кластеров (до 32 компьютеров), развитые средства сетевой поддержки. Linux и FreeBSD. Операционная система Linux это некоммерческий продукт категории Open Source для платформы Intel. Список серверных продуктов для Linux включает такие популярные продукты, как Web-сервер Apache, серверные СУБД и серверы приложений практически от всех производителей. Еще одной известной некоммерческой версией UNIX является FreeBSD, доступная для платформ Intel и DEC Alpha. Основой FreeBSD послужил дистрибутив BSD UNIX, выпущенный группой Калифорнийского университета (Беркли). Операционная система имеет объединенный кэш виртуальной памяти и буферов файловых систем, совместно используемые библиотеки, модули совместимости с приложениями других версий UNIX, динамически загружаемые модули ядра, позволяющие добавлять во время работы поддержку новых типов файловых систем, сетевых протоколов или эмуляторов без перегенерации ядра.

Операционные системы4 NetWare (Novell) Основными особенностями последней версии операционной системы, Novell NetWare 6.5, являются возможность создания географически распределенных кластеров, наличие средств поддержки мобильных и удаленных пользователей, инструментов управления удаленными сетевыми ресурсами, а также средств синхронизации информации о пользователях и приведения в соответствие между собой каталогов в смешанных средах. Защита данных в Novell NetWare 6.5 осуществляется с помощью служб каталогов NDS eDirectory. Данная операционная система обычно применяется в качестве сетевого и файлового сервера, сервера печати и групповой работы. Mac OS X (Apple) Операционная система Mac OS X, созданная компанией Apple совместно с рядом университетских ученых, основана на BSD UNIX. В 1999 году версия Mac OS X Server была выпущена в виде продукта Open Source, что позволило разработчикам адаптировать Mac OS X для конкретных заказчиков, а также привлечь их к дальнейшему развитию этой операционной системы. Mac OS X характеризуется наличием менеджера виртуальной памяти, возможностью полной изоляции приложений друг от друга, поддержкой многозадачности, сравнимой с аналогичной поддержкой в Windows.

Операционные системы5 Операционная система Z / OC для высокоуровневых вычислительных устройств eServer z900 (IBM) Z /OS является усовершенствованной версией операционной системы OS/390, однако по сравнению с последней новая ОС имеет ряд преимуществ. Среди них zOS – поддержка 64-разрядной адресации, позволяющей ускорить обмен данными между модулями памяти и процессорами и увеличить производительность работы с большими базами данных. Важным компонентом z/OS является ПО Intelligent Resource Director, предназначенное для автоматического распределения вычислительных мощностей между одновременно выполняющимися приложениями. Другими отличительными особенностями новой ОС является поддержка ПО для платформ Java и Linux, а также простота в настройке и администрировании.

Операционные системы6 Операционная система IBM i (ранее известная как i5/OS) работающая на сервере IBM Power Systems, предоставляет высокомасштабируемую и устойчивую к воздействию вирусов архитектуру, подтвердившую свою исключительную надежность для работы бизнес-приложений. ОС IBM i представляет собой надежное сочетание реляционной базы данных, функций обеспечения безопасности, веб-сервисов, средств организации сети и средств управления хранением данных. Внедрение инноваций: Поддержка серверов POWER с числом процессоров от 1 до 64 и blade-серверов Оптимизированная интеграция с включенной в поставку базой данных DB2® (US) Ориентация на открытые приложения (среды выполнения приложений IBM Rational®, C, RPG, COBOL, C++, Java, PHP, SOA, UNIX®) (US) Поддержка одновременного выполнения нескольких критически важных приложений Динамическое управление рабочей нагрузкой для распределения мощности между участками и периодами максимального потребления Поддержка EnergyScale для эффективного управления энергопотреблением Новый адаптер Fibre Channel с передовым уровнем производительности Виртуализация обработки и хранения для получения максимальной выгоды от инвестиций в оборудование и приобретенных лицензий

Операционные системы Тенденции на рынке операционных систем Перераспределение рынка ОС по данным Gartner Group

Операционные системы8 Распределение от продажи серверов в ценовой категории менее 25 тыс. долл. по операционным системам (по данным Gartner Group, 2001 г.) Распределение от продажи серверов в ценовой категории более 25 тыс. долл. по операционным системам (по данным Gartner Group, 2001 г.)

Операционные системы9 Последние новости от IDC о рынке операционных систем. Доли рынка серверов выглядят следующим образом (анализ данных за прошлый год): Windows: 55,1% Linux: 23,1% UNIX: 11% NetWare: 9,9% Доли рынка настольных (клиентских) машин (опять же данные за прошлый год): Windows: 93,8% MacOS: 2,9% Linux: 2,8%

Операционные системы10 В качестве гостевых ОС, в среде которых работают отдельные виртуальные машины, чаще всего (в двух случаях из трех) используются различные версии (32- и 64-разрядные) Windows (см. рисунок). Хотя, по мнению экспертов IDC, применение Linux увеличивается, доля этой ОС составляет пока лишь 12,7%. Заметная доля принадлежит мэйнфреймам и Unix, с которых в свое время и начиналась реализация идеи виртуальных машин. Так или иначе, но можно констатировать, что в подавляющем числе случаев использование VMS связано с компьютерами архитектуры x86.

Операционные системы11 На программном обеспечении с открытыми кодами Apache работает гораздо больше крупнейших в мире Web-сайтов, чем на каком-либо другом программном обеспечении Web- серверов. Неспособность компаний-поставщиков зарабатывать деньги при использовании подхода open source в чистом виде вынуждает многие из них изменять свою бизнес-модель. Теперь они считают открытые коды лишь одним из эффективных способов развития программного обеспечения, а не общественным движением. Изменяющийся облик open source. George Lawton. The Changing Face of Open Source, IEEE Computer, V. 42, No 5, May 2009

Операционные системы Операционная система UNIX История создания 1. Создание CTSS (Compatible Time Sharing System) в МТИ (1961 г.). 2. Создание MULTICS (Multiplexed Information and Computer Service), язык EOL (PL/1), МТИ + Bell Labs + General Electric, 1963 г. 3. Разработка усеченного варианта MULTICS на ассемблере для PDP-7 (UNICS – Uniplexed Information and Computer Service) – Кен Томпсон ( ). 4. Создание языка высокого уровня B (упрощение BCPL наследника CPL) и переработка Unix на этом языке – Томпсон. 5. Создание языка С (наследник B) – Ритчи. 6. Переписывание UNIX на С – Томпсон и Ритчи. 7. Статья Томпсона и Ритчи об ОС UNIX, 1974 г. 8. Версия 6 UNIX – 8200 строк С строк ассемблера –1974 г. 9. Первая переносимая версия UNIX (версия 7) –18000 строк С строк ассемблера –1976 г. 10. Выпуск коммерческой версии UNIX фирмой AT&T (System III) – 1984 г., а затем UNIX System V. 11. Развитие UNIX Калифорнийским университетом в Беркли – 1BSD (Fist Berkeley Software Distribution), затем 2BSD, 3BSD, 4BSD. 12. Широкое распространение UNIX – Xenix, Minix, AIX, Sun OS, Solaris, Lnux.

Операционные системы Общая характеристика системы UNIX Общие черты Unix независимо от версии: 1. Многопользовательский режим со средствами защиты от несанкционированных пользователей. 2. Реализация мультипрограммной работы в режиме разделения времени, основанная на использовании алгоритмов вытесняющей многозадачности. 3. Использование механизмов виртуальной памяти и свопинга для повышения уровня мультипрограммирования. 4. Унификация ввода-вывода на основе расширенного использования понятия файл. 5. Иерархическая файловая система, образующая единое дерево каталогов независимо от количества физических устройств, используемых для размещения файлов. 6. Переносимость системы за счет написания ее основной части на языке С. 7. Разнообразные средства взаимодействия процессов, в том числе через сеть. 8. Кэширование дисков для уменьшения среднего времени доступа к файлам. ОС UNIX – интерактивная система, разработанная программистами и для программистов. Основные требования: простота, элегантность, непротиворечивость, мощь и гибкость.

Операционные системы Интерфейс системы UNIX Пользователи Стандартные обслуживающие программы ( оболочка, компиляторы, утилиты для работы с файлами и т. д.) Стандартная библиотека ( open, close, read, write, fork и т. д.). Библиотечные ф-ии написаны на ассемблере и выполняют команду эмулированного прерывания TRAP. Операционная система UNIX (управление процессами, памятью, файловая система, ввод-вывод и т. д.) Аппаратное обеспечение (центральный процессор, память, диски, устройства ввода-вывода, терминалы и т. д.) Интерфейс пользователя Интерфейс библиотечных функций Интерфейс системных вызовов Режим ядра Режим пользователя

Операционные системы Структура ядра системы Unix Системные вызовы Аппаратные и эмулированные прерывания Управление терминалом Сокеты Именование файла Отображение адресов Страничные прерывания Необработанный телетайп Обработанный телетайп Виртуальная память Сетевые протоколы Маршрутизация Файловые системы Буферный кэш Страничный кэш Символьные устройства Планирование процесса Драйверы сетевых устройств Драйверы дисковых устройств Дисциплины линии связи Диспетчериза ция процессов А П П А Р А Т У Р А Обработка сигналов Создание и завершение процессов

Операционные системы Оболочка системы UNIX Система поддерживает графическое окружение X Windows, но многие программисты предпочитают интерфейс командной строки, создавая множество консольных окон и действуя так, как если бы у них было несколько алфавитно-цифровых терминалов, на каждом из которых работала бы оболочка (shell). Существует много различных оболочек: sh, ksh, bash и др. После запуска оболочка печатает на экране символ приглашения к вводу (% или $) и ждет, когда пользователь введет командную строку. Примеры командных строк: 1) cp file1 file2 (копировать файл file1, копия – file2 ) 2) head –20 file (печатать первые 20 строк файла file) 3) sort out (программе sort взять в качестве входного файла in и направить вывод в файл out) 4) sort temp; head -30 < temp; rm temp 5) sort < in | head -30 (канал) 6) sort < x | head & (фоновый процесс) Файлы, содержащие команды оболочки,называются сценариями оболочки. В них можно использовать конструкции if, for, while, case.

Операционные системы Утилиты системы Unix Кроме оболочки пользовательский интерфейс содержит большое число обслуживающих программ (утилит): 1. Программы (команды) управления файлами и каталогами. 2. Фильтры. 3. Средства разработки программ ( текстовые редакторы, компиляторы). 4. Текстовые процессоры. 5. Системное администрирование. 6. Разное. Программа Функция cat Конкатенация нескольких файлов в стандартный выходной поток chmod Изменение режима защиты файла ср Копирование файла cut Вырезание колонок текста grep Поиск определенной последовательности символов в файле head Извлечение из файла первых строк is Распечатка каталога make Компиляция файла для создания двоичного файла mkdir Создание каталога paste Вставка колонок текста в файл pr Форматирование файла для печати rm Удаление файла rmdir Удаление каталога sort Сортировка строк файла по алфавиту tail Извлечение из файла последних строк tr Преобразование символа из одного набора в другой

Операционные системы Процессы в системе Unix pid = fork ( ); /* если fork завершился успешно, pid > 0 в родит. процессе */ if (pid < 0) { handle_error ( ); /* fork потерпел неудачу (например, память переполнена)*/ } else if (pid > 0) { /* здесь располагается родительская программа */ } else { /* здесь располагается дочерняя программа */ } У каждого пользователя системы может быть одновременно несколько активных процессов, кроме того существуют десятки фоновых процессов (демонов). Типичный демон – cron daemon, предназначенный для планирования и запуска процессов. Системный вызов fork создает точную копию исходного процесса, называемого родительским процессом. Новый процесс называется дочерним. У процессов собственные образы памяти. Открытые файлы используются совместно.

Операционные системы19 Процессы взаимодействуют с помощью каналов. Синхронизация процессов достигается путем блокировки процесса при попытке прочитать данные из пустого канала. Например, когда оболочка выполняет строку sort < f | head она создаст два процесса, sort и head, и устанавливает между ними канал. Если канал переполняется, система приостанавливает работу sort, пока head не удалит хоть сколько-нибудь данных. Процессы могут взаимодействовать также при помощи программных прерываний посылкой сигналов. Для управления процессами используются системные вызовы. Системный вызов Описание pid = fork ( ) Создать дочерний процесс, идентичный родительскому pid = waitpid (pid, &statloc, opts) Ждать завершения дочернего процесса s = execve (name, argv, envp) Заменить образ памяти процесса exit (status) Завершить выполнение процесса и вернуть статус s = sigaction (sig, &act, &oldact) Определить действие, выполняемое при приходе сигнала s = sigreturn (&context) Вернуть управление после обработки сигнала s =sigprocmask (how, &set, &old) Исследовать или изменить маску сигнала s = sigpending (set) Получить или установить блокированные сигналы s = sigsushtnd (sigmask) Заменить маску сигнала и приостановить процесс s = kill (pid, sig) Послать сигнал процессу s = pause ( ) Приостановить выполнение процесса до след. сигнала

Операционные системы20 while (TRUE) { /*Вечный цикл */ type_prompt ( ); /*Вывести приглашение ко вводу*/ read_command (command, params); /*Прочитать с клавиатуры строку */ pid = fork ( ); /*Ответвить дочерний процесс*/ if (pid < 0) { printf (Создать процесс невозможно); /*Ошибка */ continue; /*Следующий цикл */ } if (pid != 0) { waitpid ( -1, &status, 0 ); /*Род. пр-с ждет завершения доч. пр-са*/ } else { execve (command, params, 0); /* Дочерний процесс выполняет работу*/ }

Операционные системы21 Системные вызовы для управления потоками Стандартом POSIX (P1003.1c) предусматривается реализация потоков в пространстве пользователя и ядра ОС. Наиболее часто применяемые вызовы управления потоками приведены в таблице. При системной реализации потоков они являются настоящими системными вызовами. При использовании потоков на уровне пользователя они полностью реализуются в динамической библиотеке в пространстве пользователя. Системный вызов Описание pthread_create Создать поток в адр. простр. вызывающего процесса pthread_exit Завершить поток pthread_ join Подождать пока не завершится процесс pthread_mutex_init Создать новый мьютекс pthread_ mutex_destroy Уничтожить мьютекс pthread_ mutex_lock Заблокировать мьютекс pthread_ mutex_unlock Разблокировать мьютекс pthread_ cond_init Создать условную переменную pthread_ cond_ destroy Уничтожить условную переменную pthread_ cond_ wait Ждать условную переменную pthread_ cond_ signal Разблокировать один поток, ждущий условную переменную err = pthread_create (&tid, attr, function, arg); - этот вызов создает новый поток, в котором работает программа function, а arg передается программе в качестве параметра.

Операционные системы Реализация процессов в системе Unix Ядро поддерживает две ключевые структуры данных, относящиеся к процессам: таблицу процессов (резидентная) и структуру пользователя (выгружается на диск, когда процесс отсутствует в памяти). Таблица процессов содержит: 1. Параметры планирования. Приоритеты процессов, процессорное время, потребленное за последний учитываемый период, количество времени, проведенное процессом в режиме ожидания. 2. Образ памяти. Указатели на сегменты программы, данных и стека или на таблицы страниц. Когда процесса нет в памяти здесь содержится информация о его месте на диске. 3. Сигналы. Маски, характеризующие сигналы (игнорирование, перехват, блокирование) 4. Разное. Текущее состояние процесса, ожидаемые события, PID процесса, идентификатор пользователя и др. Структура пользователя включает : 1. Машинные регистры. 2. Информацию о текущем системном вызове (параметры и результаты). 3. Таблицу дескрипторов файлов. 4. Учетную информацию. Данные о процессорном времени, использованном в пользовательском и системном режимах. 5. Стек ядра для использования процессом в режиме ядра.