- •Конспект по курсу лекций Операционные системы
- •Структура вычислительной системы
- •Аппаратный уровень вычислительной системы
- •Системы программирования
- •Модель организации прерываний с использованием регистра «слово состояние процессора»
- •3.6.1.1 Устройство последовательного доступа
- •Организация управления внешними устройствами
- •Иерархия памяти
- •Аппаратная поддержка ос и систем программирования
- •Некоторые проблемы
- •1. Вложенные обращения к подпрограммам
- •2. Накладные расходы при смене обрабатываемой программы:
- •4. Фрагментация памяти
- •4.2.1 Регистровые окна ( register window )
- •Системный стек
- •Виртуальная память.
- •Базирование адресов.
- •Страничная память.
- •Многомашинные, многопроцессорные ассоциации.
- •Терминальные комплексы
- •Компьютерные сети.
- •Семейство протоколов tcp/ip
- •Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- •Транспортный уровень
- •Уровень прикладных программ
- •Сетевые, распределенные ос
- •Операционные системы Основные понятия
- •Структура ос.
- •Модельная ос
- •Жизненный цикл процесса
- •Типы операционных систем
- •Системы разделения времени
- •Управление внешними устройствами. Архитектура.
- •Программное управление внешними устройствами
- •Буферизация обмена
- •Планирование дисковых обменов
- •Raid системы.
- •Файлы устройств, драйверы
- •Управление оперативной памятью
- •Двухуровневая организация
- •Структурная организация файлов
- •Атрибуты файла
- •Типовые программные интерфейсы работы с файлами
- •Подходы в практической реализации файловой системы Структура «системного» диска
- •Модели реализации файлов Непрерывные файлы
- •Файлы, имеющие организацию связанного списка.
- •Индексные узлы (дескрипторы)
- •Модели организации каталогов
- •Варианты соответствия: имя файла – содержимое файла
- •Координация использования пространства внешней памяти
- •Учет свободных блоков файловой системы Связный список свободных блоков
- •Использование битового массива
- •Организация фс Unix
- •Логическая структура каталогов
- •Внутренняя организация фс Модель версии System V Структура фс
- •Работа с массивами номеров свободных блоков
- •Работа с массивом свободных ид
- •Индексные дескрипторы
- •Адресация блоков файла
- •Файл каталог
- •Установление связей
- •Недостатки фс модели версии System V
- •Модель версии ffs bsd
- •Стратегии размещения
- •Внутренняя организация блоков
- •Структура каталога ffs
- •Понятие «процесс».
- •Процессы в ос Unix Системно-ориентированное определение процесса
- •Базовые средства организации и управления процессами
- •Семейство системных вызовов exec()
- •Использование схемы fork-exec
- •Формирование процессов 0 и 1
- •. Планирование Основные задачи планирования
- •Планирование очереди процессов на начало обработки
- •Кванты постоянной длины.
- •Кванты переменной длины
- •Класс подходов, использующих линейно возрастающий приоритет.
- •Разновидности круговорота.
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Общие критерии для сравнения алгоритмов планирования
- •Планирование в ос unix
- •Планирование в Windows nt.
- •Планирование свопинга в ос Unix
- •Взаимодействие процессов: синхронизация, тупики Параллельные процессы
- •Проблемы организации взаимного исключения
- •Тупики (deadlocks)
- •Способы реализации взаимного исключения
- •Семафоры Дейкстры
- •Мониторы
- •Обмен сообщениями
- •Классические задачи синхронизации процессов
- •Задача «читателей и писателей»
- •Задача о «спящем парикмахере»
- •Реализация взаимодействия процессов
- •Сигналы
- •Системный вызов kill()
- •Системный вызов signal()
- •Пример 1.
- •Пример 2.
- •5 Пример. Программа “Будильник”.
- •Пример. Двухпроцессный вариант программы “Будильник”.
- •Пример. Использование канала.
- •Пример. Схема взаимодействия процессов с использованием канала.
- •Пример. Реализация конвейера.
- •Пример. Совместное использование сигналов и каналов – «пинг-понг».
- •Именованные каналы. Особенность именованных каналов в ос Unix.
- •Пример. «Клиент-сервер».
- •Межпроцессное взаимодействие, проводимое по модели «главный-подчинённый».
- •Системный вызов ptrace()
- •Общая схема трассировки процессов
- •Пример. Использование трассировки.
- •Система межпроцессного взаимодействия ipc.
- •Очередь сообщений
- •Системный вызов msgget()
- •Функция msgsnd()
- •Функция msgrcv()
- •Функция msgctl()
- •Пример. Использование очереди сообщений.
- •Пример. Очередь сообщений. Модель «клиент-сервер».
- •Разделяемая память.
- •Пример. Работа с общей памятью в рамках одного процесса.
- •Семафоры
- •Пример. Использование разделяемой памяти и семафоров.
- •1Й процесс:
- •2Й процесс:
- •Механизм сокетов
- •Типы сокетов.
- •Функция создания сокета
- •Запрос на соединение
- •Прослушивание сокета
- •Подтверждение соединения
- •Прием и передача данных
- •Закрытие сокета
- •Пример. Работа с локальными сокетами
- •Пример работы с сокетами в рамках сети.
Управление внешними устройствами. Архитектура.
Непосредственное управление Внешними устройствами ЦП. В основном требуется переместить данные из ВУ в ОЗУ (и наоборот). ЦП по своей инициативе почти никогда не обращается к ОЗУ.
Историческая модель основана на том, что управление осуществлялось с помощью ЦП.
Когда говорится о том, что организовано управление внешним устройством, то подразумевается, что реализуется два потока информации:
поток управляющей информации (команды).
поток данных, т.е. поток той информации, которая начинает двигаться от ОП к внешнему устройству, за счет потока управляющей информации.
Поток управляющей информации обеспечивает управление ВУ, поток данных начинает двигаться от ВУ к ОЗУ в результате выполнения 1ого потока. Оба потока обрабатывает ЦП, что «отвлекает» его от других задач пользователя.
Синхронное управление внешними устройствами с использованием контроллеров внешних устройств.
В результате развития аппаратной части компьютера появляются контролеры внешнего устройства. Он упростил жизнь ЦП. Все равно поток команд идет через ЦП, контролер взял некоторые функции:
1.Обнаружение ошибок
2. Обеспечение более высокоуровнего интерфейса по управлению ВУ
3. Позволяет использовать команды типа «вывести головку на нужный сектор», «…на нужный цилиндр»
4. Появилось разделение функций синхронизации. ЦП подавал сигнал и ждал.
В результате развития аппаратных прерываний появилась возможность использовать ассинхронный режим работы.
Асинхронное управление внешними устройствами с использованием контроллеров внешних устройств.
Появление контролеров прямого доступа позволяет вывести поток данных, который появляется при обмене с ВУ из ЦП. Это имеет смысл для блокориентированных устройств, подразумевающих большой поток информации. Поток управляющей информации остается в ведении ЦП.
Управление внешними устройствами с использованием процессора или канала ввода/вывода.
Наличее процессоров ввода-вывода позволяет обеспечить высокоуровневый интерфейс для ЦП при управлении внешними устройствами. ЦП предоставляются различные макрокоманды. (например «записать на диск … начиная с …места»)
Программное управление внешними устройствами
Цели, которые стоят перед программным обеспечением:
1. унификация программных интерфейсов доступа к внешним устройствам (унификация именования, абстрагирование от свойств
конкретных устройств);
2. обеспечение конкретной модели синхронизации при выполнении обмена (синхронный, асинхронный обмен);
3. обработка возникающих ошибок (индикация ошибки, локализация ошибки, попытка исправления ситуации);
корректно обработать эту ситуацию, минимизировать негативные последствия.
4. буферизация обмена – в системе очень многоуровневая, применяется на всех этапах:
- развитые канала ввода-вывода могут иметь встроенный КЭШ, который управляется внутри этих каналов. Эта функция
остается на уровне ОС, этот КЭШ ОС полностью программноориентирован.
5. обеспечение стратегии доступа к устройству (распределенный доступ, монопольный доступ);
6. планирование выполнения операций обмена – возникает, когда возникает конкуренция за доступ к ресурсу.
