- •1 Понятие операционной системы 4
- •2 Эволюция и режимы функционирования 10
- •3 Общая архитектура 15
- •4 Управление процессами 23
- •5 Управление памятью 44
- •6 Ввод-вывод и файловая система 65
- •1Понятие операционной системы
- •1.1Назначение и состав системы обработки информации. Понятие виртуальной машины
- •1.2Назначение и функции системных программ
- •1.3Задачи, решаемые операционной системой
- •1.4Операционная система как виртуальная машина
- •1.5Операционная система как система управления ресурсами
- •1.6Оценка деятельности операционной системы
- •1.7Классификация операционных систем
- •Контрольные вопросы
- •2Эволюция и режимы функционирования
- •2.1Непосредственный доступ
- •2.2Пакетный режим
- •2.2.1Однопрограммный (последовательный) режим выполнения пакета
- •2.2.2Многопрограммный режим. Классическое мультипрограммирование
- •2.3Системы информационного обслуживания
- •2.4Режим разделения времени
- •2.5Режим реального времени
- •Контрольные вопросы
- •3Общая архитектура
- •3.1Ядро и вспомогательные модули
- •3.2Ядро в привилегированном режиме
- •3.3Многослойная структура операционной системы
- •3.4Функциональные компоненты операционной системы
- •Контрольные вопросы
- •4Управление процессами
- •4.1Понятия «процесс» и «поток»
- •4.2Создание процессов и потоков
- •4.3Защита ресурсов
- •4.4Планирование и диспетчеризация потоков
- •4.5Состояния потока
- •4.6Мультипрограммирование на основе прерываний
- •4.6.1Назначение, типы и обработка прерываний
- •4.6.2Программные прерывания
- •4.6.3Обработка системных вызовов
- •4.7Синхронизация процессов и потоков
- •4.7.1Цели и средства синхронизации
- •4.7.2Необходимость синхронизации и гонки
- •4.7.3Критическая секция
- •4.7.4Блокирующие переменные
- •4.7.5Семафоры
- •4.7.6Тупики
- •Контрольные вопросы
- •5Управление памятью
- •5.1Функции ос по управлению памятью
- •5.2Типы адресов
- •5.3Свопинг и виртуальная память
- •5.4Страничное распределение
- •5.5Сегментное распределение
- •5.6Сегментно-страничное распределение
- •5.7Разделяемые сегменты памяти
- •Контрольные вопросы
- •6Ввод-вывод и файловая система
- •6.1Управление файлами и внешними устройствами
- •6.2Задачи ос по управлению файлами и устройствами
- •6.3Многослойная модель подсистемы ввода - вывода. Общая схема
- •6.4Логическая организация файловой системы
- •6.4.1Цели и задачи файловой системы
- •6.4.2Типы файлов
- •6.4.3Иерархическая структура файловой системы
- •6.4.4Имена файлов
- •6.4.5Атрибуты файлов
- •6.4.6Логическая организация файла
- •6.5Физическая организация файловой системы
- •6.5.1Диски, разделы, секторы, кластеры
- •6.5.2Физическая организация и адресация файла
- •6.5.3Физическая организация fат
- •6.6Файловые операции
- •6.6.1Два способа организации файловых операций
- •6.6.2Открытие файла
- •Контрольные вопросы
- •Приложение 1. Кэширование данных Назначение кэш-памяти
- •Иерархия запоминающих устройств
- •Принцип действия кэш-памяти
- •Приложение 2. Физическая организация ntfs
- •Структура тома ntfs
- •Структура файлов ntfs
- •Каталоги ntfs
- •Литература
Контрольные вопросы
В чем отличие в использовании свопинга и виртуальной памяти?
В чем отличие сегментации от страничной организации памяти?
На каких механизмах и условиях основан процесс преобразования виртуального адреса в физический?
Приведите схему сегментно-страничного распределения памяти.
6Ввод-вывод и файловая система
6.1Управление файлами и внешними устройствами
Способность ОС к сокрытию сложностей реальной аппаратуры очень ярко проявляется в одной из основных подсистем ОС — файловой системе. Операционная система виртуализирует (представляет) отдельный набор данных, хранящийся на внешнем накопителе, в виде файла — простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы — каталоги более высокого уровня. Пользователь может с помощью ОС выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство (например, на дисплей), изменение и сохранение содержимого.
Чтобы представить большое количество наборов данных, разбросанных случайным образом по цилиндрам и поверхностям дисков различных типов, в виде хорошо всем знакомой и удобной иерархической структуры файлов и каталогов, операционная система должна решить множество задач. Файловая система ОС выполняет преобразование символьных имен файлов, с которыми работает пользователь или прикладной программист, в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.
При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами, которая по запросам файловой системы осуществляет передачу данных между дисками и оперативной памятью.
Подсистема управления внешними устройствами, называемая также подсистемой ввода-вывода, исполняет роль интерфейса ко всем устройствам, подключенным к компьютеру. Спектр этих устройств очень обширен. Номенклатура выпускаемых накопителей на жестких, гибких и оптических дисках, принтеров, сканеров, мониторов, плоттеров, модемов, сетевых адаптеров и более специальных устройств ввода-вывода, таких как, например, аналого-цифровые преобразователи, может насчитывать сотни моделей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуществляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного использования и множеством других деталей.
Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского drivе -управлять, вести). Драйвер может управлять единственной моделью устройства или же группой устройств определенного типа. Для пользователя очень важно, чтобы операционная система включала как можно больше разнообразных драйверов, так как это гарантирует возможность подключения к компьютеру большого числа внешних устройств различных производителей.
Созданием драйверов устройств занимаются как разработчики конкретной ОС, так и специалисты компаний, выпускающих внешние устройства. Операционная система должна поддерживать строго определенный интерфейс между драйверами и остальной частью ОС, чтобы разработчики из компаний-производителей устройств ввода-вывода могли поставлять вместе со своими устройствами драйверы для данной операционной системы.
Прикладные программисты могут пользоваться интерфейсом драйверов при разработке своих программ, но это не очень удобно — такой интерфейс обычно представляет собой низкоуровневые операции с большим количеством деталей. Поэтому поддержка высокоуровневого унифицированного интерфейса прикладного программирования к разнородным устройствам ввода-вывода является одной из наиболее важных задач ОС.
Такой унифицированный интерфейс в большинстве операционных систем строится на основе концепции файлового доступа. Эта концепция заключается в том, что обмен с любым внешним устройством выглядит как обмен с файлом, имеющим имя и представляющим собой неструктурированную последовательность байтов. В качестве файла может выступать как реальный файл на диске, так и алфавитно-цифровой терминал, печатающее устройство или сетевой адаптер. Здесь мы опять имеем дело со свойством операционной системы подменять реальную аппаратуру удобными для пользователя и программиста абстракциями.