Операционные системы. Назначение. Архитектура операционных систем.

Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.

Операционные системы. Назначение. Архитектура операционных систем. - student2.ru

Операционная система абстрагирует пользователя от внутреннего представления компьютера.

Назначение:

- Планирование заданий и использования процессора.

- Обеспечение программ средствами коммуникации и синхронизации.

- Управление памятью.

- Управление файловой системой.

- Управление вводом-выводом.

- Упр оборудованием.

- Обеспечение безопасности.

Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме.

Архитектура:

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

- ядро — модули, выполняющие основные функции ОС;

- модули, выполняющие вспомогательные функции ОС.

Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. В состав ядра входят функции, решающие задачи организации переключения контекстов, загрузка/выгрузка станиц, обработка прерываний и т. п.

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти.

Вспомогательные модули ОС обычно подразделяются на следующие группы:

• утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных;

• системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

• программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;

• библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.

Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.

Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и нарушить ее работу.

Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.

Очень важно, что механизмы защиты памяти используются операционной системой не только для защиты своих областей памяти от приложений, но и для защиты областей памяти, выделенных ОС какому-либо приложению, от остальных приложений. Говорят, что каждое приложение работает в своем адресном пространстве.

Пользовательские программы обычно взаимодействуют с библиотеками, а они в свою очередь работают с ядром.

Виды ядра:

1. Микроядро - это минимальная реализация функций ядра операционной системы.

Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.

К ним относятся:

· управление адресным пространством оперативной памяти.

· управление адресным пространством виртуальной памяти.

· управление процессами и потоками (нитями).

· средства межпроцессной коммуникации.

Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.

Достоинство — высокая степень модульности ядра операционной системы. Это упрощает добавление в него новых компонентов. Эта архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.

В то же время микроядерная архитектура операционной системы вносит накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность. Требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Примеры Minix, Symbian OS.

2. Монолитное ядро – это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.

Это повышает быстродействие системы, но пагубно сказывается на ее надежности.

Так как ядро является единой программой, перекомпиляция – это единственный способ добавить в него новые компоненты или исключить неиспользуемые. Следует отметить, что присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти. Примеры: Windows, Linux, Unix.

3. Наноядро.Крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний.

Наноядро может быть настолько маленьким и примитивным, что даже важнейшие устройства, находящиеся непосредственно на материнской плате или на плате контроллера встраиваемого устройства, такие, как таймер или программируемый контроллер прерываний, обслуживаются специальными драйверами устройств, а не непосредственно ядром.

4. Экзоядро -система, которая обеспечивает каждого пользователя абсолютной копией реального компьютера, но со своим подмножеством ресурсов. В ее задачу входит распределение ресурсов для виртуальных машин, а после этого проверка их использования (то есть отслеживание попыток машин задействовать чужой ресурс). Каждая виртуальная машина на уровне пользователя может работать с собственной операционной системой.

Часто очень трудно отнести конкретное ядро к определенному типу.
10) Файловые системы. Архитектура файловых систем.

Файловые системы — это некий регламент, договоренность, соблюдая которую, мы можем работать с файлами.

Примеры ФС: NTFS, FAT32, ext2, ext3, ext4, ReiserFS; ISO 9660, UDF…

Файлы предоставляют способ хранения информации на диске и последующего ее считывания, который должен оградить пользователя от подробностей способа и места хранения информации и деталей фактической работы дисковых устройств.

Основные атрибуты файла: имя, тип, ссылка на размещение на устройстве, размер, признаки защиты, время создания, чтения и модификации. Информация о файлах хранится в структуре директорий.

Основные операции над файлом: создание, запись, чтение, позиционирование, удаление, сокращение, открытие и закрытие.

Директория (каталог, папка) — directory, folder — структура во внешней памяти, содержащая символьные имена файлов и других директорий и ссылки на них.

Хранение файла на жестком диске:

Смежное размещение.

Простейший способ — хранить каждый файл как непрерывную последовательность блоков диска. При непрерывном расположении файл характеризуется адресом и длиной (в блоках). Файл, стартующий с блока b, занимает затем блоки b+1, b+2, ... b+n-1.

Плюсы:

· Легко реализовать, так как выяснение местонахождения файла сводится к вопросу, где находится первый блок.

· Обеспечивает хорошую производительность, т.к. целый файл может быть считан за одну дисковую операцию.

Минусы:

· Не всегда имеется подходящий по размеру свободный фрагмент для нового файла.

· Непрерывное распределение внешней памяти неприменимо до тех пор, пока неизвестен максимальный размер файла. Иногда размер выходного файла оценить легко (при копировании). Чаще, однако, это трудно сделать, особенно в тех случаях, когда размер файла меняется.

Единственным приемлемым решением перечисленных проблем является периодическое уплотнение содержимого внешней памяти(дефрагментация, «сборка мусора»), цель кот. состоит в объединении свободных участков в один большой блок. Но это дорогостоящая операция, которую невозможно осуществлять слишком часто.

Т.о., когда содержимое диска постоянно изменяется, данный метод нерационален. Однако для стационарных ФС, например для ФС компакт-дисков, он вполне пригоден.

Связный список.

Внешняя фрагментация — основная проблема рассмотренного выше метода — м.б. устранена за счет представления файла в виде связного списка блоков диска. Запись в директории содержит указатель на первый и последний блоки файла (иногда в качестве варианта используется специальный знак конца файла — EOF). Каждый блок содержит указатель на следующий блок.

Операционные системы. Назначение. Архитектура операционных систем. - student2.ru

Плюсы:

· Любой свободный блок м.б. использован для удовлетворения запроса. Нет необходимости декларировать размер файла в момент создания. Файл может расти неограниченно.

Минусы:

· Во-первых, при прямом доступе к файлу для поиска i-го блока нужно осуществить несколько обращений к диску, последовательно считывая блоки от 1 до i-1, то есть выборка логически смежных записей, которые занимают физически несмежные секторы, может требовать много времени. Здесь мы теряем все преимущества прямого доступа к файлу.

· Во-вторых, данный способ не очень надежен. Наличие дефектного блока в списке приводит к потере информации в оставшейся части файла и потенциально к потере дискового пространства, отведенного под этот файл.

· Наконец, для указателя на следующий блок внутри блока нужно выделить место, что не всегда удобно. Емкость блока, традиционно являющаяся степенью двойки (многие программы читают и пишут блоками по степеням двойки), таким образом, перестает быть степенью двойки, так как указатель отбирает несколько байтов.

Таблица отображения файлов.

Одним из вариантов предыдущего способа является хранение указателей не в дисковых блоках, а в индексной таблице в памяти, которая называется таблицей отображения файлов (FAT — file allocation table)

Операционные системы. Назначение. Архитектура операционных систем. - student2.ru

По-прежнему существенно, что запись в директории содержит только ссылку на первый блок. Далее при помощи таблицы FAT можно локализовать блоки файла независимо от его размера. В тех строках таблицы, которые соответствуют последним блокам файлов, обычно записывается некоторое граничное значение, например EOF.

Главное достоинство данного подхода состоит в том, что по таблице отображения можно судить о физическом соседстве блоков, располагающихся на диске, и при выделении нового блока можно легко найти свободный блок диска, находящийся поблизости от других блоков данного файла.

Минусом данной схемы может быть необходимость хранения в памяти этой довольно большой таблицы.

Индексные узлы.

Наиболее распространенный метод выделения файлу блоков диска — связать с каждым файлом небольшую таблицу, называемую индексным узлом (i-node), которая перечисляет атрибуты и дисковые адреса блоков файла. Запись в директории, относящаяся к файлу, содержит адрес индексного блока. По мере заполнения файла указатели на блоки диска в индексном узле принимают осмысленные значения.

Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к файлу.

Обычно применяется комбинация одноуровневого и многоуровневых индексов. Первые несколько адресов блоков файла хранятся непосредственно в индексном узле, т.о., для маленьких файлов индексный узел хранит всю необходимую информацию об адресах блоков диска. Для больших файлов один из адресов индексного узла указывает на блок косвенной адресации. Данный блок содержит адреса дополнительных блоков диска. Если этого недостаточно, используется блок двойной (тройной) косвенной адресации, который содержит адреса блоков косвенной адресации.

Операционные системы. Назначение. Архитектура операционных систем. - student2.ru

Ссылки:

· Жесткую ссылку невозможно отличить от файла, на который она указывает — для системы они идентичны. При удалении файла, на который есть несколько жестких ссылок, система не освобождает блоки до тех пор, пока существует хоть одна ссылка.

· Мягкая ссылка (символьная ссылка, или symlink) полностью отличается от жесткой: она является маленьким спец. файлом, который содержит путь к файлу.

Каталоги (директории):

1. Самая простая форма системы каталогов состоит из одного каталога, содержащего все файлы. Иногда он называется корневым каталогом, но поскольку он один-единственный, то имя особого значения не имеет. Эта система была широко распространена на первых персональных компьютерах. Преимущества такой схемы заключаются в ее простоте и возможности быстрого нахождения файлов, поскольку поиск ведется всего в одном месте.

2. Дерево каталогов — Такой подход позволяет иметь столько каталогов, сколько необходимо для группировки файлов естественным образом.

Операционные системы. Назначение. Архитектура операционных систем. - student2.ru

Наши рекомендации