Скачать презентацию Операционные системы Потоки планирование SMP архитектура и надёжность Скачать презентацию Операционные системы Потоки планирование SMP архитектура и надёжность

3-Multithreading_overview.ppt

  • Количество слайдов: 72

Операционные системы Потоки, планирование, SMP, архитектура и надёжность операционных систем. Операционные системы. (с) Кафедра Операционные системы Потоки, планирование, SMP, архитектура и надёжность операционных систем. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 1

Многопоточность Способность операционной системы поддерживать в рамках одного процесса выполнение нескольких потоков. n MS-DOS Многопоточность Способность операционной системы поддерживать в рамках одного процесса выполнение нескольких потоков. n MS-DOS – один процесс с одним потоком n UNIX – много процессов с одним потоком в каждом процессе n Windows, Solaris, Linux, Mach, OS/2 – множество процессов со множеством потоков в каждом процессе. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 2

Многопоточность Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Многопоточность Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 3

Характеристики процесса n n Виртуальное адресное пространство, в котором содержится образ процесса Защищённый доступ Характеристики процесса n n Виртуальное адресное пространство, в котором содержится образ процесса Защищённый доступ к процессорам, другим процессам для обмена информацией, файлам и ресурсам вводавывода. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 4

Характеристики потока n n n Состояние выполнения потока Контекст потока Стек выполнения: q q Характеристики потока n n n Состояние выполнения потока Контекст потока Стек выполнения: q q n n Стек пользовательского режима Стек режима ядра Статическая память для локальных переменных (TLS в семействе Win 32) Доступ к памяти и ресурсам процесса, которому он принадлежит. Ресурсы процесса разделяются между всеми его потоками. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 5

Однопоточная и многопоточная модель процесса. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 Однопоточная и многопоточная модель процесса. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 6

Преимущества использования потоков n n Создание потока занимает меньше времени, чем создание процесса. Поток Преимущества использования потоков n n Создание потока занимает меньше времени, чем создание процесса. Поток можно завершить быстрее, чем процесс. Переключение между потоками процесса происходит намного быстрее. Потоки одного процесса разделяют его ресурсы, что позволяет потокам взаимодействовать без привлечения ядра ОС. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 7

Потоки на однопроцессорной системе n Работа в приоритетном (foreground) и фоновых режимах (background). q Потоки на однопроцессорной системе n Работа в приоритетном (foreground) и фоновых режимах (background). q n Асинхронная обработка q n Работа с низкопроизводительными устройствами Повышение скорости выполнения q n Электронные таблицы Одновременные операции по загрузке и обработке данных Модульная структура программы q Осуществление разнообразных действий и/или выполняющие множество операций ввода-вывода из и на различные источники. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 8

Потоки n n Приостановка (Suspending) процесса приводит к простановке всех его потоков Завершение процесса Потоки n n Приостановка (Suspending) процесса приводит к простановке всех его потоков Завершение процесса приводит к завершению всех его потоков. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 9

Основные состояния потока n События, изменяющие состояние потока q Порождение (Spawn) n n q Основные состояния потока n События, изменяющие состояние потока q Порождение (Spawn) n n q Блокирование n n q Ожидание некоторого события с сохранением контекста Процессор переходит к выполнению другого потока. Разблокирование n q Первичный поток процесса порождается ОС. Другие потоки процесса порождаются потоками (начиная с первичного). Новый поток создаётся со своим контекстом и стеками и помещается в очередь готовых к выполнению. Наступление события и перевод потока в готовое состояние Завершение n Разрушение контекста и стеков потока. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 10

Состояние потока в Windows Server 2003 Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. Состояние потока в Windows Server 2003 Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 11

Алгоритмы планирования в ОС (1) Пакетная обработка данных Интерактивные системы Системы реального времени Неприоритетные Алгоритмы планирования в ОС (1) Пакетная обработка данных Интерактивные системы Системы реального времени Неприоритетные алгоритмы планирования Приоритетные алгоритмы планирования Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 12

Задачи алгоритмов планирования Справедливость Принудительное применение политики Баланс Пропускная способность Оборотное время Использование процессора Задачи алгоритмов планирования Справедливость Принудительное применение политики Баланс Пропускная способность Оборотное время Использование процессора Время отклика Соразмерность Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Окончание работы к сроку Предсказуемость 13

Планирование в системах пакетной обработки n n FIFO – First In First Out SJN Планирование в системах пакетной обработки n n FIFO – First In First Out SJN – Shortest Job Next A 8 минут Tоб=8 мин B 4 мин Tоб=4 C 4 мин Tоб=8 B 4 мин Tоб=12 D 4 мин Tоб=12 C 4 мин Tоб=16 D 4 мин Tоб=20 A 8 минут Tоб=20 мин Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Tср=14 минут Tср=11 минут 14

Планирование в интерактивных системах n n Циклическое планирование Приоритетное планирование q q n n Планирование в интерактивных системах n n Циклическое планирование Приоритетное планирование q q n n n Планирование на основе относительного приоритета Планирование на основе абсолютного приоритета (вытесняющий алгоритм) Несколько приоритетных очередей «Самый короткий процесс – следующий» Гарантированное планирование Лотерейное планирование Справедливое планирование. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 15

Планирование в ОСРВ n Теория планирования в реальном времени предоставляет механизмы для изучения планируемости Планирование в ОСРВ n Теория планирования в реальном времени предоставляет механизмы для изучения планируемости группы задач. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 16

Взаимодействие «клиент-сервер» 1. Ожидание запроса 2. Обработка 2. Ожидание 2. Запрос сервиса 3. Результат Взаимодействие «клиент-сервер» 1. Ожидание запроса 2. Обработка 2. Ожидание 2. Запрос сервиса 3. Результат Сервер Клиент Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 17

Удалённый вызов процедур с использованием потоков. Однопоточный клиент. Операционные системы. (с) Кафедра ИСТ, Маракасов Удалённый вызов процедур с использованием потоков. Однопоточный клиент. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 18

Удалённый вызов процедур с использованием потоков. Многопоточный клиент. Операционные системы. (с) Кафедра ИСТ, Маракасов Удалённый вызов процедур с использованием потоков. Многопоточный клиент. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 19

Однопоточный сервер Время ожидания в очереди Запросы Поток приёма запросов Время обслуживания запроса Поток Однопоточный сервер Время ожидания в очереди Запросы Поток приёма запросов Время обслуживания запроса Поток блокирован Поток вытеснен Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Поток выполняется 20

Многопоточный сервер с одним процессором Поток сервера принимает запросы пользователей и порождает дочерние потоки Многопоточный сервер с одним процессором Поток сервера принимает запросы пользователей и порождает дочерние потоки для их обслуживания. Завершив обработку запроса серверные потоки передают результаты пользователю. Запросы Поток приёма запросов Серверный поток 1 Серверный поток 2 Серверный поток 3 Поток блокирован Поток вытеснен Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Поток выполняется 21

Недостатки многопоточного сервера n n Тратится время на создание нового потока и его последующее Недостатки многопоточного сервера n n Тратится время на создание нового потока и его последующее завершение. Потоки потребляют ресурсы системы q q q Бесконтрольное порождение потоков может привести к исчерпанию ресурсов системы и уязвимость к Do. S атакам. Тратится время на переключение контекста между потоками. В системе может существовать много «лишних» потоков, находящихся в состоянии ожидания. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 22

Многопоточный сервер на базе пула потоков. n Идея q Число одновременно работающих потоков надо Многопоточный сервер на базе пула потоков. n Идея q Число одновременно работающих потоков надо ограничивать на одном процессоре эффективно выполняется только один поток. q Существует ограниченный пул потоков готовых к обслуживанию заявок. (Pool – набор однотипных объектов). q Система контролирует число активных потоков. q Система отслеживает изменение состояния потоков n n n Активен Блокирован. Активизирует поток из пула, если число активных потоков меньше порогового значения. Блокирован Готов. Активизирует поток, если число активных потоков меньше порогового значения. Следствие q Эффективная загрузка процессоров в системе запросы успевают выполняться быстрее. q Меньше вероятность успешных Do. S атак. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 23

Многопоточный сервер на базе пула потоков (Однопроцессорная система). Операционные системы. (с) Кафедра ИСТ, Маракасов Многопоточный сервер на базе пула потоков (Однопроцессорная система). Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 24

Многопоточные сервера (только несколько примеров) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 Многопоточные сервера (только несколько примеров) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 25

Реализация потоков в ОС n n Потоки на уровне пользователя (User-level threads) Потоки на Реализация потоков в ОС n n Потоки на уровне пользователя (User-level threads) Потоки на уровне ядра (Kernel-level threads) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 26

Потоки на уровне пользователя n n Управление потоками выполняется на уровне приложения Ядро операционной Потоки на уровне пользователя n n Управление потоками выполняется на уровне приложения Ядро операционной системы не располагает информацией о существовании потоков. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 27

Потоки на уровне пользователя Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - Потоки на уровне пользователя Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 28

Потоки уровня ядра n n Ядро операционной системы владеет информацией о процессах и потоках Потоки уровня ядра n n Ядро операционной системы владеет информацией о процессах и потоках Диспетчерезируемой единицей в системе является поток. q Пример: OS/2, Windows Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 29

Испытания подходов к реализации потоков в UNIX-подобной ОС на VAX Операционные системы. (с) Кафедра Испытания подходов к реализации потоков в UNIX-подобной ОС на VAX Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 30

Комбинированный подход n n n Потоки создаются на пользовательском уровне Диспетчеризация и синхронизация потоков Комбинированный подход n n n Потоки создаются на пользовательском уровне Диспетчеризация и синхронизация потоков выполняется на пользовательском уровне Потоки пользовательского режима проецируются на потоки уровня ядра. q Пример: Solaris, Windows Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 31

Потоки в Windows API #include <iostream> #include <windows. h> // Функция, исполняемая потоками. // Потоки в Windows API #include #include // Функция, исполняемая потоками. // Выводит заданный параметром p символ DWORD __stdcall Chars. Thread(LPVOID p) { // LPVOID p есть указатель на символ TCHAR c = *(TCHAR*)(p); // Бесконечно выводим на экран символ while(1) { std: : cout << c; } return 0; } Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 32

Потоки в Windows API int _tmain(int argc, _TCHAR* argv[]) { // Описатели потоков HANDLE Потоки в Windows API int _tmain(int argc, _TCHAR* argv[]) { // Описатели потоков HANDLE h. Threads[2]; TCHAR asterisk = '*'; TCHAR exclam = '!'; // Поток, печатающий '*' h. Threads[0] = Create. Thread(NULL, 0, Chars. Thread, &asterisk, 0, NULL); // Поток, печатающий '!' h. Threads[1] = Create. Thread(NULL, 0, Chars. Thread, &exclam, 0, NULL); // Время ожидания завершения потоков #define TIMEOUT 2000 // Ждём завершения двух потоков TIMEOUT миллисекунд Wait. For. Multiple. Objects(2, h. Threads, TRUE, TIMEOUT); /* Закрываем описатели потоков. Сами потоки продолжают работать до завершения процесса */ Close. Handle(h. Threads[0]); Close. Handle(h. Threads[1]); return 0; } Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 33

Потоки в POSIX 1003. 1 #include <pthread. h> #include <stdio. h> void *Thread(void *string) Потоки в POSIX 1003. 1 #include #include void *Thread(void *string) { int i; for (i=0; i<10; i++) printf("%sn", (char *)string); pthread_exit(NULL); } Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 34

Потоки в POSIX 1003. 1 int main() { char *e_str = Потоки в POSIX 1003. 1 int main() { char *e_str = "*"; char *f_str = "!"; pthread_t e_th; pthread_t f_th; int rc; rc = pthread_create(&e_th, NULL, Thread, (void *)e_str); if (rc) exit(-1); rc = pthread_create(&f_th, NULL, Thread, (void *)f_str); if (rc) exit(-1); pthread_exit(NULL); } Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 35

Пулы потоков в Windows 2000 n Асинхронный вызов функций q n Очередь таймеров q Пулы потоков в Windows 2000 n Асинхронный вызов функций q n Очередь таймеров q q q n BOOL Queue. User. Work. Item( PTHREAD_START_ROUTINE pfn. Callback, PVOID pv. Context, ULONG dw. Flags); HANDLE Create. Timer. Queue(); BOOL Create. Timer. Queue. Timer( PHANDLE ph. New. Timer, HANDLE h. Timer. Queue, WAITORTIMERCALLBACK pfn. Callback, PVOID pv. Context, DWORD dw. Due. Time, DWORD dw. Period, ULONG dw. Flags); BOOL Delete. Timer. Queue. Timer( HANDLE h. Timer. Queue, HANDLE h. Timer, HANDLE h. Completion. Event); Очередь ожидания на объектах ядра q q BOOL Register. Wait. For. Single. Object( PHANDLE ph. New. Wait. Object, HANDLE h. Object, WAITORTIMERCALLBACK pfn. Callback, PVOID pv. Context, ULONG dw. Milliseconds, ULONG dw. Flags); BOOL Unregister. Wait. Ex( HANDLE h. Wait. Handle, HANDLE h. Completion. Event); Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 36

Волокна (Fibers) в Windows NT Конвертирование потока в волокно • PVOID Convert. Thread. To. Волокна (Fibers) в Windows NT Конвертирование потока в волокно • PVOID Convert. Thread. To. Fiber(PVOID pv. Param); Создание новго волокна в потоке • PVOID Create. Fiber( DWORD dw. Stack. Size, PFIBER_START_ROUTINE pfn. Start. Address, PVOID pv. Param); Переключение конткста на заданное волокно • VOID Switch. To. Fiber(PVOID pv. Fiber. Execution. Context); Удаление волокна • VOID Delete. Fiber(PVOID pv. Fiber. Execution. Context); Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 37

Соотношение между потоками и процессами Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 Соотношение между потоками и процессами Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 38

Модели параллелизма в программах n n n Декларативный параллелизм данных. Необходимо выразить желаемый результат Модели параллелизма в программах n n n Декларативный параллелизм данных. Необходимо выразить желаемый результат обработки данных. Параллелизм выполнения – задача среды разработки. Пример: SQL, PLINQ, Open MP, MPI. Императивный параллелизм данных. Необходимо выразить императивный оператор, ориентированный на обработку данных. Параллелизм выполнения оператора – задача среды разработки. Пример: операторы for, foreach (в PLINQ). Императивный параллелизм задач. Явное выражение операторов программы, выполнение которых должно быть выполнено параллельно. Пример: Явное использование потоков в программировании. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 39

Классификация систем Флинна n SISD q n SIMD q n Каждая инструкция выполняется над Классификация систем Флинна n SISD q n SIMD q n Каждая инструкция выполняется над различными наборами данных разных процессов (Векторные и матричные процессоры). MISD q n Один процессор исполняет единственный поток команд; данные хранятся в единой области памяти. Единая последовательность данных передаётся различным процессорам для обработки MIMD q Несколько процессоров одновременно выполняют команды над различными наборами данных. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 40

Параллельные архитектуры Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) Параллельные архитектуры Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 41

SMP и AMP (ASMP) системы n SMP (Symmetric Multi Processing) q q n Все SMP и AMP (ASMP) системы n SMP (Symmetric Multi Processing) q q n Все процессоры в системе равноправны и потоки системы и пользователя могут быть запущены на любом из них. Как правило каждый процессор планирует свою работу, извлекая из очереди имеющийся процесс или поток. AMP (Asymmetric Multi Processing) q q q Один процессор объявляется ведущим (master) на котором выполняются потоки ядра ОС. Ведущий процессор отвечает за диспетчеризацию Ведомые (slave) процессоры исполняют потоки пользователей. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 42

SMP и AMP системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - SMP и AMP системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 43

SMP versus AMP. Масштабируемость. ь ст о м уе р Производительность и аб т SMP versus AMP. Масштабируемость. ь ст о м уе р Производительность и аб т ш ас м ая н й е ин Л SMP AMP Число процессоров Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 44

Организация SMP систем Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. Организация SMP систем Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 45

Соглашения относительно многопроцессорных ОС n Конкурирующие потоки или процессы. q n Диспетчеризация q n Соглашения относительно многопроцессорных ОС n Конкурирующие потоки или процессы. q n Диспетчеризация q n Обеспечить синхронизацию при доступе к разделяемым ресурсам. Управление памятью q n Планирование выполняется на любом из процессором. Синхронизация q n Реентерабельный код системы Обеспечить возможность разделения страниц памяти между несколькими процессорами Надёжность и отказоустойчивость q Отказ одного из процессоров не должен остановить работу всей системы. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 46

Диспетчеризация потоков на SMP n Поток находится в состоянии «готов» : q q q Диспетчеризация потоков на SMP n Поток находится в состоянии «готов» : q q q Подключать поток к любому простаивающему (Standby processor) процессору Подключать поток к любому из родственных процессоров (Affinity processor) Подключать поток к идеальному (Ideal processor ) процессору Подключать поток к последнему (Last processor ) процессору. Комбинированный подход (NT-системы) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 47

Диспетчеризация потоков в многопроцессорной сиcтеме с Windows 2000 Операционные системы. (с) Кафедра ИСТ, Маракасов Диспетчеризация потоков в многопроцессорной сиcтеме с Windows 2000 Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 48

Архитектура операционных систем n Монолитные системы q n Многоуровневые (слоёные) системы q n IBM Архитектура операционных систем n Монолитные системы q n Многоуровневые (слоёные) системы q n IBM VM/370, JVM Экзоядерные системы q n THE, MULTICS, Windows NT Виртуальные машины q n Классические ядра UNIX, Linux Исследования в MIT Микроядерные системы (модель клиент-сервер) q QNX, MINIX Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 49

Монолитные системы Главная функция Сервисная функция Утилита Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. Монолитные системы Главная функция Сервисная функция Утилита Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Сервисная функция Утилита 50

Многоуровневые (слоёные, Layered) системы ПОЛЬЗОВАТЕЛЬСКОЕ ПРИЛОЖЕНИЕ УПРАВЛЕНИЕ ВВОДОМ-ВЫВОДОМ УПРАВЛЕНИЕ ПАМЯТЬЮ БАЗОВЫЕ СЕРВИСЫ УПРАВЛЕНИЯ ПРОЦЕССАМИ Многоуровневые (слоёные, Layered) системы ПОЛЬЗОВАТЕЛЬСКОЕ ПРИЛОЖЕНИЕ УПРАВЛЕНИЕ ВВОДОМ-ВЫВОДОМ УПРАВЛЕНИЕ ПАМЯТЬЮ БАЗОВЫЕ СЕРВИСЫ УПРАВЛЕНИЯ ПРОЦЕССАМИ АППАРАТУРА Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 51

Свойства слоёв абстракции Г. Майерс (1) 1. 2. 3. 4. На каждом слое ничего Свойства слоёв абстракции Г. Майерс (1) 1. 2. 3. 4. На каждом слое ничего не известно о свойствах (и даже существовании) более высоких слоёв На каждом слое ничего не известно о строении других слоёв. Связь между слоями осуществляется только через жестко заданные интерфейсы. Каждый слой представляет собой группу компонентов, некоторые из которых являются внутренними. Имена других компонентов известны на следующем, более высоком слое и представляют собой интерфейс с этим слоем. Каждый слой располагает определёнными ресурсами и либо скрывает от других слоёв, либо представляет другим слоям некоторые их абстракции (виртуальные ресурсы). Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 52

Свойства слоёв абстракции Г. Майерс (2) 5. 6. 7. 8. Каждый слой может обеспечивать Свойства слоёв абстракции Г. Майерс (2) 5. 6. 7. 8. Каждый слой может обеспечивать некоторую абстракцию данных в системе. Предположения, которые на каждом слое делаются относительно других слоёв должны быть минимальны. Связь между слоями ограничена явными аргументами. Недопустимо совместное использование слоями глобальных данных. Каждый слой должен иметь высокое зацепление и низкую связанность. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 53

Виртуальные машины n Виртуализация всех видов ресурсов вычислительной системы называется виртуальной машиной (Virtual Machine, Виртуальные машины n Виртуализация всех видов ресурсов вычислительной системы называется виртуальной машиной (Virtual Machine, VM) VM VM VM МОНИТОР ВИРТУАЛЬНОЙ МАШИНЫ АППАРАТУРА Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 54

Микроядра (MINIX, QNX, Fluke, Paramecium, SPIN, Vino) n n n Компактное ядро ОС – Микроядра (MINIX, QNX, Fluke, Paramecium, SPIN, Vino) n n n Компактное ядро ОС – микроядро, наноядро. Ядро содержит только минимально необходимую функциональность. Многие сервисы ОС, традиционно включаемые в состав ядра, выполняются в защищённых подсистемах: q q q Драйверы устройств Файловая система Менеджер виртуальной памяти Оконная подсистема Сервисы защиты. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 55

Архитектура микроядра Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) Архитектура микроядра Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 56

Преимущества микроядерной архитектуры n Единообразные интерфейсы q q n Расширяемость q n Отсутствуют различия Преимущества микроядерной архитектуры n Единообразные интерфейсы q q n Расширяемость q n Отсутствуют различия между службами ядра и службами режима пользователя. Доступ к службам осуществляется через механизм сообщений Лёгкость включения новых служб Гибкость q q Добавления новых свойств Исключение свойств из системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 57

Преимущества микроядерной архитектуры n n Переносимость q Для переноса на другую платформу требуются изменения Преимущества микроядерной архитектуры n n Переносимость q Для переноса на другую платформу требуются изменения только в микроядре. Другие службы остаются неизменными. Надёжность q Модульная архитектура q Возможность тщательного тестирования маленького ядра. Поддержка распределённых систем q Подсистемы посылают сообщения не зная какая именно машина в сети будет его обрабатывать Объектно-ориентированный подход q Компоненты системы являются объектами со строго опредёлёнными интерфейсами. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 58

Архитектура микроядра Режим пользователя Приложение пользователя Файловая подсистема Подсистема управления виртуальной памятью М И Архитектура микроядра Режим пользователя Приложение пользователя Файловая подсистема Подсистема управления виртуальной памятью М И К Р О Я Д Р О Режим ядра Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 59

Микроядро в распределённой системе Машина № 1 Машина № 2 Машина №N Приложение пользователя Микроядро в распределённой системе Машина № 1 Машина № 2 Машина №N Приложение пользователя Сервер файлов Сервер процессов М И К Р О Я Д Р О Сеть Сообщение от клиента серверу Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 60

Архитектура микроядра n n n Взаимодействие между процессами (IPC – Inter Process Communications) Управление Архитектура микроядра n n n Взаимодействие между процессами (IPC – Inter Process Communications) Управление вводом-выводом Управление прерываниями Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 61

Недостатки микроядерной архитектуры Чистое микроядро непрактично с точки зрения производительности Системный вызов Традиционная архитектура Недостатки микроядерной архитектуры Чистое микроядро непрактично с точки зрения производительности Системный вызов Традиционная архитектура Системный вызов идёт через микроядро Вызов сервиса подсистемы Микроядерная архитектура Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 62

Смешанные архитектуры n Большинство современных коммерческих операционных систем нельзя отнести сугубо к монолитной либо Смешанные архитектуры n Большинство современных коммерческих операционных систем нельзя отнести сугубо к монолитной либо микроядерной архитектуре: q q Достаточно большое ядро с загружаемыми драйверами устройств и некоторыми важными подсистемами, т. к. : менеджер памяти, файловая система и т. п. Ряд подсистем (серверы) функционируют в режиме пользователя и используют передачу сообщений через ядро для коммуникации с другими подсистемами. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 63

Архитектура систем семейства NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - Архитектура систем семейства NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 64

Надёжность операционных систем http: //www. osp. ru/text/302/2700569/p 1. html n Огромные размеры современных ОС Надёжность операционных систем http: //www. osp. ru/text/302/2700569/p 1. html n Огромные размеры современных ОС n n q q q n Ядро Linux ~2 500 000 строк кода. Ядро Windows XP ~6 000 строк кода. Число ошибок составляет (по различным исследованиям) от 6 до 16 на 1000 строк кода ~70% кода ядра составляют драйверы устройств с ещё более низкой надёжностью. Разработчики не владеют полной информацией о системе Трудность изоляции ошибок в компонентах Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 65

Повышение надёжности ОС. Nooks Цели проекта Nooks: 1. защитить ядра от ошибок в драйверах; Повышение надёжности ОС. Nooks Цели проекта Nooks: 1. защитить ядра от ошибок в драйверах; 2. обеспечить автоматическое восстановление в случае сбоя в драйвере; 3. сделать все это путем минимальных изменений в существующих драйверах и ядре. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 66

Повышение надёжности ОС. Паравиртуальные машины. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 Повышение надёжности ОС. Паравиртуальные машины. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 67

Повышение надёжности ОС. Микроядерные операционные системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. Повышение надёжности ОС. Микроядерные операционные системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 68

Повышение надёжности ОС. Защита на базе языка. ОС Singularity (Microsoft Research) n Sing# q Повышение надёжности ОС. Защита на базе языка. ОС Singularity (Microsoft Research) n Sing# q n n n Безопасность типов Система передачи сообщений Сборка мусора Процессы могут разделять одно адресное пространство q n У каждого процесса свой домен (Domain) Микроядро q n n Контроль доступа к аппаратуре Распределение памяти Синхронизация Передача сообщений Драйверы устройств q n Работа в отдельных процессах Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 69

Список литературы 1. Столлингс, Вильям. Операционные системы, 4 -е издание. «Вильямс» , 2002. 2. Список литературы 1. Столлингс, Вильям. Операционные системы, 4 -е издание. «Вильямс» , 2002. 2. Соломон Д. , Руссинович М. Внутреннее устройство Microsoft Windows 2000. СПб. : Питер, «Русская Редакция» , 2001. 3. Рихтер Дж. Windows для профессионалов: создание эффективных Win 32 приложений с учётом специфики 64 -разрядной версии Windows. 4 -е изд. «Русская Редакция» , 2001. 4. Э. Таненбаум. Современные операционные системы. 2 -е изд. СПб. : Питер, 2005. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 70

Резерв Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Резерв Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 71

Структура потоков в Windows NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 Структура потоков в Windows NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 72