Эволюция операционных систем. Современный этап развития операционных систем персональных компьютеров.
Что такое ОС?
Комплекс выполняющих и обрабатывающих программ.
ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами. С одной точки зрения функцией ОС является предоставление пользователю некоторой расширенной или виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину, а с другой - функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования.
Эволюция операционных систем. Современный этап развития операционных систем персональных компьютеров.
Четыре периода в эволюции ОС (последний = современный).
Первый (1945-1955гг): первые ламповые компьютеры без ОС. «Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.»
Второй (1955-1965гг): Новая техническая база — полупроводниковые элементы. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программы за другой и тем самым увеличивали коэффициент загрузки процессора – прообраз ОС. В ходе реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине.
Третий (1965-1980гг): Переход к интегральным микросхемам. Создание семейств программно-совместимых машин. Реализация мультипрограммирования - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ: пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу, и при этом каждая программа загружается в свой участок оперативной памяти (раздел). Новый тип ОС - системы разделения времени (нацелено на создание для каждого отдельного пользователя иллюзии единоличного использования вычислительной машины).
Четвёртый — современный (1980г - наше время): Появление БИС. Эра ПК. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки "дружественного" программного обеспечения. MS DOS (Intel 8088, 80286, 80386 и 80486) и UNIX (RISC). Сетевые ОС.
Назначение и функции операционной системы. Операционные системы для автономного компьютера. Функциональные компоненты операционной системы автономного компьютера.
Операционная система компьютера - комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций:
- предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать;
- повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Функции операционной системы автономного компьютера обычно группируются либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами. Наиболее важными подсистемами управления ресурсами являются подсистемы управления процессами, памятью, файлами и внешними устройствами, а подсистемами, общими для всех ресурсов, являются подсистемы пользовательского интерфейса, защиты данных и администрирования.
Сетевые операционные системы. Функциональные компоненты сетевой ОС. Одноранговые и серверные сетевые операционные системы. Требования к современным операционным системам.
Сетевая ОС: во-первых, как совокупность ОС всех компьютеров сети и, во-вторых, как ОС отдельного компьютера, способного работать в сети.
- Средства управления локальными ресурсами компьютера реализуют все функции ОС автономного компьютера (распределение оперативной памяти между процессами, планирование и диспетчеризацию процессов, управление процессорами в мультипроцессорных машинах, управление внешней памятью, интерфейс с пользователем и т. д.);
- Сетевые средства, которые, в свою очередь, можно разделить на средства предоставления локальных ресурсов и услуг в общее пользование (серверная часть ОС), средства запроса доступа к удаленным ресурсам и услугам (клиентская часть ОС) и транспортные средства ОС, которые совместно с коммуникационной системой обеспечивают передачу сообщений между компьютерами сети.
В одноранговых сетях все компьютеры равны в возможностях доступа к ресурсам друг друга, на всех компьютерах устанавливается такая ОС, которая предоставляет всем компьютерам в сети потенциально равные возможности (с клиентской и серверной частями).
В сетях с выделенными серверами используются специальные варианты сетевых ОС, которые оптимизированы для работы в роли серверов и называются серверными ОС. Пользовательские компьютеры в этих сетях работают под управлением клиентских ОС. Специализация операционной системы для работы в качестве сервера является естественным способом повышения эффективности серверных операций. Клиентские ОС в сетях с выделенными серверами обычно освобождены от серверных функций, что значительно упрощает их организацию.
Выполнение ОС основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ — главное требование. Современная ОС, как правило, должна поддерживать мультипрограммную обработку, виртуальную память, свопинг, многооконный графический интерфейс пользователя и т. д. Далее:
- Расширяемость. Дополнения и изменения должны вноситься без нарушения целостности системы. Расширяемость достигается за счет модульной структуры кода ОС.
- Переносимость. В идеале код ОС должен легко переноситься между процессорами и аппаратными платформами. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностъю.
- Совместимость. Существует несколько «долгоживущих» популярных операционных систем (разновидности UNIX, MS-DOS, OS/2, ...), для которых наработана широкая номенклатура приложений. Если ОС имеет средства для выполнения прикладных программ для других ОС – она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС.
- Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Прежде всего это определяется архитектурными решениями, положенными в ее основу, а также качеством ее реализации (отлаженностью кода). Кроме того, важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказоустойчивости, таких, например, как дисковые массивы или источники бесперебойного питания.
- Безопасность. ОС должна защищать данные и другие ресурсы системы от несанкционированного доступа, то есть как минимум иметь в своем составе средства аутентификации — определения легальности пользователей, авторизации — предоставления легальным пользователям различных прав доступа к ресурсам, аудита — фиксации всех «подозрительных» для безопасности системы событий. Особенно это важно для сетевых ОС.
- Производительность. Операционная система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа. На производительность ОС влияет много факторов, такие как архитектура ОС, многообразие функций, качество программирования кода, возможность исполнения ОС на высокопроизводительной (многопроцессорной) платформе.
Многослойная структура ОС
Вычислительную систему можно рассматривать как систему, составленную из трех иерархических слоев. Нижний слой образует аппаратура, промежуточный – ядро ОС, верхний слой – утилиты, обрабатывающие программы и приложения. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе функций нижележащего слоя следующий (вверх по иерархии) слой строит свои функции. Такая организация системы существенно упрощает её разработку, так как позволяет сначала определить «сверху вниз» функции слоев и межслойные интерфейсы, а затем при детальной реализации постепенно наращивать мощность функций слоев, двигаясь «снизу вверх». Кроме того, при модернизации системы можно изменять модули внутри слоя без необходимости производить какие-либо изменения в остальных слоях, если при этих внутренних изменениях межслойные интерфейсы остаются в силе.
Ядро ОС имеет также сложную структуру и может содержать следующие слои
- средства аппаратной поддержки ОС
- машинно-зависимые модули
- базовые механизмы ядра
- менеджеры ресурсов
- интерфейс системных вызовов.
Процессы и потоки. Мультипрограммирование. Мультипрограммирование в системах пакетной обработки. Мультипрограммирование в системах разделения времени. Мультипрограммирование в системах реального времени.
Мультипрограммирование, или многозадачность (multitasking), — способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ, которые совместно используют не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование повышает эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются:
- пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени;
- удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;
- реактивность системы — способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.
В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени. Каждый тип ОС имеет специфические внутренние механизмы и особые области применения. Некоторые ОС могут поддерживать одновременно несколько режимов.
При мультипрограммировании для повышения пропускной способности компьютера главная цель - минимизация простоев всех устройств компьютера, и прежде всего ЦП. Такие простои могут возникать из-за приостановки задачи по ее внутренним причинам, связанным, например, с ожиданием ввода данных для обработки. При возникновении такого рода блокировки выполняемой задачи естественным решением является переключение процессора на выполнение другой задачи, у которой есть данные для обработки. Такая концепция мультипрограммирования положена в основу так называемых пакетных систем. В системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь (множество одновременно выполняемых задач). Для одновременного выполнения выбираются задачи так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Если же в системе выполняются одновременно несколько задач, появляется возможность совмещения вычислений одной задачи с вводом-выводом другой.
В системах разделения времени пользователям предоставляется возможность интерактивной работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем. ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени, таким образом пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
Еще одна разновидность мультипрограммирования используется в системах реального времени, предназначенных для управления от компьютера различными техническими объектами или технологическими процессами (например, гальванической линией, доменным процессом и т. п.). Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная управляющая объектом программа. Это время называется временем реакции системы, а соответствующее свойство системы — реактивностью. Требования ко времени реакции зависят от специфики управляемого процесса. В таких системах мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям или в соответствии с расписанием плановых работ. Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения с одной задачи на другую и от скорости обработки сигналов прерывания. Время обработки прерывания в системах реального времени часто определяет требования к классу процессора даже при небольшой его загрузке.
Планирование в системах реального времени.
В системах реального времени, в которых главным критерием эффективности является обеспечение временных характеристик вычислительного процесса, планирование имеет особое значение. Любая система реального времени должна реагировать на сигналы управляемого объекта в течение заданных временных ограничений. Необходимость тщательного планирования работ облегчается тем, что в системах реального времени весь набор выполняемых задач известен заранее. Кроме того, часто в системе имеется информация о временах выполнения задач, моментах активизации, предельных допустимых сроках ожидания ответа и т. д. Эти данные могут быть использованы планировщиком для создания статического расписания или для построения адекватного алгоритма динамического планирования.
При разработке алгоритмов планирования для этих систем необходимо учитывать, какие последствия в этих системах возникают при несоблюдении временных ограничений. Если эти последствия катастрофичны, то операционная система реального времени называется жесткой (hard), если же последствия нарушения временных ограничений не столь серьезны, то есть сравнимы с той пользой, которую приносит система управления объектом, то система является мягкой (soft) системой реального времени. В жестких системах реального времени время завершения выполнения каждой из критических задач должно быть гарантировано для всех возможных сценариев работы системы. Такие гарантии могут быть даны либо в результате исчерпывающего тестирования всех возможных сценариев поведения управляемого объекта и управляющих программ, либо в результате построения статического расписания, либо в результате выбора математически обоснованного динамического алгоритма планирования. При построении расписания надо иметь в виду, что для некоторых наборов задач в принципе невозможно найти расписания, при котором бы удовлетворялись заданные временные характеристики. С целью определения возможности существования расписания могут быть использованы различные критерии. В мягких системах реального времени предполагается, что заданные временные ограничения могут иногда нарушаться, поэтому здесь обычно применяются менее затратные способы планирования.
В зависимости от характера возникновения запросов на выполнение задач полезно разделять их на два типа: периодические и спорадические. Начиная с момента первоначального запроса все будущие моменты запроса периодической задачи можно определить заранее путем прибавления к моменту начального запроса величины, кратной известному периоду. Времена запросов на выполнение спорадических задач заранее не известны.
При выборе алгоритма планирования следует учитывать данные о возможной зависимости задач. Эта зависимость может выступать, например, в виде ограничений на последовательность выполнения задач или их синхронизации, вызванной взаимными исключениями. С практической точки зрения алгоритмы планирования зависимых задач более важны, чем алгоритмы планирования независимых задач. Проблема планирования зависимых задач очень сложна, нахождение ее оптимального решения требует больших вычислительных ресурсов, сравнимых с теми, которые требуются для собственно выполнения задач управления. Решение этой проблемы возможно за счет следующих мер:
- Разделение проблемы планирования на две части, чтобы одна часть выполнялась заранее, перед запуском системы, а вторая, более простая часть — во время работы системы. Предварительный анализ набора задач с взаимными исключениями может состоять, например, в выявлении так называемых запрещенных областей времени, в течение которых нельзя назначать выполнение задач, содержащих критические секции.
- Введение ограничивающих предположений о поведении набора задач.
При таком подходе планирование приближается к статическому.
15 Моменты перепланировки.
Для реализации алгоритма планирования ОС должна получать управление всякий раз, когда в системе происходит событие, требующее перераспределения процессорного времени. К таким событиям могут быть отнесены следующие:
- Прерывание от таймера, сигнализирующее, что время, отведенное активной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование.
- Активная задача выполнила системный вызов, связанный с запросом на ввод-вывод или на доступ к ресурсу, который в настоящий момент занят (например, файл данных). Планировщик переводит задачу в состояние ожидания и выполняет перепланирование.
- Активная задача выполнила системный вызов, связанный с освобождением ресурса. Планировщик проверяет, не ожидает ли этот ресурс какая-либо задача. Если да, то эта задача переводится из состояния ожидания в состояние готовности. При этом, возможно, что задача, которая получила ресурс, имеет более высокий приоритет, чем текущая активная задача. После перепланирования более приоритетная задача получает доступ к процессору, вытесняя текущую задачу.
- Внешнее (аппаратное) прерывание, которое сигнализирует о завершении периферийным устройством операции ввода-вывода, переводит соответствующую задачу в очередь готовых, и выполняется планирование.
- Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование.
При возникновении каждого из этих событий планировщик выполняет просмотр очередей и решает вопрос о том, какая задача будет выполняться следующей. Помимо указанных существует и ряд других событий (часто связанных с системными вызовами), требующих перепланировки. Например, запросы приложений и пользователей на создание новой задачи или повышение приоритета уже существующей задачи создают новую ситуацию, которая требует пересмотра очередей и, возможно, переключения процессора.
Столлингс) Планирование в многопроцессорных системах.
Файловые операции.
ФС ОС должна предоставлять пользователям набор операций работы с файлами, оформленный в виде системных вызовов. Этот набор обычно состоит из таких системных вызовов, как создание файла, чтение из файла, запись в файл и др. Чаще всего с одним и тем же файлом пользователь выполняет не одну операцию, а последовательность операций. Во всех случаях ОС необходимо выполнить ряд универсальных для всех операций действий:
1. По символьному имени файла найти его характеристики в ФС на диске.
2. Скопировать характеристики файла в оперативную память, так как только таким образом программный код может их использовать.
3. На основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление, просмотр атрибутов файла).
4. Очистить область памяти, отведенную под временное хранение характеристик файла.
Кроме того, каждая операция включает ряд уникальных для нее действий.
ОС может выполнять последовательность действий над файлом двумя способами:
- Для каждой операции выполняются как универсальные, так и уникальные действия. Такая схема иногда называется схемой без запоминания состояния операций.
- Все универсальные действия выполняются в начале и конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия.
Подавляющее большинство файловых систем поддерживает второй способ организации файловых операций как более экономичный и быстрый. Первый способ обладает одним преимуществом — он более устойчив к сбоям в работе системы, так как каждая операция является самодостаточной и не зависит от результата предыдущей. Поэтому первый способ иногда применяется в распределенных сетевых файловых системах (например, в NFS компании Sun), когда сбои из-за потерь пакетов или отказов одного из сетевых узлов более вероятны, чем при локальном доступе к файлам. При втором способе в файловой системе вводятся два специальных системных вызова: открытие и закрытие файла.
Open выполняется перед началом любой последовательности операций с файлом, а вызов закрытия файла close — после окончания работы с файлом. Основной задачей вызова open является преобразование символьного имени файла в его уникальное числовое имя, копирование характеристик файла из дисковой области в буфер оперативной памяти и проверка прав пользователя на выполнение запрошенной операции. Вызов close освобождает буфер с характеристиками файла и делает невозможным продолжение операций с файлом без его повторного открытия. Операции открытия и закрытия файла в той или иной форме утвердились в ОС очень давно.
Столлингс) RAID 5, RAID 6
RAID 5 организован подобно RAID 4, но с тем отличием, что RAID 5 распределяет полосы четности по всем дискам. Распространённое размещение полос четности — в соответствии с циклической схемой... Распределение полос четности по всем накопителям позволяет избежать снижения производительности, связанного с операциями ввода-вывода с одним диском четности (RAID 4).
Схема RAID 6 была представлена в работе [KATZ89] разработчиками из Беркли. В этой схеме выполняются два различных расчёта чётности, результаты которых хранятся в разных блоках на разных дисках. Поэтому массивы RAID 6 с объемом пользовательских данных, требующих N дисков, состоят из N+2 дисков. RAID 6 использует два различных алгоритма проверки данных. Один из них — применение операции "исключающего или", используемой в RAID 4 и RAID 5, другой представляет собой более сложную схему вычислений. Это дает возможность восстановления данных даже в случае сбоя двух дисков массива. Преимущество RAID 6 состоит в том, что эта схема обеспечивает чрезвычайно высокую надежность хранения данных. Потери данных возможны лишь при одновременном выходе из строя трех дисков массива. С другой стороны, у RAID 6 высокие накладные расходы при операциях записи, поскольку каждая запись затрагивает два блока четности.
Что такое ОС?
Комплекс выполняющих и обрабатывающих программ.
ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами. С одной точки зрения функцией ОС является предоставление пользователю некоторой расширенной или виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину, а с другой - функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования.
Эволюция операционных систем. Современный этап развития операционных систем персональных компьютеров.
Четыре периода в эволюции ОС (последний = современный).
Первый (1945-1955гг): первые ламповые компьютеры без ОС. «Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.»
Второй (1955-1965гг): Новая техническая база — полупроводниковые элементы. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программы за другой и тем самым увеличивали коэффициент загрузки процессора – прообраз ОС. В ходе реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине.
Третий (1965-1980гг): Переход к интегральным микросхемам. Создание семейств программно-совместимых машин. Реализация мультипрограммирования - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ: пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу, и при этом каждая программа загружается в свой участок оперативной памяти (раздел). Новый тип ОС - системы разделения времени (нацелено на создание для каждого отдельного пользователя иллюзии единоличного использования вычислительной машины).
Четвёртый — современный (1980г - наше время): Появление БИС. Эра ПК. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки "дружественного" программного обеспечения. MS DOS (Intel 8088, 80286, 80386 и 80486) и UNIX (RISC). Сетевые ОС.