
- •Рязанский государственный радиотехнический университет
- •Факультет вычислительной техники
- •Кафедра Электронных Вычислительных Машин
- •Конспект лекций
- •Операционные системы
- •Классификация программного обеспечения эвм
- •Свойства по
- •4) Command.Com – командный процессор;
- •5) Config.Sys – файл конфигурации;
- •6) Autoexec.Bat- файл автозапуска. Прерывания в ос
- •Процесс: идентификатор данного процесса pid.
- •Управление процессами
- •Назначение и функции фс
- •Логическая организация файла
- •Физическая организация и адресация файла
- •Физическая организация fat
- •Безопасность и защита файлов
- •Файловая система
- •Файловая система hpfs (High Performance File System)
- •I. Основные преимущества hpfs
- •Основные возможности ntfs
- •Основные отличия fat и ntfs
- •Файловые системы vfat и fat32
- •Управление ресурсами в ос
- •Управление памятью
- •Архитектура памяти
- •Приложения dos в виртуальных машинах (вм)
- •Достижение оптимальной производительности
- •Советы по настройке оп
- •Основные понятия и концепции виртуальной памяти
- •Мультипроцессорные системы
- •Четыре необходимых условия для возникновения тупика:
- •Предотвращение тупиков и алгоритм банкира
- •Распределение ресурсов согласно алгоритму банкира
- •Недостатки алгоритма банкира
- •Обнаружение тупиков
- •Графы распределения ресурсов
- •Редукция графов распределения ресурсов
- •Восстановление после тупиков
- •Трудности при выводе процессов из ос
- •Тупики: современные тенденции
- •Управление устройствами
- •Физические и виртуальные устройства Принципы управления устройствами
- •Управление вводом-выводом
- •Действия по вводу-выводу
- •Драйверы устройств
- •Программируемый ввод-вывод
- •II часть
- •Дистрибутивы Linux
- •Инсталляция Linux
- •Интерфейс
- •Диспетчер окон
- •Работа с файлами и каталогами. Работа с файлами.
- •1. Показ содержания файлов.
- •2.Команда echo.
- •3.Создание перечней файлов (каталогов).
- •Работа с каталогами
- •Командный интерпретатор Shell
- •Ввод и вывод команд. Использование команд, введенных ранее
- •Стандартные ввод и вывод
- •Изменение направления ввода и вывода данных
- •Конвейеры команд
- •Системное администрирование Файловые системы
- •Монтирование файловой системы
- •Демонтирование файловой системы
- •Загрузка
- •Стандартная структура каталогов в Linux
- •Учетные записи пользователей
- •Права доступа
- •Изменение прав доступа
- •Изменение пользователя или группы, которые владеют файлом
- •Система X Windows
- •Запуск х-сервера
- •Графическая рабочая среда
- •Драйверы и ядро Linux
- •Установка нескольких ос с возможностью выбора загрузки
- •Операционные системы семейства vista
Мультипроцессорные системы
Для систем, состоящих из нескольких процессоров, нужны специальные мультипроцессорные ОС (Windows NT). В основном функции все те же, но есть и отличие: планировщик процессов может уделять пользовательским заданиям более одного ЦП, поэтому в активном состоянии может находиться несколько процессов. Это называется истинной многозадачностью.
Простейшая мультипроцессорная система.
линии
связи
Рис. 7.
В этой структуре посылка запроса от ЦПi к ЦПк – единственный способ получения доступа одного процессора к ресурсам другого. Эта мультипроцессорная система со слабосвязанными процессорами. Основной функцией такой ОС является управление сообщениями и их расшифровка. Сообщения принимаются соответствующей частью ОС, работающей с данным процессором, и эта система блокирует активные процессы и передаёт свой процесс в качестве ресурса другому процессору. Есть системы с сильно связанными процессорами:
Процессорный
блок
Рис. 8.
Структура «главный-подчиненный» (master-slave) (рис)
Всё управление ресурсами и другими функциями ОС осуществляется одним главным процессором, а подчинённые процессоры выполняют задание пользователя. Процессоры взаимодействуют между собой либо по линиям связи, либо через рабочие области оперативной памяти. Для всех процессоров совместно используется память и файлы данных.
Недостаток - несбалансированное использование ресурсов центрального процессора. Он может быть перегружен запросами. Остальные процессоры будут стоять. В этой системе программы и структуры данных не разделяются, и они используются только главным процессором.
Рис. 9.
Симметричная система (Рис. 9)
В этой структуре любой процессор может выполнять любую функцию ОС. Все процессоры равноправны. Неисправность одного процессора не приводит к выходу из строя всей системы. Различные части ОС могут выполняться различными процессорами, которые имеют равноправный доступ ко всем структурам ОС. Однако, здесь могут возникать конфликтные ситуации, вследствие чего в ОС должны быть средства управления доступа к управлению данным и критическая таблица ОС. Роль этих средств выполняет сильно развитый механизм семафоров и мониторов доступа, которые в случае захвата ресурса одним процессором блокирует остальные процессоры.
Механизм управления и средства взаимодействия параллельных процессов
Управление параллельно-развивающимися процессами определяется характером взаимодействия между ними. Это значит, что существуют группы задач по управлению этими процессами. Для управления параллельными процессами ОС определяем процессы в виде синхронизирующих правил, зависящих от вида отношений между ними:
Отношение предшествования (порождающие и порожденные процессы);
Отношение приоритетности;
Отношение взаимного исключения.
Реализация синхронизирующих правил осуществляется с помощью механизмов синхронизации, которых к данному времени разработано много и реализация которых обычно имеет программно-аппаратную форму. Эти механизмы выполняют двоякую роль:
Они обеспечивают способ упорядочивания развития процессов;
Они обеспечивают взаимодействие между процессами.
Типичные задачи синхронизации:
Задача взаимного исключения;
Производитель-потребитель;
Читатели-писатели;
«Обедающие философы» - задача распределения пересекающихся ресурсов.
Задача взаимного исключения.
Нужно согласовать работу N>2 параллельных процессов при использовании некоторого критического ресурса при следующих требованиях:
одновременно внутри критической области должно находиться не более одного процесса;
критические области не имеют приоритетов в отношении друг к другу;
остановка процесса вне его критической области не должна влиять на дальнейшую работу по использованию критического ресурса;
решения обхождения равно приоритетных процессов в их критической области не откладывается на неопределенное время;
относительные скорости процессов неизвестны и произвольны;
процесс, использующий критический ресурс, выходит из критической области за конечное время.
Критическая область в программе – группа команд для выполнения которых требуется разделяемый ресурс. Отсутствие этого ресурса может привести к блокировке/зависанию процесса.
2)Задача производитель-потребитель.
Простейший случай взаимодействия двух процессов с жестко закреплёнными функциями: один процесс вырабатывает сообщение (производитель), а другой их обрабатывает (потребитель).
Взаимодействие этих процессов производится через некоторую обобщенную область оперативной памяти, которая по смыслу и представляет критический ресурс.
Требования:
- выполнить требования взаимного исключения по отношению к критическому ресурсу;
- учитывать состояние обобщенной области памяти.
Механизм управления
Рис. 10.
3)Задача читатели-писатели.
Обычно она возникает при построении файловых систем. Критический ресурс – некоторая область памяти, и с этой областью памяти работают процессы двух типов: читатели и писатели. Запись информации в эту область должна производиться на основе взаимоисключений (записывает только один процесс).
Процессы «читатели» могут считывать информацию из этой области одновременно. Наиболее широко распространённый метод решения этой задачи – установка приоритетов для «читателей».
4)Задача «Обедающие философы».
Пусть х, у, z – параллельные процессы.
Р1 – устройство ввода;
Р2 – печатающее устройство;
Р3 – накопитель на магнитном диске;
Для активного состояния процесса Х требуется Р1 и Р2 , для У - Р2 и Р3 , для Z - Р1 и Р3. Скорости развития процессов – произвольная.
Рис. 11.
Возникают две ситуации:
«тупиковая», когда ни один из процессов не может получить ресурса;
«голодание», когда один процесс блокируется на неопределённое время.
Семафорная техника синхронизации и упорядочивания процессов
В 1965 году Деккерер ввёл понятие «семафорная техника».
Все виды решения задач синхронизации базируются на двух примитивах: P и V.
Примитив Р ставится впереди критической области, а V – в конце критической области. В каждом процессе они есть. Эти примитивы неделимы и взаимно исключают друг друга. Они основаны на использовании семафоров.
Семафор – это системная переменная специального типа, над которой можно производить две операции: открытия и закрытия. Семафорный механизм работает по двухэтапной схеме и использует механизм пассивного ожидания. В состав семафорного механизма включены средства формирования и обслуживания очередей процессов, которым не удаётся успешно выполнить операцию закрытия семафора.
Параметры семафора:
начальное значение семафора;
диапазон значений;
логика действий над семафорами (задаётся процедурами обработки);
количество семафоров, доступных для обработки отдельных примитивов.
Алгоритм P(S)
{Закрыть ресурс
S – семафор; S=0 – семафор закрыт; S=1 – открыт}
S:=S-1;
if S<0 then <остановить процесс и поместить его в очередь ожидания к семафору S>
else <продолжить процесс>
Алгоритм V(S)
{открыть доступ к ресурсу}
If S<=0 then <поместить один из ожидающих процессов из очереди к семафору S в очередь готовности>;
S:=S+1;
Система виртуальных машин
Ряд ОС сделан так, что ОС моделирует работу различных виртуальных ОС (низкого класса). Каждый пользователь в этом случае может выбрать свою, отличную от других, ОС. Под управлением виртуальных машин (VM) фактически может выполняться несколько ОС сразу, при чём каждая ОС выполняется на своей VM. Примером такой системы является OS/MVT, OS/MVS.
В мультипрограммных системах с виртуальными машинами разделение ресурсов осуществляется следующим образом: для каждого пользователя создаётся своя виртуальная машина, на которой работает та или иная ОС. В виртуальных машинах создаются виртуальные процессы, виртуальная память и виртуальные устройства ввода – вывода с возможностями больше, чем у реальной машины.
…
Рис. 12.
Система виртуальных машин содержит следующие основные компоненты:
управляющая программа (CP – Control Program);
диалоговая мониторная система (CMS - Conversation Monitor System);
подсистема связи с удалённым спулингом (RSCS – Remote Spooling Communication System);
интерактивная система управления задачами (IPCS);
пакетное средство CMS (CMS Batch Control).
Что они делают?
CP – формирует окружение, среду, в которой выполняются виртуальные машины. При этом пользователи системы разбиваются на классы привилегированности, и фактически эта система управляет работой реальной машины.
CMS – это мощная диалоговая система с диалоговыми средствами разработки программ. Она включает редакторы, трансляторы и средства отладки.
RSCS – даёт возможность передавать и принимать файлы через сеть телеобработки.
IPCS – используется для оперативного анализа и устранения неполадок в программном обеспечении, а также формирует отчеты об ошибках.
CMS Batch Control – позволяет запускать задания пользователя в пакетном режиме, и этот пакет выполняется на своей собственной виртуальной машине по направлению оператора системы.
CP может работать только на тех машинах, у которых есть аппаратные средства для динамической подкачки страниц и динамического преобразования адресов.
Тупики
В мультипрограммной системе процессы находятся в состоянии тупика / клинча / дедлока, если они ожидают некоторое событие, которое никогда не произойдет. Системная тупиковая ситуация или зависание системы – это ситуация, когда один или более процессов оказываются в состоянии тупика. В мультипрограммной ЭВМ одной из главных функций ОС является распределение ресурсов. Когда ресурс распределяется между многими пользователями, каждому из которых предоставляется право исключительного управления своими ресурсами. Возможно появление тупиков, из-за которых процессы некоторых пользователей никогда не могут завершиться.
Пример тупика
РЕСУРС 1
РЕСУРС 2
ПРОЦЕСС А
ПРОЦЕСС В
Ресурс 1 выделен процессу А Процесс В запрашивает ресурс 1
Процесс А запрашивает ресурс 2 Ресурс 2 выделен процессу В
Рис. 13.
В ОС тупики возникают в результате конкуренции за обладание выделенными или закрепленными ресурсами. Иногда их называют ресурсами последовательного использования. На рисунке граф распределения ресурсов. На рисунке стрелка, направленная от ресурса к процессу показывает, что данный ресурс принадлежит или был выделен данному процессу, а стрелка, направленная от процесса к ресурсу показывает, что данный процесс требует, но пока еще не получил в свое распоряжение данный ресурс. Такое состояние кругового ожидания характерно для состояния тупика. Каждый процесс ждет, чтобы другой процесс освободил нужный ресурс. Каждый не освободит свой ресурс пока не получит другой ресурс. Это состояние кругового ожидания характерно для тупикового состояния.