русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ


Дата добавления: 2013-12-23; просмотров: 896; Нарушение авторских прав


Алгоритмы замещения страниц в виртуальной памяти

8.

1. FIFO (первый зашёл, первый вышел) ОС поддерживает список всех страниц, которые находятся в памяти. Самая старая страница находится в голове списка, новая – в хвосте.

Когда происходит страничное прерывание, то удаляется страница, находящаяся в голове списка.

Недостаток: не оценивается, как используется страницы процессором. Если страница которая находится в голове списка происходит частое обращение, то её удаление приведет к значительным потерям.

Алгоритм прост, но возможны потери времени

Модифицированный алгоритм FIFO часто называют «вторая попытка». В записи страницы имеется бит обращения R.

Если R=0, т.е. к странице давно не было обращения, и она не используется, то удаляется из списка.

Если R=1, т.е. обращение было, то страница помещается в хвост списка, после чего бит R обнуляется

Считается, что более оптимальным алгоритмом считается «карабкающаяся страница».

Если произошло обращение к странице, то она меняется местами с i+1 страницей. Таким образом страница, к которой обращаются перемещается ближе к «хвосту» к которым обращения не было – к голове.

2. NRU (Not Recently Used) используется бит обращения R, бит модификации М.

Оценка производится в течение некоторого интервала времени. При страничном прерывании ОС проверяет содержимое бита управления всех страниц и делит их на четыре класса:

Класс 0: не было обращения R=0, не было изменений M=0

Класс 1: не было обращений R=0, страница изменена M=1

Класс 2: было обращение R=1, станица не изменялась M=0

Класс 3: было обращение R=1, страница изменялась M=1

После окончания анализа бит R=0

Класс 1, имеет противоречие, но имеет место быть, т.к. к странице было обращение за пределами миллисекундного интервала, произошло изменение страницы, после чего бит R был сброшен.



Наиболее вероятно удаление страницы класса 1, к которому не было дано обращение, но страница изменялась

3. Алгоритм LRH – страница не используется дольше сего.

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

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

9.

 

Под архитектурой операционной системы (ОС) понимают её структурную организацию на основе различных программных модулей.

Операционная система разделяется на две группы модулей:

- модули, выполняющие основные функции ОС, которые называются ядром;

- модули, выполняющие вспомогательные функции ОС.

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

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

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

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

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.

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

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

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

Вспомогательные модули ОС обычно подразделяются на следующие группы:

- утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;

- системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

- программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;

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

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

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

Рисунок 4.1-Взаимодействиемежду ядром и вспомогательными модулями ОС

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

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

Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизор (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.

Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме (рис. 4.2). Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия «ядро».

Рисунок 4.2.Архитектура операционной системы с ядром в привилегированном режиме


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



<== предыдущая лекция | следующая лекция ==>
Ускорение формирования адреса. Буферы быстрого преобразования адреса | Микроядерная архитектура


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.