Введение в операционные системы. ОС с точки зрения пользователя. Конфигурация компьютера. Многоуровневые очереди, страница 9

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

Алгоритм выбора "жертвы"

1. FIFO

 


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

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

Замечание: этот алгоритм очень тяжел в реализации, поэтому его используют в основном для тестирования других алгоритмов.

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

II-вариант – использование стэка. В стэк заносятся только номера страниц. Страница-жертва определяется по адресу, лежащему на дне стэка.

Дно

 
 


Критические ресурсы

Ресурсы компьютера – все, что используется. Критическими называются ресурсы, которые в какой-то момент времени востребованы несколькими процессами. Процессы ресурсами обрабатываются за разное время, что является проблемой.

Ресурсы бывают:

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

-  небуферизируемые – последовательный порт

Одновременное обращение

 
 


Симофорное регулирование:

- двоичный симофор, т.е. как только появляется два процесса, это значит, что П2 будет ждать освобождение ресурса после П1. Если при этом появляется П3, то он не получает ресурсов пока не закончится П1.

- К-ичный симофор. На каждый ресурс есть К-входов, среди которых можно использовать и приоритет и FIFO.

Один из самых распространенных критических ресурсов – это работа с жестким диском. Каждый из входов может быть буферизирован.

Файловая система

Файловая система – с одной стороны, это структура (стандарт) расположения файлов на диске, а с другой – набор программ, модулей, которые в зависимости от этой структуры создают, копируют, перемещают, удаляют файлы на диске.

У файловой системы минимальный объект – это сектор (512 байт)

 


Лекция 12

Свойства файла

1.  Файл – это некоторый объект, который имеет содержимое, располагающееся на диске, и имя, которое позволяет осуществит доступ к этому содержимому.

2.  Содержимое файла не зависит от его месторасположения на диске и доступ к нему осуществляется на уровне операционной системы по имени (или по дескриптору/описателю файла) и второй уровень доступа осуществляется при помощи драйвера соответствующего устройства, который считывает физическое состояние последовательности секторов на диске.

3.  Файлы должны поддерживать некоторый набор функций ввода/вывода:

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

3.2.  Чтение/запись файла обязательно буферизируется.

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

512 байт – каждый сектор на диске  – очень маленькая единица считывания. Они объединяются в кластеры 2,4,8,16 секторов.  

Буфер организуется либо Операционной системой, либо буфером диска (или КЭШ диска).

Буфер

 
                                                       

 


Если вы хотите что-то записать в файл, на самом деле они "кидаются" в буфер. И только когда весь буфер заполнится, он уходит в сектор диска. Став пустым, буфер заполняется заново.

 
                                                                                      

20 байт

 

файл

 
 


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

3.3. У каждого файла есть указатель, который указывает на то место, куда будет писаться или откуда будет считываться информация. Прикладные программы могут (должны) управлять  этим указателем.

По типу управления указателем, файлы могут быть:

а) последовательного доступа (сначала его создаем, указатель передвигается при каждой записи, в конце делается операция close)

специальный код конца файла => файл существует на диске

 

3

 

2

 

1

 
                                                                           код