А.А. Мокрушин ВВЕДЕНИЕ В ОПЕРАЦИОННЫЕ СИСТЕМЫ Научный редактор: Обабков И. Н. доц., канд. тех. наук Для студентов всех форм обучения технических направлений подготовки Введение в операционные системы 1. 2. 3. 4. Определение ОС История развития Классификация Основные понятия ОС 2 1. Определение ОС • Операционная система (ОС) - это совокупность программ, которая координирует работу компьютера и управляет размещением программ и данных в оперативной памяти компьютера, интерпретирует команды, управляет устройствами ввода-вывода, распределяет аппаратные ресурсы. 3 1. Определение ОС Пользователь Пользователь отдает команду ОС Операционная система ОС кодирует команду на машинном уровне Микроархитектура, набор команд Команда выполняется аппаратурой компьютера Аппаратные устройства 4 1. Что такое операционная система • Удобство. Операционная система делает использование компьютера простым и удобным • Эффективность. Операционная система позволяет эффективно использовать ресурсы компьютерной системы. • Возможность развития. Операционная система должна быть организована так, чтобы она допускала эффективную разработку, тестирование и внедрение новых приложений и системных функций. • Защита. Операционная система должна обеспечивать безопасную работу пользователей и их программ. 5 1. Прикладной интерфейс • Разработка программ. Операционная система предоставляет разнообразные инструменты и сервисы. • Исполнение программ. Операционная система выполняет выполнить ряд действий для запуска программы вместо пользователя. • Доступ к устройствам ввода-вывода. Операционная система предоставляет пользователю единообразный интерфейс, который обеспечивает доступ к устройству ввода-вывода с помощью простых команд. 6 1. Менеджер ресурсов • планирование ресурса —какому процессу, когда и в каком количестве следует выделить данный ресурс; • удовлетворение запросов на ресурсы; • отслеживание состояния и учет использования ресурса разрешение конфликтов между процессами. • разрешение конфликтов между процессами. 7 1. Возможность развития ОС. • Обновление и возникновение новых видов аппаратного обеспечения. • Новые сервисы. • Исправления 8 1. Защита пользователей и программ • Контролируемый доступ к файлам. Операционная система должна обеспечить работу механизма защиты при обращении к файлам. • Системный доступ. Операционная система управляет доступом к совместно используемой или общедоступной вычислительной системы в целом. Должна обеспечивать защиту ресурсов и данных от несанкционированного использования, а также разрешать конфликты. • Обнаружение ошибок и их обработка. В случае возникновения различных ошибок операционная система должна минимизировать влияние ошибки на работу приложения. 9 2. История развития ОС Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет 10 2. История развития ОС Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы Ранняя система пакетной обработки: программист приносит карты для IBM 1401 (а); IBM 1401 записывает пакет заданий немагнитную ленту (б); оператор приносит входные данные на ленте к IBM 7094 (в); IBM 7094 выполняет вычисления (г); оператор переносит ленту с выходными 11 данными на IBM 1401 (д); IBM 1401 печатает выходные данные (е) 2. История развития ОС Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные операционная система •Вычислительная техника становится более надежной и дешевой. Повышается производительность процессоров. •Введение техники подкачки-откачки •Пакетные системы начинают заниматься планированием заданий •Появление мультипрограммирования 12 2. История развития ОС Четвертый период (с 1980 г. по 2000г.). Персональные компьютеры. Классические, сетевые и распределенные системы •Появление больших интегральных схем (БИС). •рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем. •В середине 80-х стали бурно развиваться сети компьютеров 13 2. Особенности современного этапа развития ОС •В 90-е годы практически все операционные системы стали сетевыми •Во второй половине 90-х годов все производители операционных систем резко усилили поддержку средств работы с Интернетом •Особое внимание в течение всего последнего десятилетия уделялось корпоративным сетевым операционным системам. •На передний план вышли средства обеспечения безопасности. •Современным операционным системам присуща многоплатформенность •В последние годы получила дальнейшее развитие долговременная тенденция повышения удобства работы человека с компьютером 14 2. Требования к современным ОС • • • • • • Расширяемость. Расширяемость достигается за счет модульной структуры ОС, при которой программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс. Переносимость. код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностъю. Совместимость. Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС. Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Надежность и отказоустойчивость ОС прежде всего определяются архитектурными решениями, положенными в ее основу. Безопасность. Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. 15 Производительность. Операционная система должна обладать хорошим быстродействием и временем реакции. 3. Классификация ОС • По размерам • По ресурсам • По алгоритмам управления 16 3. Классификация по размерам • Операционные системы для смарт-карт • Встроенные операционные системы • Операционные системы для персональных компьютеров • Серверные операционные системы • Многопроцессорные операционные системы • Распределенные ОС 17 3. Особенности использования ресурсов • системы пакетной обработки (например, OC EC), • системы разделения времени (UNIX, VMS), • системы реального времени (QNX, RT/11). 18 3. Особенности алгоритмов управления • Поддержка многозадачности. • Поддержка многопользовательского режима. • Вытесняющая и невытесняющая многозадачность. • Поддержка многопоточности. • Многопроцессорная обработка. 19 3. Основные понятия • Процессы и потоки • Архитектура • Файловая система 20 3. Определение «процесса» Процесс - абстракция, представляющая программу во время ее выполнения Процессу ОС выделяет ресурсы, необходимые для выполнения программы, например: – адресное пространство процесса содержит его программный код, данные и стек (или стеки) – файлы используются процессом для чтения входных данных и записи выходных – устройства ввода-вывода используются в соответствии с их назначением Процесс – пассивный объект – владелец ресурсов, контейнер для выполнения потоков 21 3. Дескриптор процесса • Идентификатор процесса • Групповые параметры процесса • Параметры, используемые в процессе определения приоритета процесса при конкуренции за какой-либо ресурс • Состояние процесса • Статистические данные • Описание адресного пространства процесса • Контекст ввода-вывода • Контекст безопасности • Текущие системные параметры выполнения • Код завершения процесса • В Linux дескриптор процесса – структура task_struct (include/linux/sched.h), содержит около 100 полей! 22 3. Контекст процесса • Контекст – множество информации, полностью описывающее состояние объекта (в частности, достаточное для восстановления объекта в случае его удаления) • Контекст процесса включает – Множество информации, используемое операционной системой для управления ресурсом типа «процесс» – Адресное пространство процесса – Структуру и содержимое пользовательской части адресного пространства процесса – Множество ресурсов, используемых процессом или принадлежащих процессу, и их состояния 23 3. Понятие потока Процесс можно рассматривать как поток исполняемых команд или просто поток. У потока есть счетчик команд, отслеживающий порядок выполнения действий. У него есть регистры, в которых хранятся текущие переменные. У него есть стек данных. Процессы используются для группирования ресурсов, а потоки являются объектами, поочередно исполняющимися на центральном процессоре. 24 3. Поток / нить (thread) • Поток - абстракция, представляющая последовательное выполнение команд программы, развертывающееся во времени • Процесс может иметь несколько потоков – потоки совместно используют • глобальные и статические переменные (располагаются в регионе данных) • динамически распределяемую память (кучу) • системные ресурсы, выделенные процессу – каждый поток имеет свои собственные • программный счетчик (IP) • значения регистров • локальные переменные (т.е. свой собственный стек) • Процесс - совокупность взаимодействующих потоков и выделенных ему ресурсов 25 3. Процессы и потоки Процесс MS-DOS один поток в процессе несколько потоков в процессе Поток Процесс Java Поток Поток один процесс UNIX by design Процесс Процесс Поток Поток WinNT, Linux, Mach, … Процесс Процесс Поток Поток Поток Поток Поток несколько процессов 26 3. Многозадачность • пропускная способность - количество задач, выполняемых вычислительной системой в единицу времени; • удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине; • реактивность системы - способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата. 27 3. Многозадачность в системах пакетной обработки Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. В системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. 28 3. Многозадачность в системах пакетной обработки Время выполнения двух задач: в однопрограммной системе (а), в мультипрограммной системе (б)29 3. Многозадачность в системах разделения времени • Пользователь интерактивно работает сразу с несколькими приложениями • Принудительная приостановка приложений, и выделение кванта времени другому приложению • Пропускная способность меньше, чем у систем пакетной обработки • Дополнительные накладные расходы на переключение контекстов • Более эффективное использование ресурсов системы 30 3. Многозадачность в системах разделения времени 31 3. Многозадачность в системах реального времени • Фиксированный набор заранее разработанных программ • Переключение между задачами основано на расписании плановых работ • Пропускная способность не главное • Основной критерий реактивность или время реакции системы • Проектируется с учетом запаса 32 3. Типы архитектур операционных систем • Архитектура ОС – это способ построения системы, взаимосвязи между ее частями. 33 3. Ядро операционной системы Комплекс программ, составляющих основу операционной системы называется ядром. Приложения обращаются к ядру при помощи системных вызовов. Такие вызовы составляют систему API. 34 3. Ядро операционной системы Ядро постоянно работает. Управляет различными службами ОС: • Планировщик процессов • Диспетчер памяти • Диспетчер ввода-вывода • Диспетчер межпроцессного взаимодействия • Диспетчер файловой системы 35 3. Ядро операционной системы Остальные модули ОС выполняют менее обязательные функции. • Утилиты (архивирование, восстановление, антивирусы) • Системные обрабатывающие программы (компиляторы, компоновщики, т.п.) • Пользовательские приложения • Библиотеки процедур 36 3. Ядро операционной системы 37 3. Ядро в привилегированном режиме Ядро должно иметь привилегии по отношению к остальным приложениям. Аппаратура должна поддерживать два режима работы: пользовательский режим (user mode) и привилегированный режим (kernel mode – режим ядра) Обычно ядро ОС и некоторые ее части работают в привилегированном режиме, остальные приложения в пользовательском. 38 3. Ядро в привилегированном режиме 39 3. Модульное ядро Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем компьютеров. Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями, предоставляемыми ядром. Поэтому модульные ядра продолжают оставаться монолитными. Модульные ядра удобнее для разработки, чем традиционные монолитные ядра. Облегчаются выявление, локализация, отладка и устранение ошибок при тестировании. 40 3. Модульное ядро 41 3. Монолитное ядро Монолитное ядро — классическая и наиболее распространённая архитектура ядер операционных систем. Все части монолитного ядра работают в одном адресном пространстве. монолитное ядро — это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой. Достоинства: скорость работы, упрощённая разработка модулей. Недостатки: поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: традиционные ядра UNIX, такие как BSD, Linux. 42 3. Микроядро Микроядро — это минимальная реализация функций ядра операционной системы компьютера. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы. Сюда относятся: •управление адресным пространством оперативной памяти. •управление адресным пространством виртуальной памяти •управление процессами и потоками •средства межпроцессной коммуникации. Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Недостатки: Передача данных между процессами требует накладных расходов. Примеры операционных систем на основе микроядра: QNX, GNU/Hurd, Minix3. 43 3. Сравнение архитектур 44 3. Файлы и каталоги Файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Основные цели использования файла: • Долговременное и надежное хранение информации • Совместное использование информации 45 3. Файловая система • совокупность всех файлов на диске; • наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске; • комплекс системных программных средств, реализующих различные операции над файлами, такие как создание, уничтожение, чтение, запись, именование и поиск файлов. 46 3. Функции файловой системы • • • • Идентификация файлов. Распределение внешней памяти между файлами. Обеспечение надежности и отказоустойчивости. Обеспечение защиты от несанкционированного доступа. • Обеспечение совместного доступа к файлам, так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа. • Обеспечение высокой производительности. 47 3. Каталоги, организация каталогов 48