Дудкин А.К. Конспект лекций по ОСиС - файл n5.doc

Дудкин А.К. Конспект лекций по ОСиС
скачать (636.4 kb.)
Доступные файлы (5):
n1.doc2767kb.02.05.2007 08:56скачать
n2.doc191kb.20.11.2007 12:22скачать
n3.doc35kb.20.11.2007 11:18скачать
n4.doc133kb.28.06.2007 19:28скачать
n5.doc87kb.20.11.2007 11:08скачать

n5.doc

Раздел II. Задачи и функции ОС


3 основных задачи, тесно связанных между собой:

  1. Управление задачами (заданиями, процессами)

    1. Создание и удаление процессов

    2. Планирование процессов

    3. Синхронизация процессов

    4. Коммуникация процессов

    5. Разрешение тупиковых ситуаций (тупиков)

  2. Управление данными

    1. Долговременное планирование – организация размещения данных на ВЗУ, их выборка и предоставление пользовательским программам

    2. Оперативное планирование – распределение оперативной памяти под программы и данные, обмен между оперативной и внешней памятью.

  3. Связь с оператором

    1. Пользовательский интерфейс (управление пользовательскими процессами)

    2. Командный интерфейс (управление системными процессами)

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

      • Задачи-данные (интерфейс управления памятью и данными)

      • Данные-оператор (Интерфейсы ввода-вывода данных)

      • Оператор-задачи (командный интерфейс)

Общий принцип взаимодействия подсистем:


  1. Управление заданиями (процессами, задачами)


Процесс – это минимальный программный объект (часть кода), обладающий собственными системными ресурсами, выполняемый в CPU (запущенная программа).

Программа – это последовательность команд, представляющая собой план действий. Процесс же – это непосредственно выполняемое действие, которое в себя включает:

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


По генеалогическому признаку – порождающие (родители) и порожденные (дети).

По принадлежности к ОС – системные и пользовательские.

По месту выполнения – внутренние (на CPU) и внешние (на внешних процессорах).

По связанности – взаимосвязанные, изолированные, взаимодействующие (имеют общие структуры данных), конкурирующие.

За время существования процесс многократно меняет свое состояние. Различают следующие состояния процесса:

Переход из одного состояния в другое не может быть выполнен произвольно. Он происходит в соответствии с таблицей управления процессом (PCB = Process Control Block). В этой таблице процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых ОС для управления прохождением процесса через компьютер.

В зависимости от состояния процесса ему должен быть предоставлен какой-либо ресурс.

Содержимое регистров процессора, а также код и данные в адресном пространстве процесса называются контекстом процесса, который переключается на CPU при смене выполняемой им задачи.

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

При смерти процесса-родителя в Unix ребенок сиротеет, но не умирает. Его усыновляет один из системных процессов.
    1. Планирование процессов


Распределение процессов между имеющимися ресурсами называется планированием процессов.

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

Готовые к выполнению процессы располагаются в оперативной памяти в очереди готовых процессов. Там они ожидают освобождения процессорного времени.

Ожидающий ввода-вывода процесс находится в одной из очередей к оборудованию ввода-вывода.

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

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

Основное различие между ними заключается в частоте запуска: краткосрочный запускается раз в 100 мс, а долгосрочный – раз в несколько минут.

В некоторых ОС долгосрочный планировщик отсутствует. Например, в системах с разделением времени (time-sharing system) каждый новый процесс сразу помещается в оперативную память!

Существует множество алгоритмов работы краткосрочного планировщика.

  1. FCFS = First Come First Served (первый пришел, первый обслужился). Это наиболее простая стратегия. Время ожидания для процессов здесь сильно зависит от порядка поступления в очередь готовых процессов. Если имеется несколько маленьких процессов и один большой, то возникает «эффект конвоя».

  2. SJF = Shortest Job First (Наиболее короткое задание выполняется первым). Предназначено для борьбы с «эффектом конвоя». Снижает время ожидания в очереди. Основная трудность – в определении заранее длины процесса. Как правило, применяется в долгосрочных планировщиках, обслуживающих пакетный режим. В этом случае, программист перед отправлением задания в пакет должен указать макс. время выполнения задания.

  3. Приоритетное планирование. Каждому процессу приписывается приоритет – целое положительное число, - определяющее очередность предоставления ему CPU. Приоритет зависит от требований процесса к памяти, кол-ва открытых файлов, времени ввода-вывода процесса, его важности (какой модуль ОС его запустил).

  4. RR = Round Robin («Карусельная» стратегия). Применяется в системах разделения времени. Св-ва стратегии сильно зависят от величины выделяемого каждому процессу кванта времени tk, очередь готовых процессов рассматривается как кольцевая. Новые процессы добавляются в хвост очереди. Если процесс не завершился в выделенный ему квант времени, то его работа принудительно прерывается, и он перемещается в хвост очереди.

  5. Multilevel queue scheduling (Планирование с использование многоуровневой очереди). Разработана для ситуации, когда процессы можно легко разбить на несколько групп (например, интерактивные и фоновые - пакетные). В каждой из очередей находится процессы с одинаковыми свойствами, а каждая отдельная очередь может иметь свою стратегию планирования. Ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях в более высокими приоритетами.

  6. Multilevel feedback queue scheduling (Планирование с использование многоуровневой очереди с обратными связями). Стратегия предполагает, что процессы могут перемещаться между очередями. Она является универсальной и сочетает в себе св-ва всех рассмотренных ранее стратегий.
    1. Взаимодействие процессов


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

В ОС OS/2 и Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени – DDE (Dynamic Data Exchange). Он стандартизует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенным процессом. Для которого используется DDE, является печать.

Другим способом обмена данными является OLE (Object Linking and Embedding – связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах созданных другой программой. Пример – буфер обмена (clipboard).
    1. Тупики


Тупик – это ситуация, когда процесс ожидает события, которое никогда не произойдет вследствие занятости необходимого процессу ресурса другим процессом, который также ожидает какого-либо события. Типики приводят к зависаниям системы.

Для борьбы с тупиками ОС должна их обнаруживать и нарушать одно из условий существования тупика или игнорировать тупик. Большинство ОС (Unix, Windows) игнорируют тупики.

  1. Управление данными


При запуске любой программы созданный ей процесс должен быть размещен в оперативной памяти. Методы размещения процессов в ОЗУ делятся на смежные и несмежные.

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


Страничная организация памяти (paging) относится к методам несмежного размещения процессов в памяти. Основное достоинство – она позволяет свети к минимуму общую фрагментацию за счет полного устранения внешней фрагментации и минимизации внутренней фрагментации.

Адресное пространство основной и внешней памяти разбивается на блоки фиксированного размера, называемое страницами. Процесс загружается в память постранично. Каждый адрес, генерируемый процессором, состоит из 2 частей – номера страницы и смещения в пределах страницы. Таблица страниц содержит начальные адреса всех страниц, в которых размещена программа. Указатель на таблицу страниц хранится в PCB соответствующего процесса.

Размер страницы обычно составляет 512 байт, 2 или 4 Кбайт.
Сегментная организация преследует ту же идею, но сегменты, в отличие от страниц, могут иметь переменный размер. Каждый сегмент – линейная последовательность адресов, начинающихся с 0. Каждый сегмент имеет имя, размер, уровни привилегий и флаги. В отличие от страничной организации, где программист задает только 1 адрес, который разбивается на номер страницы и смещение, в сегментной схеме, программист должен самостоятельно указывать имя сегмента и смещение относительно его начала. Размер и кол-во сегментов зависит от того, как написана программа.

Аппаратная поддержка сегментации памяти реализована в процессорах Intel.
В настоящее время используется сегментно-страничная организация памяти. В ней большие сегменты делятся на небольшие страницы.
    1. Свопинг (swapping)


Свопинг (перекачка) – это метод управления памятью, основанный на том, что все процессы, участвующие в мультиобработке, хранятся во внешней памяти.

Основное применение – системы разделения времени со стратегией RR планирования процессов в CPU. Процесс, которому выделен CPU, временно перемещается в основную память, в случае прерывания работы процесса он возвращается во внешнюю память.

Свопинг иногда используется при приоритетном планировании CPU. В этом случае только низкоприоритетные процессы перемещаются во внешнюю память.

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


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


Файл – поименованная совокупность записей одинаковой структуры на внешнем носителе. Все данные, хранящиеся на каком-либо диске должны быть в составе какого-либо файла.

Любой файл имеет имя, которое записывается в соответствии со стандартом POSIX: до 255 символов имени + 3 символа расширения.

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

Обычные файлы можно подразделить по их содержимому на текстовые и бинарные. Текстовые файлы содержат символы кода ASCII, простейшие управляющие символы (CR – возврат каретки, LF – перевод строки, TAB – табуляция, NP – новая страница).

Бинарные файлы – файлы с произвольной последовательностью бит, которые имеют некоторую внутреннюю структуру, например, архивные файлы.

Любой файл имеет атрибуты: имя, тип файла; устройство и начальный адрес, а также размер файла; владелец, права доступа к файлу. Список атрибутов зависит от типа используемой ОС. Список атрибутов обычно хранится в структуре директорий, обеспечивающий доступ к файлу.

Цикл обработки файла:

Таким образом, цикл обработки файла выглядит так: считывание (ввод) порции (блок) данных с ВЗУ через его контроллер ? помещение его во входной буфер в ОЗУ ? извлечение данных из буфера, их обработка и помещение обратно или в другой (выходной) буфер ? вывод (запись) результатов на выходной накопитель в виде одного или нескольких блоков.

Основная задача ОС по управлению внешней памятью – осуществлять связь между адресом данных на накопителе и именем (файла)!

Магнитная поверхность накопителей разбивается на дорожки (нумеруются с 0-го), каждая из которых – на секторы (начиная с 1-го). Пакет магнитных дисков, каждый из которых имеет по 2 стороны, называется цилиндром (нумеруется с 0). Таким образом, мельчайшей единицей хранения информации на магнитном ВЗУ является сектор (512 байт).

Всякая ОС создает на каждом томе (логическом диске) совокупность системных данных, которая называется файловой системой.

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

Кластер – минимальный размер места на диске, которое может быть выделено файловой системой для хранения одного файла. Размер кластера определяется автоматически при форматировании тома в зависимости от размера последнего! Кластер может иметь размер от 512 байт до 64 Кбайт, соответственно содержать от 1 до 128 секторов.

Таким образом, главная задача файловой системы – поставить в соответствие имя файла, кластеры, выделенные под его хранение и их физический секторный адрес.

Файловая система включает таблицу содержания и область данных. Таблица содержания может иметь разные имена – VTOC, FAT, MFT, FDT. Эта таблица состоит из 3 областей:

Кроме того, поддерживается иерархия ФС: каталоги обеспечивают связь между именами файлов и собственно файлами. Каждый элемент каталога содержит имя файла и ссылку на конкретный файл. В корневом каталоге может быть не более 512 файлов.
    1. Разделение доступа к данным в ОС


С каждым файлом в ОС связана пара идентификаторов – пользовательский (User ID - UID) и групповой (Group ID - GID). Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский ID которого совпадает с пользовательским ID файла, считается владельцем данного файла.

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

Таким образом, всех пользователей системы можно разделить на:

Именно по этому принципу в ОС Unix каждому файлу выданы атрибуты в формате 9-битного кода, содержащего 3 поля для каждой группы: rwxrwxrwx. Rread, wwrite, xexecute.

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

Раздел II. Задачи и функции ОС
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации