Эволюция, классификация и области применения ОС ОС – программное обеспечение, которое выполняет роль интерфейса между пользователем и аппаратурой ЭВМ, управляет выполнением программ и предоставляет различные сервисы: распределение ресурсов, планирование, управление вводом/выводом данных. Поколения: 0. 40-е. Была последовательная обработка данных. Данные вбивались бит за битом. 1. 50.е. Системы пакетной обработки. 2. 60-е. Появление многозадачных систем, систем разделения времени, реального времени. Многозадачность (Multitasking) – такой режим работы вычислительной системы, при котором осуществляется последовательное или параллельное выполнение нескольких задач. Разделение времени (Time-sharing) – параллельное использование вычислительной системы несколькими пользователями. Реального времени (Real-time OS) – планирование задач реального времени и управление ими. 3. Середина 60-х – середина 70-х. Появление вычислительных машин общего назначения. Система была построена по принципу абстракций (одна абстракция опиралась на другую: для примера – 1-й уровень абстракции над оборудованием)ю 4. 70-е – 80-е. Появление систем баз данных. Популярность электронной почты, пересылки файлов и удаленный доступ к БД. Появление распределенной обработки данных – использование множества независимых компьютеров для выполнения общей задачи. 5. 90-е и по наше время. Появление ОС с современными графическими оболочками. Появление объектно-ориентированных систем. - Существуют следующие классификации ОС: - Общего назначения (DOS, Windows); - Реального времени (QNX, OS 2000); - Специального назначения. По типу ядра: - микроядро; - монолитное ядро; - гибридное ядро; - экзоядро. По типу системной архитектуры: модульные (Unix, Windows) объектно-ориентированные системы (Apertos, Muse) По количеству пользователей: однопользовательские многопользовательские По уровню межпроцессного взаимодействия: однозадачные многзадачные сетевые ОС – ОС, которая обеспечивает поддержку обычных серверных систем в сети компьютеров (Network OS) распределенные ОС (процесс свободно чувствует себя в сети). Общая ОС, совместно используемая сетью компьютеров, обеспечивающая поддержку для межпроцессного взаимодействия, перемещения процессов, взаимоисключений, предотвращения взаимоблокировок. - По типу многозадачности: с вытесняющей с невытесняющей По поддержке потоков: с поддержкой потоков без поддержки потоков Ядро ОС – та часть ОС, которая включает наиболее интенсивно используемые функции. Ядро постоянно в оперативной памяти. Оно работает в привилегированном режиме и отвечает за вызовы процессов и прерываний от устройств. ОС с монолитным ядром появились первыми. Монолитное ядро – большое ядро, виртуально содержащее всю ОС, включая планировщик, файловую систему, драйверы устройств и управление памятью (Monolithic Kernel). Все функциональные компоненты имеют доступ ко всем его внутренним структурам и подпрограммам. Это ядро реализовано как единый процесс, в котором элементы разделяют одно и тоже адресное пространство. Пример – Unix. ОС с микроядром – малое привилегированное ядро ОС, обеспечивающие планирование процессов, управление памятью и базовые средства синхронизации для обеспечения совместного функционирования нескольких процессов. Для выполнения прочих функций связанных с ОС используют отдельные процессы с более низким приоритетом (вне ядра). Пример – QNX, Micros, L4, Mag. Задача (Task) - то же, что и процесс. Единица выделения ресурсов в системе. Процесс (Process) - выполняемая программа. Процесс управляется и планируется операционной системой. Поток (Thread) - независимо планируемый контекст выполнения, разделяющий единое адресное пространство с другими потоками. Единица планирования. Драйвер устройства (Device driver) - модуль операционной системы (обычно находящийся в ядре), который работает непосредственно с устройством или контроллером ввода/вывода. Командная оболочка (Shell) - часть операционной системы, интерпретирующая интерактивные пользовательские команды и команды языка управления заданиями. (По сути, представляет собой интерфейс между пользователем и операционной системой.) Обработчик прерывания (Interrupt handler) - подпрограмма, обычно являющаяся частью операционной системы. В случае прерывания управление передается соответствующему обработчику, который предпринимает определенные действия в ответ на вызвавшие прерывание условия. Загрузчик – программа, подготавливающая программу к выполнению и инициализирующая это выполнение. Выполняет операции: - выделения места для программы в основной памяти; - разрешение символической ссылки между объектами программы (связывание); - настройка всех величин в программе, зависимых от физических адресов в соответствии с адресами, выделяемыми для программы в области памяти; - физическое размещение команд и данных в памяти.