
- •Понятие операционной системы (ос), цели ее работы. Классификация компьютерных систем
- •Обеспечение удобства, эффективности, надежности,
- •История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
- •Особенности ос для различных классов компьютерных систем. Ос реального времени. Ос для облачных вычислений
- •Архитектура компьютерной системы
- •Управление процессами
- •Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы. Уровни абстракции ос. Архитектура unix и ms-dos
- •Системные вызовы (system calls)
- •Уровни абстракции ос
- •Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
- •Виртуальная машина Java (jvm)
- •Управление процессами. Планирование и диспетчеризация процессов
- •Методы взаимодействия процессов
- •Потоки (threads) и многопоточное выполнение программ (multi-threading)
- •Стратегии и критерии диспетчеризации процессов
- •Методы синхронизации процессов
- •Тупики (deadlocks), методы предотвращения и обнаружения тупиков
- •Алгоритм банкира
- •Управление памятью
- •Схемы разделения памяти
- •Страничная организация памяти
- •Решаемые задачи:
- •Сегментная организация памяти
- •Виртуальная память
- •Системы файлов
- •Классификация файловых систем
- •Задачи файловой системы
- •Виртуальные файловые системы (vfs). Реализации файловых систем. Сетевая файловая система nfs Виртуальные файловые системы
- •Системы ввода-вывода
- •Сети и сетевые структуры Распределенные системы
- •Классические и современные сетевые коммуникационные протоколы Протоколы коммуникации
- •Безопасность операционных систем и сетей. Trustworthy Computing Безопасность (security) – защита от внешних атак.
- •Основная суть инициативы twc заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов.
- •Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
- •Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
- •Обзор архитектуры и возможностей систем Windows 2000/xp/2003/Vista/2008/7
- •Оболочка Norton Commander и ее графические аналоги для Windows:
- •29. Far Manager – текстовая оболочка
Уровни абстракции ос
Каждый новый уровень абстракции M определяет новые операции, в реализации которых используются операциипредшествующего уровня M-1. Кроме того, уровень M-1 может иметь скрытые операции, используемые только на этом уровне и недоступные другим уровням.
Архитектура UNIX и MS-DOS.
В архитектуре MS DOS нет явного разделения на модули. Различаются уровень прикладной программы, резидентной системной программы, драйверы устройств MS DOS, драйверы устройств ROM BIOS.
В архитектуре системы UNIX более явно выделяются несколько уровней абстракции. Система состоит из ядра и системных программ. Для обращения к ядру используется интерфейс системных вызовов. На самом верхнем уровне пользователям доступны командные процессоры, компиляторы и интерпретаторы, системные библиотеки.
Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
Уровни абстракции ОС.
Каждый новый уровень абстракции M определяет новые операции, в реализации которых используются операциипредшествующего уровня M-1. Кроме того, уровень M-1 может иметь скрытые операции, используемые только на этом уровне и недоступные другим уровням.
ОС с архитектурой микроядра.
Микроядро (micro-kernel) – один из важнейших принципов разработки ОС, который заключается в переносе максимально возможного числа модулей из системного в пользовательское "пространство", т.е. ОС разрабатывается таким образом, что большинство ее модулей выполняются в пользовательском режиме. Коммуникация выполняется между пользовательскими модулями с помощью передачи сообщений. Преимущества такого подхода:
микроядро легче расширять;
легче переносить ОС на новые аппаратные платформы;
увеличивается надежность ОС, так как большее число программ выполняются в непривилегированном режиме;
улучшается безопасность ОС.
Виртуальные машины – другой распространенный подход к разработке операционных систем и их пользовательских интерфейсов
Концепция виртуальной машины доводит подход, основанный на уровнях абстракции, до своего логического завершения. Согласно данной концепции, совокупность аппаратуры и ОС трактуется как машина. Виртуальная машина предоставляет интерфейс, полностью аналогичный интерфейсу обычной машины без базового программного обеспечения. ОС создает иллюзию одновременного исполнения нескольких процессов, каждого в своей (виртуальной) памяти. Вообще, виртуализация – один из наиболее современных принципов развития и использования программного обеспечения.
Пример: система виртуальных машин (SVM) в ОС IBM 360/370, разработанная в конце 1980-х гг. Более современный пример: Microsoft Virtual PC – продукт, эмулирующий виртуальную машину, в которую может быть инсталлирована любая другая ОС, отличная от основной.
Виртуальная машина Java (jvm)
JVM состоит из:
загрузчика классов (class loader), выполняющего загрузку классов в виртуальную машину во время выполнения программы;
верификатора классов (class verifier), выполняющего при загрузке класса проверку корректности его байт-кода, контроль типов и другие необходимые проверки;
интерпретатора (runtime interpreter), выполняющего интерпретацию (эмуляцию) команд байт-кода – абстрактной машиныJava;
Just-In-Time (JIT) – компилятора, выполняющего при первом вызове каждого метода его компиляцию в объектный кодцелевой платформы ( native – код), что позволяет повысить суммарную производительность выполнения программ на Java.
Аналогичную архитектуру имеет виртуальная машина VES (Virtual Execution System)
Цели проектирования и разработки ОС
Точки зрения пользователей и разработчиков ОС в данном отношении несколько различаются.
Цели с точки зрения пользователя: ОС должна быть удобной в использовании, простой для изучения, надежной, безопасной и быстрой.
Цели с точки зрения разработчика ОС: ОС должна быть несложной для проектирования, реализации и сопровождения, а также гибкой, надежной, свободной от ошибок и эффективной.
Генерация операционной системы
Программа генерации ОС получает информацию о специфической конфигурации компьютерной системы.
После генерации и инсталляции ОС система готова к работе.
Следующий этап - загрузка (booting) – запуск компьютера посредством загрузки ядра ОС. При запуске компьютера первой запускается программа раскрутки (bootstrap program) – код, хранящийся в постоянной памяти (ROM) базовой системы ввода-вывода (BIOS) компьютера. Код программы раскрутки находит ядро ОС, загружает его в память и запускает.