
- •1. Понятие операционной системы и цели ее работы
- •Компоненты компьютерной системы
- •Общая картина функционирования компьютерной системы
- •Классификация компьютерных систем
- •Классификация компьютерных архитектур
- •История ос
- •Отечественные операционные системы
- •Облачные вычисления и ос для облачных вычислений(развитие концепций и возможностей ос)
- •Вопрос 2
- •Особенности операционных систем для компьютеров общего назначения (mainframes)
- •Режим разделения времени и особенности ос с режимом разделения времени
- •Системы и ос реального времени
- •Особенности ос для персональных компьютеров
- •Карманные компьютеры (handhelds) и их ос
- •Параллельные компьютерные системы и особенности их ос.
- •Симметричные и асимметричные мультипроцессорные системы
- •Распределенные компьютерные системы и особенности их ос
- •Виды серверов в клиент-серверных компьютерных системах
- •Кластерные вычислительные системы и их ос
- •3. Вычислительные среды
- •Архитектура компьютерной системы
- •Функционирование компьютерной системы
- •Обработка прерываний
- •Архитектура ввода-вывода
- •Вопрос 4
- •Структура памяти
- •Аппаратная защита памяти и процессора
- •Аппаратная защита адресов памяти в системах с теговой архитектурой
- •Организация аппаратной защиты памяти и процессора
- •5. Основные компоненты ос
- •Исполнение программ в ms dos
- •Исполнение нескольких программ в unix
- •Коммуникационные модели
- •6. Уровни абстракции
- •Уровни абстракции ос
- •Структура системы ms dos
- •Структура системы unix
- •Операционные системы с микроядром
- •Виртуальная машина Java (jvm)
- •Цели проектирования и разработки ос
- •Механизмы и политики
- •Реализация операционных систем
- •Генерация операционной системы
- •7. Понятие процесса
- •Состояния процесса
- •Блок управления процессом
- •Переключение с одного процесса на другой
- •Очереди, связанные с диспетчеризацией процессов
- •Переключение контекста
- •Вопрос 8
- •Уничтожение процесса
- •Парадигма (шаблон) взаимодействия процессов: производитель – потребитель
- •9. Коммуникация процессов
- •Непосредственная коммуникация процессов
- •Косвенная коммуникация процессов (про синхронизацию есть немного)
- •Буферизация и очередь сообщений (сокеты)
- •Основные понятия диспетчеризации процессов
- •Вопрос 10 Однопоточные и многопоточные процессы
- •Проблемы многопоточности
- •Потоки posix (Pthreads
- •Потоки в Java
- •Вопрос 12 Основные понятия диспетчеризации процессов
- •Планировщик процессора
- •Критерии диспетчеризации
- •Предсказание длины следующего периода активности
- •Вопрос 13 Диспетчеризация по приоритетам
- •Стратегия Round Robin (rr)
- •Многоуровневая очередь
- •Многоуровневые аналитические очереди
- •Планирование в Solaris
- •Планирование в Windows 2000
- •Вопрос 14 История синхронизации
- •Синхронизация процессов по критическим секциям
- •Алгоритм решения проблемы критической секции
- •Вопрос 15 Синхронизация на основе общих семафоров
- •Семафоры как общее средство синхронизации
- •Общие и двоичные семафоры
- •Решение классических задач синхронизации с помощью семафоров
- •Вопрос 16
- •Мониторы
- •Синхронизация в ос Solaris
- •Синхронизация в Windows 2000
- •Вопрос 17 Проблема тупиков
- •Модель системы
- •Граф распределения ресурсов
- •Поиск тупиков по графу распределения ресурсов
- •Методы обработки тупиков
- •Предотвращение тупиков
- •Избежание тупиков
- •Безопасное состояние системы
- •Вопрос 18
- •19. Управление памятью.
- •Вопрос 20
- •Вопрос 22
- •23. Понятие файла
- •Вопрос 24
Структура системы unix
Хотя система UNIX и имеет более модульную структуру, чем MS DOS, ее архитектура ограничена функциональностью аппаратуры, для которой она были первоначально разработана, - миникомпьютеров. Поэтому первые версии UNIX имели ограниченное структурирование.
Система UNIX состоит из двух частей: системные программы и ядро.
Ядро содержит все модули, уровень абстракции которых ниже системных вызовов, но выше непосредственно аппаратных модулей.
UNIX обеспечивает поддержку файловой системы, диспетчеризацию процессора, управление памятью и другие основные функции ОС.
Архитектура UNIX изображена на рис. 6.6.
Рис.
6.6. Структура системы UNIX
В архитектуре UNIX уже четко прослеживаются три уровня абстракции – пользовательский (системные программы), системных вызовов и низкоуровневых модулей взаимодействия с аппаратурой.
Рис.
7.2. Уровни абстракции OS/2
На верхнем уровне абстракции прикладные программы пользователей обращаются к интерфейсу прикладного программирования (application programming interface – API),который представляет собой набор библиотечных функций. API структурирован по подсистемам, причем набор подсистем расширяем. Нижние уровни абстракции реализуют ядро ОС, выполняющее функции управления памятью, диспетчеризации задач и управления устройствами. Наконец, на самом низком уровне абстракции реализованы драйверы устройств.
Операционные системы с микроядром
Микроядро (micro-kernel) – один из важнейших принципов разработки ОС, который заключается в переносе максимально возможного числа модулей из системного в пользовательское "пространство", т.е. ОС разрабатывается таким образом, что большинство ее модулей выполняются в пользовательском режиме. Коммуникация выполняется между пользовательскими модулями с помощью передачи сообщений. Преимущества такого подхода:
микроядро легче расширять;
легче переносить ОС на новые аппаратные платформы;
увеличивается надежность ОС, так как большее число программ выполняются в непривилегированном режиме;
улучшается безопасность ОС.
По такому принципу разработаны все операционные системы семейства Windows NT. Структура Windows NT изображена на рис. 7.3.
Рис.
7.3. Клиент –серверная структура Windows
NT.
Система Windows NT (от New Technology), разработанная в середине 1990-х гг., воплотила в себе новый подход Microsoft к разработке операционных систем. Его отличительные черты: модульная клиент-серверная архитектура, микроядро, обеспечение совместимости с распространенными видами приложений для других ОС (например, OS/2), расширенные сетевые возможности, повышенная надежность. Windows NT с середины 1990-х гг. широко распространилась как серверная ОС. Для совместимости с приложениями для других ОС, в Windows NT реализованы соответствующие серверы. Взаимодействие клиентских приложений с ними показано на схеме. Аббревиатура Win32 означает "библиотеки (API) ОС Windows для 32-разрядных процессоров". POSIX (Portable Operating Systems of unIX type) – стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX. POSIX-совместимость означает, что приложение, предназначенное для UNIX, использует только стандартные возможности. Все современные ОС (начиная с Windows NT) обеспечивают совместимость с POSIX-приложениями. Заметим, что все серверы для совместимости с другими ОС в Windows NT выполняются в непривилегированном режиме, но обращаются к микроядру.
Виртуальные машины – другой распространенный подход к разработке операционных систем и их пользовательских интерфейсов
Концепция виртуальной машины доводит подход, основанный на уровнях абстракции, до своего логического завершения. Согласно данной концепции, совокупность аппаратуры и ОС трактуется как машина. Виртуальная машина предоставляет интерфейс, полностью аналогичный интерфейсу обычной машины без базового программного обеспечения. ОС создает иллюзию одновременного исполнения нескольких процессов, каждого в своей (виртуальной) памяти. Вообще, виртуализация – один из наиболее современных принципов развития и использования программного обеспечения.
Пример: система виртуальных машин (SVM) в ОС IBM 360/370, разработанная в конце 1980-х гг. Более современный пример: Microsoft Virtual PC – продукт, эмулирующий виртуальную машину, в которую может быть инсталлирована любая другая ОС, отличная от основной.
При работе пользователей в виртуальных машинах физические ресурсы реальной компьютерной системы используются совместно для поддержки нескольких виртуальных машин. Диспетчеризация процессора создает у каждого пользователя впечатление, что он имеет свой собственный процессор. Буферизация (spooling) и файловая система предоставляют виртуальные устройства ввода и вывода. Терминал обычного пользователя, характерный для более раннего режима разделения времени, действует как операторская консоль.
Модели операционных систем, разработанных без использования концепции виртуальной машины и на основе концепции виртуальных машин, изображены на рис. 7.4.
Рис.
7.4. Модели ОС без использования виртуальных
машин и на основе виртуальных машин.
Как видно из схемы, без использования виртуальных машин способ использования ОС и аппаратуры традиционен: имеется несколько пользовательских процессов, совместно использующих одно ядро ОС и, естественно, один экземпляр аппаратуры компьютера. При использовании виртуальных машин картина меняется: процесс каждого пользователя как бы получает в свое распоряжение свой персональный (виртуальный) компьютер и свой собственный экземпляр ядра ОС, работающий на этом виртуальном компьютере.
Концепция виртуальной машины имеет следующие преимущества и недостатки. С одной стороны, она обеспечивает полную защиту системных ресурсов, так как каждая виртуальная машина изолирована от других, Однако такая изоляция препятствует эффективному совместному использованию ресурсов реального компьютера.
Система виртуальных машин – хорошая основа для исследования и разработок в области ОС. Разработка систем выполняется над виртуальной машиной, а не на физической машине, и не нарушает нормального функционирования системы
Концепцию виртуальной машины, однако, труднее реализовать, так как трудно адекватно смоделировать используемую машину.