Главная / Лекции / Операционные системы и среды

Содержание
Модуль 1. Операционные системы и среды.

1.1. Введение.

Основные блоки ПЭВМ:
  1. Системный блок.
  2. Монитор.
  3. Клавиатура.
Периферийные устройства:
  1. Ввода:
    • клавиатура
    • мышь
    • сканер
    • джойстик
    • планшет
    • световое перо
  2. 2. Вывода:
    • монитор
    • принтер
    • графопостроитель
Дисковод - устройство, в которое мы помещаем дискету для записи или считывания информации.
Файл - это поименованная область на диске, которая хранит текстовую или графическую информацию.
Обозначение файла:

Обозначение файла

Расширение показывает, в какой программе был создан файл.
Каталог (папка) - поименованная область на диске, которая хранит информацию о файлах: время создания, размер, время последней корректировки.
Обозначение каталога: имя.
A:\
C:\
При включении компьютера загружается ОС.
ОС - набор программ, которые обеспечивают возможность использования аппаратуры компьютера. Ее задача заключается в том, чтобы сделать аппаратуру доступной и удобной для пользователя.
Главное назначение ОС - управление ресурсами компьютера.
Ресурсы компьютера: процессор, память, устройства ввода/вывода, данные.
Функции ОС:
  1. Определяет интерфейс пользователя.
  2. Обеспечивает разделение аппаратных ресурсов между пользователями.
  3. Дает возможность работать с общими данными в режиме коллективного пользования.
  4. Осуществляет восстановление информации в случае возникновения ошибок.

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

Процесс - это программа во время выполнения, т.е. когда ей предоставлен центральный процессор.

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

Во время работы процесс может находиться в одном из трех состояний: "готов", "выполняется", "блокирован".
Процесс находится в состоянии "готов", когда он мог бы сразу использовать ЦП, как только он предоставится ему.
При предоставлении ЦП, программа переходит в состояние "выполняется", т.е. процесс находится в состоянии "выполняется", когда ему предоставлен ЦП.
ЦП предоставляется на определенный промежуток времени (квант времени). В том случае, когда данного кванта не достаточно для полного выполнения программы, процесс останавливается и переходит в состояние "готов".
Из состояния "выполняется" в "блокирован", процесс переходит, когда ему необходимо записать или считать информацию. По завершению считывания или записи данных, процесс переходит из состояния "блокирован" в "готов".
В состоянии "выполняется " очередей никогда нет, а в состояниях "готов" и "блокирован" очереди из программ могут быть.
Очередь упорядочена по приоритетам в состоянии "готов", а в состоянии "блокирован" - нет.
Блок управления процессом (БУП).
БУП - структура данных или объект, содержащий определенную, важную информацию о процессе:
  • текущее состояние процесса
  • уникальный идентификатор процесса (номер)
  • приоритет
  • область памяти
  • ресурсы, выделенные процессу
  • область сохранения регистров
Когда ОС переключает ЦП с процесса на процесс, она использует области сохранения регистров данных процессов, чтобы запомнить информацию, необходимую для рестарта.


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

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

    Порождение дочерних процессов
  2. Уничтожение процесса - удаление его из системы. Ресурсы, выделенные ему, возвращаются ОС, а имя стирается из всех системных списков и таблиц, БУП освобождается, но не удаляется.
    При удалении родительского процесса в одних ОС удаляются и дочерние процессы, в других - они работают самостоятельно.
  3. Возобновление - операция подготовки процесса к повторному запуску с той точки, в которой он был приостановлен (БУП, область сохранения регистров).
  4. Изменение приоритета - это изменение значения приоритета в БУП.
Прерывания в ОС.
Прерывание - это событие, при котором меняется нормальная последовательность команд, выполняемых ЦП.
Если произошло прерывание, то:
  1. Управление передается ОС
  2. ОС запоминает состояние прерванного процесса
  3. ОС анализирует тип прерывания и передает управление соответствующей программе по обработке данного типа прерывания.

1.4. Ядро ОС.

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

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

Когда ядро обрабатывает текущее прерывание, оно запрещает другие прерывания и разрешает их снова только после завершения обработки текущего прерывания. При постоянном потоке прерываний может образоваться очередь прерываний, следовательно, ядро организовано таким образом, чтобы оно определяло только тип прерывания, а затем передавало его на дальнейшую обработку соответствующей системной программе по работе именно с этим типом прерывания, что не влечет к созданию больших очередей из прерываний в ОС.
Функции ядра:
  1. Обработка прерываний.
  2. Создание/уничтожение процесса.
  3. Переключение процесса из состояния в состояние.
  4. Диспетчеризация (регулировка).
  5. Приостановка и активизация.
  6. Синхронизация процесса.
  7. Организация взаимодействия между процессами.
  8. Манипулирование БУП.
  9. Поддержка операций ввода/вывода.
  10. Поддержка распределения и перераспределения памяти.
  11. Поддержка работы файловой системы.

1.5. Параллельные процессы в ОС.

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

Взаимоисключение в ОС

Правила работы процесса в своем критическом участке:
  1. Процесс не может быть блокирован.
  2. Свои критические участки процессы должны проходить как можно быстрее.

1.6. Семафоры в ОС.

Семафор - механизм реализации взаимоисключения процессов.
Пример работы двух параллельных асинхронных процессов:

Пример работы двух параллельных асинхронных процессов

Даны 2 процесса: "производитель" и "потребитель". "Производитель" вырабатывает какое-либо число и записывает его в ячейку памяти. "потребитель" считывает число, производит какие-либо вычисления и результат выводит на печать. Идеально, когда оба процесса работают с одинаковой скоростью. В том случае, если скорость "потребителя" больше, чем скорость "производителя", мы наблюдаем: "потребитель" считывает из памяти одно и тоже число несколько раз, следовательно, на распечатке будет дублирование какого-либо результата. Если скорость "потребителя" меньше скорости "производителя", наблюдаем: "производитель" записывает число в память, но предыдущее число не было считано потребителем, => на распечатке некоторые результаты будут отсутствовать.

Чтобы этого не допустить в ОС работают семафоры как для "производителя", так и для "потребителя".


1.7. Тупики в ОС.

Тупик (клинч, дедлок) - ситуация, которая никогда не разрешится, т.е. процесс ждет ресурса, но он ему не будет выделен.
ОС в состоянии тупика ("зависание") - когда несколько процессов находятся в состоянии тупика.
Простая тупиковая ситуация в ОС:

Простая тупиковая ситуация в ОС

Пусть имеются 2 процесса A и B, которым перед началом работы предоставлены ресурсы P1 и P2 соответственно. В какой-то момент времени процессу A понадобился P2, а процессу B - P1, но они их не получат, т.к. они удерживаются предыдущими процессами => наступила простая тупиковая ситуация в ОС.

Правила предотвращения тупиков в ОС:
  1. Прежде чем процесс начнет свою работу, ему должны быть предоставлены все требуемые ресурсы.
  2. В том случае, если во время работы ему понадобился дополнительный ресурс, ему необходимо возвратить все ранее выделенные ресурсы ОС и затем запросить все требуемые ресурсы с этим дополнительным ресурсом.
Бесконечное откладывание процесса.
В системе, где процессам приходится ждать пока она выделит ему требуемый ресурс может возникнуть ситуация, что будут приходить процессы с более высоким приоритетом, требующие тот же самый ресурс - ситуация бесконечного откладывания процесса.
В некоторых ОС данная ситуация предотвращается благодаря увеличению приоритетности ("старению" процесса) для того, чтобы ему был предоставлен требуемый ресурс, после чего приоритет понижается до прежнего уровня.


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

Организация и управление основной памятью компьютера - один из самых важных факторов, определяющих построение ОС. Для непосредственного выполнения программ или обращения к данным необходимо, чтобы они размещались в основной памяти.
Вторичная, или внешняя память (жесткий диск), хранит множество программ и данных, которые должны быть наготове для обработки, т.е. загружены в основную память.
Организация памяти.
Под организацией памяти понимается, каким образом предоставляется и используется основная память, т.е. необходимо дать ответы на следующие вопросы:
  1. Будем ли мы помещать в основную память только одну программу пользователя или несколько программ одновременно.
  2. Если в основной памяти размещается программ сразу, будем ли мы предоставлять каждой из них одинаковое количество ячеек памяти или разобьем ее на части (разделы) различных размеров.
  3. Будем ли разбивать основную память жестким образом, т.е. разделы определяются на достаточно длительное время, либо динамически, позволяя компьютеру быстро реагировать на изменения потребностей программы в ресурсах.
  4. Будем ли мы требовать такого построения программы пользователя, чтобы они выполнялись только в конкретном разделе, либо предусмотрим возможность выполнения программы с занятием любых подходящих для них разделов.
  5. Будем ли мы требовать, чтобы каждая программа помещалась в одном, непрерывном блоке ячеек памяти, либо допустим возможность разбиения программы на отдельные блоки, размещаемые в любых свободных участках (дырах) основной памяти.
Иерархия памяти.
Чтобы программы можно было выполнять, они должны находиться в основной памяти, а программы и данные, которые в настоящий момент не нужны, можно хранить во внешней памяти.
Современные ОС поддерживают 3 уровня памяти:
  • кэш-память
  • основная
  • внешняя
Иерархическая организация памяти:

Иерархическая организация памяти

Стратегии управления памятью.
Стратегии направлены на то, чтобы обеспечить наилучшее возможное использование ресурсов основной памяти.
Категории управления памятью.
  1. Стратегии выборки. Ставят своей целью определить, когда следует "втолкнуть" очередной блок программы в основную память.
    • по запросу (по требованию). Очередной блок программы или данных загружается, когда его запрашивает работающая программа.
    • стратегии упреждающей выборки. ОС заранее предугадывает, какой блок программы или данных будет востребован, значит, он и будет заранее загружен в основную память.
  2. Стратегии размещения. Целью является определить, в какое место основной памяти следует помещать поступающую программу. Используются стратегии размещения:
    • "первого подходящего"
    • "наиболее подходящего"
    • "наименее подходящего" - по размерам свободного участка памяти.
  3. Стратегии замещения. Ставят целью определить, какой блок программы или данных следует вытеснить из основной памяти, чтобы освободить место для записи последующих программ и данных.


содержание     вперед     на главную


Rambler's Top100
Hosted by uCoz