Файл: операционные системы для заочного отделения.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.06.2021

Просмотров: 1120

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Тема 1. История развития операционных систем. Типы операционных систем.

1.1 Определение операционной системы

1. 2 История развития операционных систем

Тема 2. Основные характеристики и принципы построения операционных систем.

Основные характеристики ОС

Принципы построения ОС

Тема 3. Общая структура программного  обеспечения и операционных систем ЭВМ

Структура ОС.

Управление процессами

Управление основной памятью

Управление внешней памятью

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

Подсистема управления файлами

Защита системы

Сетевое обеспечение

Командный интерфейс системы

Сервисы операционных систем

Особенности методов построения

Тема 4. Диаграмма перехода процесса

Основные состояния процесса:

Дополнительные состояния процесса:

Операции над процессами

Основная концепция обработки прерываний

Тема 5. Контекст процесса и переключение контекста

Переключения контекста в EC ЭВМ

Тема 6. Синхронизация и кооперация процессов

Тема 7. Тупики: условия возникновения тупиков, предотвращения тупиков

Тема 8. Управление реальной  памятью

Тема 9. Понятие виртуальной памяти

Тема 10. Страничная организация. Сегментная организация. Странично-сегментная организация. Двухуровневая страничная организация

Тема 11. Управление процессорами и заданиями в однопроцессорном вычислительном комплексе. Алгоритмы планирования процессов

Тема 12. Управление процессорами и заданиями в мультипроцессорном вычислительном комплексе

Тема 13. Управление периферийными устройствами. Эволюция систем ввода-вывода, каналы ввода вывода. Регистры и команды ввода вывода.

Тема 15. Способы доступа и организации файлов. Распределение файлов на диске

Тема 16. Требования и тенденции построения ОС

Тема 17. UNIX и MS Windows NT

Последняя проблема состоит в том, что одни устройства являются разделяемыми, а другие - выделенными. Диски - это разделяемые устройства, так как одновременный доступ нескольких пользователей к диску не представляет собой проблему. Принтеры - это выделенные устройства, потому что нельзя смешивать строчки, печатаемые различными пользователями. Наличие выделенных устройств создает для операционной системы некоторые проблемы. Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя:

  1. Независимый от устройств слой операционной системы.

  2. Обработка прерываний.

  3. Драйверы устройств.

  4. Пользовательский слой программного обеспечения.

Независимый от устройств слой операционной системы

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

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

Типичными функциями для независимого от устройств слоя являются:

  • обеспечение общего интерфейса к драйверам устройств;

  • именование устройств;

  • защита устройств;

  • обеспечение независимого размера блока;

  • буферизация;

  • распределение памяти на блок-ориентированных устройствах;

  • распределение и освобождение выделенных устройств;

  • уведомление об ошибках;

  • прием запросов на ввод/вывод от пользователей процессов;

  • создание и обслуживание очереди запросов на ввод/вывод;

  • обеспечивание запуска драйверов и их динамическую загрузку;

  • обработка прерывания ввода/вывода.

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

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

Обработка прерываний

Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Наилучший способ состоит в разрешении процессу, инициировавшему операцию ввода-вывода, блокировать себя до завершения операции и наступления прерывания. Процесс может блокировать себя, используя, например, вызов DOWN для семафора, или вызов WAIT для переменной условия, или вызов RECEIVE для ожидания сообщения. При наступлении прерывания процедура обработки прерывания выполняет разблокирование процесса, инициировавшего операцию ввода-вывода, используя вызовы UP, SIGNAL или посылая процессу сообщение. В любом случае эффект от прерывания будет состоять в том, что ранее заблокированный процесс теперь продолжит свое выполнение.


Драйверы устройств

Драйвером устройства называется программа управления функционированием периферийными устройствами, которая выполняет следующие функции:

  • управление интерфейсом контроллера ПУ;

  • обработку передаваемых через супервизор прерываний;

  • обнаружение и обработка ошибок.

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

Драйвер устройства принимает запрос от супервизора или программного слоя и решает, как его выполнить. Типичным запросом является чтение n блоков данных. Если драйвер был свободен во время поступления запроса, то он начинает выполнять запрос немедленно. Если же он был занят обслуживанием другого запроса, то вновь поступивший запрос присоединяется к очереди уже имеющихся запросов, и он будет выполнен, когда наступит его очередь. С точки зрения пользователя, драйверы являются невидимыми, так как пользователи получают доступ к вводу/выводу через супервизор с применением функций и команд ввода/вывода используемых систем программирования.

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

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

  • по опросу готовности;

  • по прерываниям;

  • по прямому доступу к памяти.

По опросу готовности драйвер выполняет следующие действия:

  1. Запрещает прерывания от устройства и инициирует операцию на устройстве.

  2. Переходит в состояние ожидания.

  3. Циклически проверяет завершенность операции.

  4. Дождавшись завершения операции, проверяет отсутствие ошибки при ее выполнении, разрешает прерывания и возвращает управление прерванному процессу.


По опросу готовности реализуется синхронный ввод/вывод, при котором отсутствует параллелизм между обработкой и передачей информации. ЦП находится в активном ожидании завершения операции ввода/вывода. Такой способ работы драйверов используется в однопрограммных однопользовательских ОС.

Достоинство - простота. Недостаток - синхронный ввод/вывод, отсутствие параллелизма между вводом/выводом и обработкой.

При работе по прерываниям действия выполняются в следующей последовательности:

  1. Инициализируется операция ввода/вывода и разрешает прерывания от устройства.

  2. Возвращает управление ЦП для выполнения других действий до момента прерывания.

  3. При прерывании происходит переход на программу обработки, в которой проверяется отсутствие ошибки ввода/вывода, и после завершения обработки осуществляется возврат на прерванную программу.

Достоинство - асинхронный ввод/вывод, то есть параллельная работа ЦП и ПУ. Используется в мультипрограммных системах.

При работе по прямому доступу к памяти (ПДП) (Direct Memory Access-DMA)действия выполняются в следующем порядке:

  1. ЦП запускает канальную программу командой "запустить канал", которая содержит адрес канала и периферийного устройства. С этого момента канал и ЦП работают параллельно.

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

  3. В любой момент ЦП может проверить состояние канала, выполняющего канальную программу, командой "тестировать канал". Эта проверка не влияет на выполнение программы. Обработка ошибок ввода/вывода здесь осуществляется супервизором ввода/вывода.

Пользовательский слой программного обеспечения

Хотя большая часть программного обеспечения ввода-вывода находится внутри ОС, некоторая его часть содержится в библиотеках, связанных с пользовательскими программами. Системные вызовы, включающие вызовы ввода-вывода, обычно делаются библиотечными процедурами. Если программа, написанная на языке С, содержит вызов count = write (fd, buffer, nbytes), то библиотечная процедура write будет связана с программой. Набор подобных процедур является частью системы ввода-вывода. В частности, форматирование ввода или вывода выполняется библиотечными процедурами. Примером может служить функция printf языка С, которая принимает строку формата и, возможно, некоторые переменные в качестве входной информации, затем строит строку символов ASCII и делает вызов write для вывода этой строки. Стандартная библиотека ввода-вывода содержит большое число процедур, которые выполняют ввод/вывод и работают как часть пользовательской программы.

Другой категорией программного обеспечения ввода/вывода является подсистема спулинга (spooling). Спулинг - это способ работы с выделенными устройствами в мультипрограммной системе. Рассмотрим типичное устройство, требующее спулинга - строчный принтер. Хотя технически легко позволить каждому пользовательскому процессу открыть специальный файл, связанный с принтером, такой способ опасен из-за того, что пользовательский процесс может монополизировать принтер на произвольное время. Вместо этого создается специальный процесс - монитор, который получает исключительные права на использование этого устройства. Также создается специальный каталог, называемый каталогом спулинга. Для того чтобы напечатать файл, пользовательский процесс помещает выводимую информацию в этот файл и помещает его в каталог спулинга. Процесс-монитор по очереди распечатывает все файлы, содержащиеся в каталоге спулинга.


В ОС MS-DOS стандартный набор ПУ поддерживается базовой системой ввода/вывода (БСВВ), расположенной в ПЗУ, в числе прочих задач выполняет функции обслуживания системных вызовов и прерываний. Дополнительные устройства MS-DOS поддерживаются модулем расширенной системы ввода/вывода, посредством перечисления в файле конфигурации CONFIG.SYS дополнительных драйверов в формате команды

DEVICE = [ путь ] имя файла [ параметры] .

Модуль 8. Управление данными

Тема 14. Система управления файлами

Cистема управления данными

Система управления файлами

Cистема управления данными

Система управления данными играет центральную роль в ОС, поскольку она должна управлять и хранить информацию и программы, принадлежащие как пользователям, так и самой системе. Причем, с концептуальной точки зрения, целесообразно не различать хранимую информацию и периферийные устройства как источники или получатели информации во время выполнения программы, что тесно связывает систему управления данными (СУД) с системой управления вводом/выводом (СУВВ) в единое целое. Здесь имеется в виду обеспечение возможности взаимодействовать с устройствами ввода/вывода как с файлами.

Основными понятиями СУД являются файл, том и каталог. Причем существует логический и физический аспект этих понятий.

Логический файл - это организованная совокупность однородных элементов информации или однотипных записей для хранения информации в ИВС, которой присвоено имя.

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

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

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

Сменные тома позволяют:

  • расширить объемы хранения информации в ВС;

  • производить обмен файлами между разными ЭВМ (на уровне носителей).

Примерами томов являются: МЛ - тома с последовательным доступом и МД, дискеты - тома с прямым доступом.

Сменный том в целях безопасности и удобства должен:

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

  • удовлетворять требованиям установки на любом совместимом стандартном устройстве.

В соответствии с этим тома прямого доступа (ТПД) имеют:

  • специальную запись - метку тома (не обязательно иметь);

  • оглавление или каталог файлов тома, хранящий дескрипторы файлов, который сам является файлом;

  • собственно файлы тома.


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

Большая емкость ТПД, размещение на них файлов многих пользователей создали в СУД следующие трудности:

  • конфликты одноименных файлов разных пользователей;

  • замедление работы ОС из-за поиска требуемого файла в оглавлении;

  • доступность чужих файлов, то есть их незащищенность от других пользователей.

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

Итак, файл, том и каталоги - это логические объекты, обрабатываемые пользователем и программами ВС, и одновременно физические объекты, каждый из которых занимает некоторое пространство ТПД. В соответствии с этим СУД подразделяется на два уровня представления информации.

  1. Система управления файлами (СУФ), которая обеспечивает удобное логическое представление и средства работы с файлами.

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

Система управления файлами

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

В широком смысле понятие "файловая система" включает:

  • совокупность всех файлов на диске;

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

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

СУФ реализует выполнение следующих базовых функций.

    1. Организацию логической системы в виде томов памяти и каталогов файлов.

    2. Управление томами, в том числе:

  • инициализацию (форматирование);

  • подключение (перевод в оперативное состояние);

  • отключение (перевод в автономное состояние).

  • Управление каталогами файлов:

  • создание каталогов;

  • переключение между каталогами;

  • удаление каталогов.