Билеты_ОС_full. Виды прерываний. Роль прерываний в операционной системе
![]()
|
35. Стратегии управления страничной памятью: Стратегия выборки определяет в какой момент следует переписать страницу из вторичной памяти в первичную. Существуют 2 основных варианта выборки: по запросу и с упреждением. 1) По запросу. Вступает в действие в тот момент, когда процесс обращается к отсутствующей странице, содержимое которой находится на диске. Его реализация заключается в загрузке страницы с диска в свободную физическую страницу и коррекции соответствующей записи таблицы страниц. 2) Алгоритм выборки с упреждением осуществляет опережающее чтение, т.е кроме страницы, вызвавшей исключительную ситуацию в памяти, также загружается несколько страниц окружающих её. Такой алгоритм призван уменьшить накладные расходы, связанные с большим количеством исключительных ситуаций, возникших при работе со значительными объемами данных или кода. Кроме того, оптимизируется работа с диском. Стратегия размещения определяет, в какой участок первичной памяти поместить поступающую страницу. В системе со страничной организацией она помещается в любой свободный страничный кадр. В случае системы с сегментной организацией необходима стратегия, аналогичная стратегии с динамическим распределением. Стратегия замещения определяет, какую страницу надо вытолкнуть во внешнюю память, чтобы освободить место в ОП. Стратегия позволяет хранить в памяти самую нужную информацию и тем самым снизить частоту страничных нарушений. Замещение должно происходить с учетом выделенного каждому процессу количества кадров. Кроме того, надо решить должна ли замещаемая страница принадлежать процессу, который вызвал замещение или она должна быть выбрана среди всех кадров основной памяти. 36. Алгоритмы замещения страниц. FIFO, LRU, NFU, оптимальный алгоритм Алгоритм FIFO. Выталкивание первой пришедшей страницы Простейший алгоритм. Каждой странице присваивается временная метка. Реализуется это просто созданием очереди страниц, в конец которой страницы попадают, когда загружаются в физическую память, а из начала берутся, когда требуется освободить память. Для замещения выбирается старейшая страница. К сожалению, эта стратегия с достаточной вероятностью будет приводить к замещению активно используемых страниц, например страниц кода текстового процессора при редактировании файла. Заметим, что при замещении активных страниц все работает корректно, но page fault происходит немедленно. Оптимальный алгоритм (OPT) Замещай страницу, которая не будет использоваться в течение самого длительного периода времени. Каждая страница должна быть помечена числом инструкций, которые будут выполнены, прежде чем на эту страницу будет сделана первая ссылка. Выталкиваться должна страница, для которой это число наибольшее. Этот алгоритм легко описать, но реализовать невозможно. ОС не знает, к какой странице будет следующее обращение. Данный алгоритм применяется для оценки качества реализуемых алгоритмов. Выталкивание дольше всего не использовавшейся страницы. Алгоритм LRU Если использовать прошлое для аппроксимации будущего, имеет смысл замещать страницу, которая не использовалась в течение самого долгого времени. Такой подход называется least recently used алгоритм ( LRU ). Использование LRU алгоритма позволяет сократить количество страничных нарушений. ![]() LRU - хороший, но труднореализуемый алгоритм. Необходимо иметь связанный список всех страниц в памяти, в начале которого будут хранится недавно использованные страницы. Причем этот список должен обновляться при каждом обращении к памяти. Много времени нужно и на поиск страниц в таком списке. Выталкивание редко используемой страницы. Алгоритм NFU Программная реализация алгоритма, близкого к LRU, - алгоритм NFU(Not Frequently Used). Для него требуются программные счетчики, по одному на каждую страницу, которые сначала равны нулю. При каждом прерывании по времени операционная система сканирует все страницы в памяти и у каждой страницы с установленным флагом обращения увеличивает на единицу значение счетчика, а флаг обращения сбрасывает. Таким образом, кандидатом на освобождение оказывается страница с наименьшим значением счетчика, как страница, к которой реже всего обращались. Главный недостаток алгоритма NFU состоит в том, что он ничего не забывает. Например, страница, к которой очень часто обращались в течение некоторого времени, а потом обращаться перестали, все равно не будет удалена из памяти, потому что ее счетчик содержит большую величину.. К счастью, возможна небольшая модификация алгоритма, которая позволяет ему "забывать". Достаточно, чтобы при каждом прерывании по времени содержимое счетчика сдвигалось вправо на 1 бит, а уже затем производилось бы его увеличение для страниц с установленным флагом обращения. Другим, уже более устойчивым недостатком алгоритма является длительность процесса сканирования таблиц страниц. 37. Механизм трансляции адреса. Структура таблицы страниц. Аппаратная поддержка Процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов:
Структура таблицы страниц Организация таблицы страниц – один из ключевых элементов отображения адресов в страничной и сегментно-страничной схемах. Виртуальный адрес состоит из виртуального номера страницы и смещения. Номер записи в таблице страниц соответствует номеру виртуальной страницы. Размер записи колеблется от системы к системе, но чаще всего он составляет 32 бита. Из этой записи в таблице страниц находится номер кадра для данной виртуальной страницы, затем прибавляется смещение и формируется физический адрес. Помимо этого запись в таблице страниц содержит информацию об атрибутах страницы. Это биты присутствия и защиты (например, 0 – read/write, 1 – read only...). Также могут быть указаны: бит модификации, который устанавливается, если содержимое страницы модифицировано, и позволяет контролировать необходимость перезаписи страницы на диск; бит ссылки, который помогает выделить малоиспользуемые страницы; бит, разрешающий кэширование, и другие управляющие биты. Заметим, что адреса страниц на диске не являются частью таблицы страниц. Для того чтобы избежать размещения в памяти огромной таблицы, ее разбивают на ряд фрагментов. В оперативной памяти хранят лишь некоторые, необходимые для конкретного момента исполнения фрагменты таблицы страниц. В силу свойства локальности число таких фрагментов относительно невелико. Выполнить разбиение таблицы страниц на части можно по-разному. Наиболее распространенный способ разбиения – организация так называемой многоуровневой таблицы страниц. Наличие нескольких уровней, естественно, снижает производительность менеджера памяти. Несмотря на то что размеры таблиц на каждом уровне подобраны так, чтобы таблица помещалась целиком внутри одной страницы, обращение к каждому уровню – это отдельное обращение к памяти. Таким образом, трансляция адреса может потребовать нескольких обращений к памяти. Количество уровней в таблице страниц зависит от конкретных особенностей архитектуры. Можно привести примеры реализации одноуровневого (DEC PDP-11), двухуровневого (Intel, DEC VAX), трехуровневого (Sun SPARC, DEC Alpha) пейджинга, а также пейджинга с заданным количеством уровней (Motorola). Типичный набор средств аппаратной поддержки ОС, в который входят следующие компоненты:
38. Понятие файловой системы. Функции и назначение файловой системы файловая система(FAT,VFAT,FAT32,HPFS,HTFS)- это набор спецификаций и соответствующее им программное обеспечение, которые отвечают за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управлением ресурсами, которые используются файлами. В операционных системах файловая система относится к основным понятиям и определяется как общая система, которая устанавливает правила присвоения имен файлам, хранение, организацию и обработку файлов на носителях информации. Таким образом, файловая система – это часть операционной системы, которая обеспечивает запись и чтение файлов на носителях информации (внешних ЗУ), т. е. представляет пользователю удобный интерфейс при работе с данными, хранящимися на ЗУ. Основные функции файловой системы
39. Понятие файла. Основные свойства и характеристики файла Файл — именованная область данных на носителе информации. Свойства и характеристики файлов:
Каталог(директория)'>40. Понятие директории. Реализация директории. Корневая директория. Каталог(директория) - это поименованная группа файлов, объединённых по кокому-либо признаку. Основная задача создания каталогов — обеспечить пользователю удобное размещение файлов на диске и, следовательно, обеспечить наибольший комфорт в работе с ними. Каталог — поименованная совокупность байтов на носителе информации, содержащая название подкаталогов и файлов. Как правило, под корневой директорией подразумевается папка, в которой находятся файлы, которые отвечают за работу программы, сайта или компьютера. Корневая директория – это главная папка в иерархии и выше нее ничего нельзя разместить. ![]() 50.Сообщения как механизм межпроцессного взаимодействия. Термин «разделяемая память» точно соответствует своему названию: резервируется область памяти и к ней предоставляется доступ набору процессов. Поскольку это касается и вопросов взаимодействия, и вопросов управления памятью, в настоящем разделе упоминается материал, приведенный ранее в этой главе, а также материал главы 8. Разделяемая память по своему быстродействию намного превосходит два других механизма взаимодействия между процессами, рассматриваемые в этой главе, и она проще в использовании: процесс после ее приобретения рассматривает ее просто как обычную память. Изменения, записанные в разделяемую память одним процессом, сразу же становятся очевидными для всех других процессов — они могут просто выполнить чтение через указатель, который указывает на пространство разделяемой памяти, а там, как по взмаху волшебной палочки, уже находится новое значение. Однако в разделяемой памяти типа System V нет встроенного способа обеспечения взаимного исключения: может оказаться, что один процесс пишет по данному адресу в области разделяемой памяти одновременно с тем, как другой процесс читает по тому же адресу, в результате чего программа чтения получает противоречивые данные. Эта проблема наиболее серьезна для компьютеров с симметричной мультипроцессорной архитектурой, но она может возникать и на однопроцессорных компьютерах: например, когда программа записи потеряет управление и перейдет в неактивное состояние в ходе записи какой-то крупной структуры в пространство разделяемой памяти, а программа чтения выполнит чтение из разделяемой памяти до того, как программа записи получит возможность закончить запись. В результате, в процессах, использующих разделяемую память, нужно что-то предусмотреть для обеспечения тщательного отделения операций чтения от операций записи (и, если подумать, операций записи друг от друга). Исчерпывающее описание блокировок и связанных с ними понятий атомарных операций приведено в следующей главе. Но нам уже известен способ обеспечения взаимоисключающего доступа к области разделяемой памяти: применение семафоров. Идея состоит в приобретении семафора, доступе к области памяти, выполнении всех запланированных действий, а затем освобождении семафора после выполнения этой работы. Разделяемая память может применяться в основном в таких же целях, как и очереди сообщений: процесс планировщика может записывать запрос на выполнение работы в одной части области разделяемой памяти, а рабочие процессы могут записывать результаты в другой части. Это значит, что общее пространство для запросов и результатов должно быть заранее разграничено приложением, но планирование и запись результатов выполняются быстрее по сравнению с очередями сообщений. Область разделяемой памяти не обязана выглядеть для каждого процесса как имеющая один и том же адрес. Если и процесс А, и процесс В используют одну и ту же область разделяемой памяти, процесс А может обращаться к ней по одному адресу, а процесс В — по другому. Безусловно, каждая страница области разделяемой памяти будет отображена не более, чем на одну физическую страницу. Механизмы виртуальной памяти, описанные в предыдущей главе, просто применяют разные преобразования к логическим адресам каждого процесса. В коде ядра области разделяемой памяти называются сегментами, то есть применяется та же терминология, которая иногда ошибочно применяется к областям VMA. Только для того, чтобы предотвратить какую-либо путаницу, отметим, что это — неформальное применение данного слова; оно не относится к сегментам, поддерживаемым на уровне аппаратного обеспечения (MMU), которые описаны в главе 8. Автор будет и далее использовать термин «область», чтобы избежать этой путаницы. 51. Сообщения как механизм межпроцессного взаимодействия. В информатике обмен сообщениями является формой связи, используемой в параллельных вычислениях, объектно-ориентированном программировании и взаимодействии процессов. Сообщение реализуется путём посылки пакетов информации получателям, которые могут означать множество вещей: вызов функций, сигналы, данные. Данный метод широко используется во всевозможных системах с параллелизмом для координации действий. В микроядерных операционных системах он используется для обмена информацией между одним из ядер и одним или более исполняющих блоков. Распределённые системы доступа к объектам и удалённого вызова методов, вида ONC RPC, CORBA, RMI, DCOM, SOAP, .Net_Remoting, QNX Neutrino RTOS,OpenBinder, D-Bus и им подобные являются системами обмена сообщениями. Этот термин также используется в высокомощных вычислениях и интерфейсе передачи сообщений MPI. Системы обмена сообщениями являются закрытыми, так как их абстракция прячет все изменения состояний, которые могут быть использованы в реализации отсылки сообщений. Языки программирования, базирующиеся на этой модели, обычно определяют передачу сообщения, как посылку (обычно асинхронную; являющуюся копией) элемента данных конечному получателю (актору, процессу, потоку, сокету и т. д.). Такой обмен используется SOAP в веб-сервисах. Эта концепция является высокоуровневой версией датаграмм, за исключением того, что сообщения могут быть больше по размерам, чем пакет, и могут быть сделаны надёжными, стойкими, безопасными и при желании и могут быть охвачены механизмом транзакций. Сообщения также часто используются в том же смысле, что и межпроцессное взаимодействие; другой широкораспространённой техникой являются потоки иконвейеры, в которых информация посылается как последовательность простейших элементов данных (высокоуровневая версия виртуального канала). ООП В терминах некоторых объектно-ориентированных языков программирования сообщение — это единственный путь передать управление объекту. Если объект должен «отвечать» на это сообщение, то у него должен быть метод, соответствующий данному сообщению. В чистом объектно-ориентированном программировании обмен сообщениями реализуется только с помощью динамических вызовов. Посылка одного и того же сообщения объекту дважды обычно вызывает и двойное применение объектом метода. Сообщения называются одинаковыми, если их имена и аргументы одинаковы. Объекты могут посылать сообщения другим объектам, используя свои методы. Обмен сообщениями приводит к чрезвычайно позднему связванию (англ. extremelatebinding). Алан Кэй утверждает[1], что обмен сообщениями между объектами — это концепция более важная, чем сами объекты, хотя люди часто это не понимают и уделяют слишком много внимания самим объектам и недостаточно — сообщениям, которыми они обмениваются. |