Вопрос 5. Вирт. память. Методы распределения памяти. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Вопрос 5. Вирт. память. Методы распределения памяти.



Вопрос 2.Осн. комп-ты ОС.

Определение операционной системы. Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. ОС – это совокупность программно-аппаратных средств, обеспечивающих взаимодействие компьютера и пользователя. ОС выполняет две функции: управляет ресурсами и предоставляет пользователю удобного интерфейса для взаимодействия с машиной. ОС как расширенная машина. Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Точно также, как ОС ограждает программистов от аппаратуры дискового накопи­теля и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной или вирту­альной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, со­ставляющей реальную машину. ОС как система управления ресурсами. ОС прежде всего система, обеспечивающая удобный интерфейс пользователям. Другой взгляд дает представление об ОС как о некотором механизме, управ­ляющем всеми частями сложной системы. Современные вычислительные системы состоят из процессоров, памяти, тай­меров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других уст­ройств. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффектив­ности может быть пропускная способность или реактивность системы. Управление ресурсами включает ре­шение двух общих, не зависящих от типа ресурса задач: планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необхо­димо выделить данный ресурс; отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не занят ре­сурс, а для делимых ресурсов - какое количество ресурса уже распределено, а какое свободно. Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы. Так, алгоритм управления процессором в значительной степени определяет, является ли ОС системой разделения времени, системой пакетной обработки или системой реального времени. Основные функции операционной системы: Обмен данными между компьютером и различными периферийными устройствами (терминалами, принте­рами, гибкими дисками, жесткими дисками и т.д.). Такой обмен данными называется "ввод/вывод данных"; Обеспечение системы организации и хранения файлов; Загрузка программ в память и обеспечение их выполнения. Функции ОС по отслеживанию памяти: отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение по окончанию процесса; вытеснение процессов на диск, когда оперативной памяти недостаточно для всех процессов; возвращение оперативной памяти; настройка адресов программы на конкретные области физической памяти

Вопрос 3. Требования к ОС. Основные требования: расширяемость. Расширяемость может достигаться за счет модульной структуры ОС, за счет использова­ния объектно-ориентированного подхода. Наличие загружаемых драйверов улучшает расширяемость; переносимость (код переносится с одной платформы на другую). Переносимость связана с расширяемостью. Любую систему можно переписать. Боль­шую часть системы пишут на высокоориентированных языках (например, Си). Необхо­димо минимизировать ту часть кода, которая непосредственно отвечает за аппаратные средства. Если код разбросан по всей системе, то переносимость затруднена. Лучше, если он изолирован; надежность и отказоустойчивость. Надежность и отказоустойчивость состоит в защите от внутренних и внешних ошибок, сбоев, отказов. Действия системы должны быть предсказуемы; совместимость (в ОС должны быть средства, приложения, разработанные др.). Совместимость: на уровне исходного текста, на уровне бинарного (двоичного) текста. В первом случае просто компилируем и никаких сложностей. Во втором случае встраиваем в коды драйверы; но команды не будут совпадать. Для того, чтобы произошла совмести­мость, необходимо сделать так, чтобы 1 отвечал за 3. Другой способ – набор прикладных программ. Скорость увеличивается; безопасность. Процесс не должен блокироваться другим процессом; Производительность. В 1983 г. безопасностью начали заниматься американцы – выпущен стандарт «Крите­рий надежности (оценки) безопасности работы ОС». Безопасной считается та система, которая посредством специальных механизмов защиты контролирует доступ к инфор­мации т.о., что только имеющие соответствующие полномочия лица и процессы могут получить доступ на чтение, запись и т.д. Вводилось 4 уровня: D (не удовлетворял требованиям всех других классов); С (системы выполняют наличие подсистемы учета событий, связанные с безо­пасностью, и избирательный контроль доступа). Window NT и UNIX относятся к С2. С – самый распространенный вид; С1 – обеспечивает защиту данных от защиты пользователей, но не от действия злоумышленников; С2 – есть средства секретного ввода, обеспечивающие интерфейс пользователю путем ввода уникального пароля. Избирательный контроль доступа позволяет владельцу ресурса определить, кто имеет доступ к ресурсу и что может с ним делать. Владелец делает это путем предоставления пользователю и группе пользователей. Есть средства учета и наблюдения; защита памяти, которая заклю­чается в том, что память инициализируется перед тем, как по­вторно использоваться. Это «дискреционная политика прав дос­тупа»; В – «Мандатная политика прав доступа». Каждое должностное лицо имеет определенные права. Человек, разрабатывающий секретные документы, не может создавать несекретные документы. Такие системы относятся к группе В; А – требует формального математически обоснованного доказательства сис­темы требования безопасности + все предыдущие требования.

Вопрос 4. Понятие ресурса. Виды ресурсов. Управление ресурсами. Важнейшей функцией операционной системы является организация рационального использования всех аппа­ратных и программных ресурсов системы. К основным ресурсам могут быть отнесены: процессоры, память, внешние устройства, данные и программы. Располагающая одними и теми же ресурсами, но управляемая различными ОС, вы­числительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов опе­рационной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках.

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

Формат кода каталога

Структура: имя (с 0 до 0В); атрибуты (0В-0С); резерв (0С-16); время (16-18); дата (18-1А); начальный кластер (1А-1С); размер файла (1С-1F)

Поле атрибутов (1 байт): 0 бит – постоянный файл; 1 бит – скрытный; 2 бит – системный; 3 бит – метка тома; 4 бит – подкаталог; 5 бит – архивный; 6 и 7 бит – резерв; Формат поля времени (2 байта): 0-4 бит – 2-хсекундное превращение значения от 0 до 29; 4-10 бит – минуты от 0 до 59; 10-15 бит – часы от 0 до 23;

Формат поля даты (2 байта): 0-4 бит – день от 0 до 31; 4-10 бит – месяц с 1 по 12; 10-15 бит – год относительно 1980

Вопрос 19. Структура PSP.

В области памяти после резидентной части, выполняющей загрузку программ, строится префикс Программного Сегмента (см. таблицу ниже). PSP представляет собой 100h – байтовую область памяти, вслед за которой загружается программа. В эту область заносятся системные данные, которые бывает полезно считывать; в частности, по адресу 80h в PSP заносится командная строка, сопутствующая программе. Структура PSP

Смещение - Размер Содержимое
0 – 2 Команда завершения int 20h
2 – 2 Номер последнего доступного блока в памяти (номер параграфа)
4 – 1 Зарезервировано
5 – 5 Команда вызова диспетчера функций DOS
0А – 4 Адрес завершения программы
0Е – 4 Адрес обработчика критических ошибок
16 – 16 Зарезервировано для использования DOS
2С – 2 Адрес сегмента окружения DOS
2Е – 2Е Зарезервировано для использования DOS
5С – 10 Используется для обработки первого параметра командной строки с помощью FCB (file control block) (блок управления файлом)
6С – 14 Используется для обработки второго параметра командной строки с помощью FCB (file control block) (блок управления файлом)
80 – 1 Длина строки параметров (используется так же, как смещение начала области обмена данных с диском (DTA – disk transfer area) по умолчанию)
81 – 7F Содержимое командной строки
  Начинается размещение программы

В PSP программа со смещением 2F находится 4-байтовая область, в которую DOS помещает указатель стека при обращении к системным функциям, так как при выполнении ряда системных выховов используется внутренний стек DOS.

При пошаговом выполнении обработку int 21h первым выполняет отладчик, чей указатель будет сохранен в активном PSP.

Вопрос 20. Прерывания. Прерывание – это действие, производимое компьютером для выполнения системных и сервисных функций во время работы основного процесса.

3 этапа: Приостановление выполнения основного процесса; Обработка прерывания; Возврат управления основному процессу;

2 вида прерываний: Аппаратное; Программное (функцию пишем сами, поддерживает система). Программные прерывания удобно использовать для организации доступа к отдельным, общим для всех программ модулям. Например, программные модули операционной системы доступны прикладным программам именно через прерывания, и нет необхо­димости при вызове этих модулей знать их текущий адрес в памяти. Прикладные программы могут сами устанавливать свои обработ­чики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти. Мы научимся создавать свои программы обработки прерываний и будем говорить об этом при обсуждении резидентных программ. Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Эти прерывания информируют систему о событиях, связанных с работой устройств, например о том, что наконец-то завершилась печать символа на принтере и не­плохо было бы выдать следующий символ, или о том, что требуемый сектор диска уже прочитан, его содержимое доступно программе. Использование прерываний при работе с медленными внешними устройствами позволяют совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы. Некоторые прерывания (первые пять в порядке номеров) зарезервированы для использования самим центральным процессо­ром на случай каких-либо особых событий вроде попытки деления на ноль, переполнения и т.п. Иногда желательно сделать систему нечувствительной ко всем или отдельным прерываниям. Для этого используют так на­зываемое маскирование прерываний, о котором мы еще будем подробно говорить. Но некоторые прерывания замаскировать нельзя, это немаскируемые прерывания.

Заметим еще, что обработчики прерываний могут сами вызывать программные прерывания, например, для получения доступа к сер­вису BIOS или DOS (сервис BIOS также доступен через механизм программных прерываний).

Составление собственных программ обработки прерываний и замена стандартных обработчиков DOS и BIOS является ответ­ственной и сложной работой. Необходимо учитывать все тонкости работы аппаратуры и взаимодействия программного и аппаратного обеспечения. При отладке возможно разрушение операционной системы с непредсказуемыми последствиями, поэтому надо очень внимательно следить за тем, что делает Ваша программа.

Обработка прерывания может происходить в соответствии с тремя основными схемами.

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

Вопрос 2.Осн. комп-ты ОС.

Определение операционной системы. Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. ОС – это совокупность программно-аппаратных средств, обеспечивающих взаимодействие компьютера и пользователя. ОС выполняет две функции: управляет ресурсами и предоставляет пользователю удобного интерфейса для взаимодействия с машиной. ОС как расширенная машина. Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Точно также, как ОС ограждает программистов от аппаратуры дискового накопи­теля и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной или вирту­альной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, со­ставляющей реальную машину. ОС как система управления ресурсами. ОС прежде всего система, обеспечивающая удобный интерфейс пользователям. Другой взгляд дает представление об ОС как о некотором механизме, управ­ляющем всеми частями сложной системы. Современные вычислительные системы состоят из процессоров, памяти, тай­меров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других уст­ройств. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффектив­ности может быть пропускная способность или реактивность системы. Управление ресурсами включает ре­шение двух общих, не зависящих от типа ресурса задач: планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необхо­димо выделить данный ресурс; отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не занят ре­сурс, а для делимых ресурсов - какое количество ресурса уже распределено, а какое свободно. Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы. Так, алгоритм управления процессором в значительной степени определяет, является ли ОС системой разделения времени, системой пакетной обработки или системой реального времени. Основные функции операционной системы: Обмен данными между компьютером и различными периферийными устройствами (терминалами, принте­рами, гибкими дисками, жесткими дисками и т.д.). Такой обмен данными называется "ввод/вывод данных"; Обеспечение системы организации и хранения файлов; Загрузка программ в память и обеспечение их выполнения. Функции ОС по отслеживанию памяти: отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение по окончанию процесса; вытеснение процессов на диск, когда оперативной памяти недостаточно для всех процессов; возвращение оперативной памяти; настройка адресов программы на конкретные области физической памяти

Вопрос 3. Требования к ОС. Основные требования: расширяемость. Расширяемость может достигаться за счет модульной структуры ОС, за счет использова­ния объектно-ориентированного подхода. Наличие загружаемых драйверов улучшает расширяемость; переносимость (код переносится с одной платформы на другую). Переносимость связана с расширяемостью. Любую систему можно переписать. Боль­шую часть системы пишут на высокоориентированных языках (например, Си). Необхо­димо минимизировать ту часть кода, которая непосредственно отвечает за аппаратные средства. Если код разбросан по всей системе, то переносимость затруднена. Лучше, если он изолирован; надежность и отказоустойчивость. Надежность и отказоустойчивость состоит в защите от внутренних и внешних ошибок, сбоев, отказов. Действия системы должны быть предсказуемы; совместимость (в ОС должны быть средства, приложения, разработанные др.). Совместимость: на уровне исходного текста, на уровне бинарного (двоичного) текста. В первом случае просто компилируем и никаких сложностей. Во втором случае встраиваем в коды драйверы; но команды не будут совпадать. Для того, чтобы произошла совмести­мость, необходимо сделать так, чтобы 1 отвечал за 3. Другой способ – набор прикладных программ. Скорость увеличивается; безопасность. Процесс не должен блокироваться другим процессом; Производительность. В 1983 г. безопасностью начали заниматься американцы – выпущен стандарт «Крите­рий надежности (оценки) безопасности работы ОС». Безопасной считается та система, которая посредством специальных механизмов защиты контролирует доступ к инфор­мации т.о., что только имеющие соответствующие полномочия лица и процессы могут получить доступ на чтение, запись и т.д. Вводилось 4 уровня: D (не удовлетворял требованиям всех других классов); С (системы выполняют наличие подсистемы учета событий, связанные с безо­пасностью, и избирательный контроль доступа). Window NT и UNIX относятся к С2. С – самый распространенный вид; С1 – обеспечивает защиту данных от защиты пользователей, но не от действия злоумышленников; С2 – есть средства секретного ввода, обеспечивающие интерфейс пользователю путем ввода уникального пароля. Избирательный контроль доступа позволяет владельцу ресурса определить, кто имеет доступ к ресурсу и что может с ним делать. Владелец делает это путем предоставления пользователю и группе пользователей. Есть средства учета и наблюдения; защита памяти, которая заклю­чается в том, что память инициализируется перед тем, как по­вторно использоваться. Это «дискреционная политика прав дос­тупа»; В – «Мандатная политика прав доступа». Каждое должностное лицо имеет определенные права. Человек, разрабатывающий секретные документы, не может создавать несекретные документы. Такие системы относятся к группе В; А – требует формального математически обоснованного доказательства сис­темы требования безопасности + все предыдущие требования.

Вопрос 4. Понятие ресурса. Виды ресурсов. Управление ресурсами. Важнейшей функцией операционной системы является организация рационального использования всех аппа­ратных и программных ресурсов системы. К основным ресурсам могут быть отнесены: процессоры, память, внешние устройства, данные и программы. Располагающая одними и теми же ресурсами, но управляемая различными ОС, вы­числительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов опе­рационной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках.

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

Вопрос 5. Вирт. память. Методы распределения памяти.

виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользовате­лям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи: размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске; перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгру­жает нужную часть программы с диска в оперативную память; преобразует виртуальные адреса в физические; Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти яв­ляется прозрачным по отношению к пользователю. Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг. 2 класса:

I без использования внешней памяти

1. фиксированный раздел:

Вся память делится на блоки фиксированной длины. Система управления памяти решает следующие задачи:

сравнивает размер программы, поступившей на выполнение, и свободные разделы, и выбирает раздел; осуществление загрузки и настройку адресов; 2. динамический раздел:

Изначально вся память свободна. Поступает задача и выделяется память.

Задачи ОС:

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

3. перемещение:

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

по завершению каждой задачи; время от времени

II Виртуальным называется ресурс, который пользователю и пользовательским ресурсам предоставляется свойствами, которыми он в действительности не обладает.

Виртуальная память – это совокупность программно-аппаратных средств, позволяющие пользователю писать программы, размер которых превосходит имеющую оперативную память.

Решает следующие задачи:

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

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

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

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

Просматривается содержимое cash-памяти с целью определения, не находятся ли нужные данные в cash. Поскольку cash-память не адресуема, поэтому поиск данных осуществляется по значению поля адреса в АЗУ.

Объективные свойства:

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

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

В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти выполняется в соот­ветствии со следующим алгоритмом: Просматривается содержимое кэш-памяти с целью определения, не находятся ли нужные данные в кэш-памяти; кэш-память не является адресуемой, поэтому поиск нужных данных осуществляется по содержимому - значению поля "адрес в оперативной памяти", взятому из запроса; Если данные обнаруживаются в кэш-памяти, то они считываются из нее, и результат передается в процессор; Если нужных данных нет, то они вместе со своим адресом копируются из оперативной памяти в кэш-память, и результат выполнения запроса передается в процессор. При копировании данных может оказаться, что в кэш-памяти нет свободного места, тогда выбираются данные, к которым в последний период было меньше всего обращений, для вытеснения из кэш-памяти. Если вытесняе­мые данные были модифицированы за время нахождения в кэш-памяти, то они переписываются в оперативную память. Если же эти данные не были модифицированы, то их место в кэш-памяти объ­является свободным.

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

Выполнение – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

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

Готовность – пассивное состояние процесса; процесс заблокирован в связи с внешними по отношению к нему условиями. У процесса есть все ресурсы, он готов к выполнению, но процессор занят выполнением другого процесса.

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

На протяжении существования процесса его выполнения может быть многократно прервано и продолжено. Чтобы возобновить выполнение процесса, необходимо восстановить его состояние: Восстановить содержимое регистров и программного счетчика; Указатели на открытые файлы; Состояние об ошибках и т.д.

Соответствующая информация называется контекстом. Кроме того, системе для организации планирования процесса требуется определенная дополнительная информация: Идентификатор; Состояние; Данные о степени привилегированности; Место нахождения кодового сегмента

Данная информация называется дескриптором процесса. Т.е. дескриптор содержит более оперативную информацию, которая доступна системе планирования процесса, по сравнению с контекстом. После того, как система решила, какой выполнять процесс, используется контекст.

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

Вопрос 8. Алгоритмы планирования процессов. FCFS и RR.

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

Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой FCFS по первым буквам его английского названия – First-Come, First-Served (первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он, а точнее, ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB. Очередь подобного типа имеет в программировании специальное наименование – FIFO, сокращение от First In, First Out (первым вошел, первым вышел).

Такой алгоритм выбора процесса осуществляет невытесняющее планирование. Процесс, получивший в свое распоряжение процессор, занимает его до истечения текущего CPU burst. После этого для выполнения выбирается новый процесс из начала очереди.

Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin – это вид детской карусели в США) или сокращенно RR. По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически – процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10 – 100 миллисекунд Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться. Реализуется такой алгоритм так же, как и предыдущий, с помощью организации процессов, находящихся в состоянии готовность, в очередь FIFO. Планировщик выбирает для очередного исполнения процесс, расположенный в начале очереди, и устанавливает таймер для генерации прерывания по истечении определенного кванта времени. При выполнении процесса возможны два варианта.

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

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

Вопрос 9. Алг-мы планирования процессов.SJF. Многоуровненвые очереди с обр. связью. SJF-алгоритм краткосрочного планирования может быть как вытесняющим, так и невытесняющим. При невытесняющем SJF-планировании процессор предоставляется избранному процессу на все необходимое ему время, независимо от событий, происходящих в вычислительной системе. При вытесняющем SJF-планировании учитывается появление новых процессов в очереди готовых к исполнению (из числа вновь родившихся или разблокированных) во время работы выбранного процесса. Если CPU burst нового процесса меньше, чем остаток CPU burst у исполняющегося, то исполняющийся процесс вытесняется новым. Основную сложность при реализации алгоритма SJF представляет невозможность точного знания продолжительности очередного CPU burst для исполняющихся процессов. В пакетных системах количество процессорного времени, необходимое заданию для выполнения, указывает пользователь при формировании задания. Мы можем брать эту величину для осуществления долгосрочного SJF-планирования. Если пользователь укажет больше времени, чем ему нужно, он будет ждать результата дольше, чем мог бы, так как задание будет загружено в систему позже. Если же он укажет меньшее количество времени, задача может не досчитаться до конца. Таким образом, в пакетных системах решение задачи оценки времени использования процессора перекладывается на плечи пользователя. Дальнейшим развитием алгоритма многоуровневых очередей является добавление к нему механизма обратной связи. Здесь процесс не постоянно приписан к определенной очереди, а может мигрировать из одной очереди в другую в зависимости от своего поведения.

Для простоты рассмотрим ситуацию, когда процессы в состоянии готовность организованы в 4 очереди. Планирование процессов между очередями осуществляется на основе вытесняющего приоритетного механизма. Чем выше на рисунке располагается очередь, тем выше ее приоритет. Процессы в очереди 1 не могут исполняться, если в очереди 0 есть хотя бы один процесс. Процессы в очереди 2 не будут выбраны для выполнения, пока есть хоть один процесс в очередях 0 и 1. И наконец, процесс в очереди 3 может получить процессор в свое распоряжение только тогда, когда очереди 0, 1 и 2 пусты. Если при работе процесса появляется другой процесс в какой-либо более приоритетной очереди, исполняющийся процесс вытесняется новым. Планирование процессов внутри очередей 0–2 осуществляется с использованием алгоритма RR, планирование процессов в очереди 3 основывается на алгоритме FCFS. Многоуровневые очереди с обратной связью представляют собой наиболее общий подход к планированию процессов из числа подходов, рассмотренных нами. Они наиболее трудны в реализации, но в то же время обладают наибольшей гибкостью. Понятно, что существует много других разновидностей такого способа планирования, помимо варианта, приведенного выше. Для полного описания их конкретного воплощения необходимо указать:Количество очередей для процессов, находящихся в состоянии готовность; Алгоритм планирования, действующий между очередями; Алгоритмы планирования, действующие внутри очередей; Правила помещения родившегося процесса в одну из очередей; Правила перевода процессов из одной очереди в другую.



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 178; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.28.50 (0.043 с.)