3-Multithreading_overview.ppt
- Количество слайдов: 72
Операционные системы Потоки, планирование, SMP, архитектура и надёжность операционных систем. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 1
Многопоточность Способность операционной системы поддерживать в рамках одного процесса выполнение нескольких потоков. n MS-DOS – один процесс с одним потоком n UNIX – много процессов с одним потоком в каждом процессе n Windows, Solaris, Linux, Mach, OS/2 – множество процессов со множеством потоков в каждом процессе. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 2
Многопоточность Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 3
Характеристики процесса n n Виртуальное адресное пространство, в котором содержится образ процесса Защищённый доступ к процессорам, другим процессам для обмена информацией, файлам и ресурсам вводавывода. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 4
Характеристики потока n n n Состояние выполнения потока Контекст потока Стек выполнения: q q n n Стек пользовательского режима Стек режима ядра Статическая память для локальных переменных (TLS в семействе Win 32) Доступ к памяти и ресурсам процесса, которому он принадлежит. Ресурсы процесса разделяются между всеми его потоками. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 5
Однопоточная и многопоточная модель процесса. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 6
Преимущества использования потоков n n Создание потока занимает меньше времени, чем создание процесса. Поток можно завершить быстрее, чем процесс. Переключение между потоками процесса происходит намного быстрее. Потоки одного процесса разделяют его ресурсы, что позволяет потокам взаимодействовать без привлечения ядра ОС. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 7
Потоки на однопроцессорной системе n Работа в приоритетном (foreground) и фоновых режимах (background). q n Асинхронная обработка q n Работа с низкопроизводительными устройствами Повышение скорости выполнения q n Электронные таблицы Одновременные операции по загрузке и обработке данных Модульная структура программы q Осуществление разнообразных действий и/или выполняющие множество операций ввода-вывода из и на различные источники. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 8
Потоки n n Приостановка (Suspending) процесса приводит к простановке всех его потоков Завершение процесса приводит к завершению всех его потоков. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 9
Основные состояния потока n События, изменяющие состояние потока q Порождение (Spawn) n n q Блокирование n n q Ожидание некоторого события с сохранением контекста Процессор переходит к выполнению другого потока. Разблокирование n q Первичный поток процесса порождается ОС. Другие потоки процесса порождаются потоками (начиная с первичного). Новый поток создаётся со своим контекстом и стеками и помещается в очередь готовых к выполнению. Наступление события и перевод потока в готовое состояние Завершение n Разрушение контекста и стеков потока. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 10
Состояние потока в Windows Server 2003 Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 11
Алгоритмы планирования в ОС (1) Пакетная обработка данных Интерактивные системы Системы реального времени Неприоритетные алгоритмы планирования Приоритетные алгоритмы планирования Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 12
Задачи алгоритмов планирования Справедливость Принудительное применение политики Баланс Пропускная способность Оборотное время Использование процессора Время отклика Соразмерность Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings Окончание работы к сроку Предсказуемость 13
Планирование в системах пакетной обработки 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 Планирование на основе относительного приоритета Планирование на основе абсолютного приоритета (вытесняющий алгоритм) Несколько приоритетных очередей «Самый короткий процесс – следующий» Гарантированное планирование Лотерейное планирование Справедливое планирование. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 15
Планирование в ОСРВ n Теория планирования в реальном времени предоставляет механизмы для изучения планируемости группы задач. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 16
Взаимодействие «клиент-сервер» 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 Тратится время на создание нового потока и его последующее завершение. Потоки потребляют ресурсы системы q q q Бесконтрольное порождение потоков может привести к исчерпанию ресурсов системы и уязвимость к Do. S атакам. Тратится время на переключение контекста между потоками. В системе может существовать много «лишних» потоков, находящихся в состоянии ожидания. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 22
Многопоточный сервер на базе пула потоков. 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 - 2008. (c) William Stollings 25
Реализация потоков в ОС n n Потоки на уровне пользователя (User-level threads) Потоки на уровне ядра (Kernel-level threads) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 26
Потоки на уровне пользователя n n Управление потоками выполняется на уровне приложения Ядро операционной системы не располагает информацией о существовании потоков. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 27
Потоки на уровне пользователя Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 28
Потоки уровня ядра n n Ядро операционной системы владеет информацией о процессах и потоках Диспетчерезируемой единицей в системе является поток. q Пример: OS/2, Windows Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 29
Испытания подходов к реализации потоков в UNIX-подобной ОС на VAX Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 30
Комбинированный подход n n n Потоки создаются на пользовательском уровне Диспетчеризация и синхронизация потоков выполняется на пользовательском уровне Потоки пользовательского режима проецируются на потоки уровня ядра. q Пример: Solaris, Windows Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 31
Потоки в Windows API #include
Потоки в 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
Потоки в 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 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. 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 - 2008. (c) William Stollings 38
Модели параллелизма в программах n n n Декларативный параллелизм данных. Необходимо выразить желаемый результат обработки данных. Параллелизм выполнения – задача среды разработки. Пример: SQL, PLINQ, Open MP, MPI. Императивный параллелизм данных. Необходимо выразить императивный оператор, ориентированный на обработку данных. Параллелизм выполнения оператора – задача среды разработки. Пример: операторы for, foreach (в PLINQ). Императивный параллелизм задач. Явное выражение операторов программы, выполнение которых должно быть выполнено параллельно. Пример: Явное использование потоков в программировании. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 39
Классификация систем Флинна n SISD q n SIMD q n Каждая инструкция выполняется над различными наборами данных разных процессов (Векторные и матричные процессоры). MISD q n Один процессор исполняет единственный поток команд; данные хранятся в единой области памяти. Единая последовательность данных передаётся различным процессорам для обработки MIMD q Несколько процессоров одновременно выполняют команды над различными наборами данных. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 40
Параллельные архитектуры Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 41
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 - 2008. (c) William Stollings 43
SMP versus AMP. Масштабируемость. ь ст о м уе р Производительность и аб т ш ас м ая н й е ин Л SMP AMP Число процессоров Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 44
Организация SMP систем Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 45
Соглашения относительно многопроцессорных ОС n Конкурирующие потоки или процессы. q n Диспетчеризация q n Обеспечить синхронизацию при доступе к разделяемым ресурсам. Управление памятью q n Планирование выполняется на любом из процессором. Синхронизация q n Реентерабельный код системы Обеспечить возможность разделения страниц памяти между несколькими процессорами Надёжность и отказоустойчивость q Отказ одного из процессоров не должен остановить работу всей системы. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 46
Диспетчеризация потоков на SMP n Поток находится в состоянии «готов» : q q q Подключать поток к любому простаивающему (Standby processor) процессору Подключать поток к любому из родственных процессоров (Affinity processor) Подключать поток к идеальному (Ideal processor ) процессору Подключать поток к последнему (Last processor ) процессору. Комбинированный подход (NT-системы) Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 47
Диспетчеризация потоков в многопроцессорной сиcтеме с Windows 2000 Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 48
Архитектура операционных систем 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) системы ПОЛЬЗОВАТЕЛЬСКОЕ ПРИЛОЖЕНИЕ УПРАВЛЕНИЕ ВВОДОМ-ВЫВОДОМ УПРАВЛЕНИЕ ПАМЯТЬЮ БАЗОВЫЕ СЕРВИСЫ УПРАВЛЕНИЯ ПРОЦЕССАМИ АППАРАТУРА Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 51
Свойства слоёв абстракции Г. Майерс (1) 1. 2. 3. 4. На каждом слое ничего не известно о свойствах (и даже существовании) более высоких слоёв На каждом слое ничего не известно о строении других слоёв. Связь между слоями осуществляется только через жестко заданные интерфейсы. Каждый слой представляет собой группу компонентов, некоторые из которых являются внутренними. Имена других компонентов известны на следующем, более высоком слое и представляют собой интерфейс с этим слоем. Каждый слой располагает определёнными ресурсами и либо скрывает от других слоёв, либо представляет другим слоям некоторые их абстракции (виртуальные ресурсы). Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 52
Свойства слоёв абстракции Г. Майерс (2) 5. 6. 7. 8. Каждый слой может обеспечивать некоторую абстракцию данных в системе. Предположения, которые на каждом слое делаются относительно других слоёв должны быть минимальны. Связь между слоями ограничена явными аргументами. Недопустимо совместное использование слоями глобальных данных. Каждый слой должен иметь высокое зацепление и низкую связанность. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 53
Виртуальные машины n Виртуализация всех видов ресурсов вычислительной системы называется виртуальной машиной (Virtual Machine, VM) VM VM VM МОНИТОР ВИРТУАЛЬНОЙ МАШИНЫ АППАРАТУРА Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 54
Микроядра (MINIX, QNX, Fluke, Paramecium, SPIN, Vino) n n n Компактное ядро ОС – микроядро, наноядро. Ядро содержит только минимально необходимую функциональность. Многие сервисы ОС, традиционно включаемые в состав ядра, выполняются в защищённых подсистемах: q q q Драйверы устройств Файловая система Менеджер виртуальной памяти Оконная подсистема Сервисы защиты. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 55
Архитектура микроядра Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 56
Преимущества микроядерной архитектуры n Единообразные интерфейсы q q n Расширяемость q n Отсутствуют различия между службами ядра и службами режима пользователя. Доступ к службам осуществляется через механизм сообщений Лёгкость включения новых служб Гибкость q q Добавления новых свойств Исключение свойств из системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 57
Преимущества микроядерной архитектуры n n Переносимость q Для переноса на другую платформу требуются изменения только в микроядре. Другие службы остаются неизменными. Надёжность q Модульная архитектура q Возможность тщательного тестирования маленького ядра. Поддержка распределённых систем q Подсистемы посылают сообщения не зная какая именно машина в сети будет его обрабатывать Объектно-ориентированный подход q Компоненты системы являются объектами со строго опредёлёнными интерфейсами. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 58
Архитектура микроядра Режим пользователя Приложение пользователя Файловая подсистема Подсистема управления виртуальной памятью М И К Р О Я Д Р О Режим ядра Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 59
Микроядро в распределённой системе Машина № 1 Машина № 2 Машина №N Приложение пользователя Сервер файлов Сервер процессов М И К Р О Я Д Р О Сеть Сообщение от клиента серверу Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 60
Архитектура микроядра n n n Взаимодействие между процессами (IPC – Inter Process Communications) Управление вводом-выводом Управление прерываниями Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 61
Недостатки микроядерной архитектуры Чистое микроядро непрактично с точки зрения производительности Системный вызов Традиционная архитектура Системный вызов идёт через микроядро Вызов сервиса подсистемы Микроядерная архитектура Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 62
Смешанные архитектуры n Большинство современных коммерческих операционных систем нельзя отнести сугубо к монолитной либо микроядерной архитектуре: q q Достаточно большое ядро с загружаемыми драйверами устройств и некоторыми важными подсистемами, т. к. : менеджер памяти, файловая система и т. п. Ряд подсистем (серверы) функционируют в режиме пользователя и используют передачу сообщений через ядро для коммуникации с другими подсистемами. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 63
Архитектура систем семейства NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 64
Надёжность операционных систем 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. защитить ядра от ошибок в драйверах; 2. обеспечить автоматическое восстановление в случае сбоя в драйвере; 3. сделать все это путем минимальных изменений в существующих драйверах и ядре. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 66
Повышение надёжности ОС. Паравиртуальные машины. Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 67
Повышение надёжности ОС. Микроядерные операционные системы Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 68
Повышение надёжности ОС. Защита на базе языка. ОС 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. Соломон Д. , Руссинович М. Внутреннее устройство 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 Stollings 71
Структура потоков в Windows NT Операционные системы. (с) Кафедра ИСТ, Маракасов Ф. В. 2006 - 2008. (c) William Stollings 72


