- •Классификация ос.
- •Концептуальная схема компьютера.
- •Приоритеты и маскирование прерываний.
- •Методы доступа к файлам: последовательный доступ, прямой доступ, индексно-последовательный доступ.
- •Директории fat, unix и ntfs.
- •Закрытие
- •Операции над процессами в unix (fork, exec, exit).
- •Вытесняющее и невытесняющее планирование.
- •Оценки среднего времени ожидания и среднего полного времени выполнения.
- •Гарантированное планирование.
- •Алгоритм «Кратчайшее задание - первое» sjf, прогноз длительности интервала cpu.
- •Приоритетное планирование.
- •Статические и динамические приоритеты.
- •1 И 2 примерно равны по исп памяти, но 1 быстрее
- •Защита памяти.
- •Защита памяти.
- •Сегментная организация памяти.
- •Преимущества сегментной организации памяти.
- •Логические адреса.
- •Вычисление физического адреса.
- •Оптимальный алгоритм.
- •Fifo алгоритм «Первым пришел - первым обслужен
Защита памяти.
При запуске процесса менеджер памяти выделяет для его выполнения область физической памяти, задавая множество страничных кадров доступных процессу. Общее число страничных кадров определяется исходя из общего объема памяти, необходимого для работы программы и степени загрузки основной памяти. Выделенные страничные кадры закрепляются за процессом, исключаясь из перечня свободных страничных кадров, и не могут быть одновременно выделены другому процессу. Таким образом, активные процессы занимают непересекающиеся области физической памяти.
Кроме того менеджер памяти создает таблицу страниц процесса, в которой для каждой виртуальной страницы указывается ее расположение либо в основной, либо внешней памяти. Для виртуальных страниц находящихся в основной памяти, устанавливается бит присутствия и указывается соответствующий номер страничного кадра, принадлежащей множеству номеров кадров, выделенных для работы процесса. Номер страничного кадра, принадлежащего другому процессу, не может появиться в таблице страниц при нормальной работе системы.
Поскольку трансляция виртуального адреса в физический происходит с использованием таблицы страниц, содержащей только номера страничных кадров, выделенных процессу, то обращение процесса к области памяти, выделенной для работы другому процессу оказывается технически невозможным.
Ситуация с неверным значением смещения внутри страницы, которая могла бы привести к выходу за пределы области памяти, выделеной процессу, может контролироваться на этапе трансляции программы, либо непосредственно во время выполнения при использовании динамически выделяемой памяти путем расширения виртуального адресного пространства
Сегментная организация памяти.
Сегментная организация памяти позволяет выполнить логическое объединение данных и реализовать хранение и защиту однородной информации. Сегментация отражает точку зрения программиста на логическую структуру процесса, представляя его в виде сегментов переменного размера и значения.
Соответствующее процессу логическое адресное пространство реализуется в виде набора сегментов, каждый из которых имеет некоторый идентификатор. Размер сегмента при необходимости изменяется динамически. Внутри сегмента адресное пространство образует линейную последовательность адресов от 0 до максимума. Логический адрес строится как упорядоченная пара v=(s,d), s номер сегмента и d смещение внутри сегмента.
Реализуя сегментную модель, менеджер памяти должен поддерживать таблицу сегментов каждого процесса, а также общую таблицу сегментов всех выполняющихся процессов. Элемент таблицы процессов содержит: базовый адрес начала сегмента в основной памяти или на диске, длину сегмента, позволяющую контролировать правильность адреса, и другие атрибуты (виды доступа, флаги присутствия, модификации и обращения).
Преимущества сегментной организации памяти.
• Каждая подпрограмма может занимать отдельный сегмент и адресоваться отдельно от начала. Обращение к процедуре в сегменте с номером n всегда имеет адрес (n,0).Сегментация облегчает совместное использование процедур и данных несколькими процессами. Совместно используемые данные и код могут располагаться в отдельный сегментах и достаточно включить эти сегменты в адресное пространство нескольких процессов.
• УПрощается организация защиты, поскольку каждый сегмент формирует логический объект, и у различных сегментов могут быть разные виды защиты. Например, сегмент кода может быть определен только как исполняемый, что запрещает его модификацию. Для сегмента данных можно разрешить режим доступа чтение/запись, но не исполнение.
• УПрощается перемещение сегмента в памяти. Если изменилось положение сегмента, то достаточно изменить базовый адрес в таблице сегментов.
• СЕгментная организация позволяет использовать адреса двух видов. При обращении к другому сегменту адрес строится в виде пары (s,d) – длинный адрес, который требует поиска в таблице сегментов базового адреса сегмента, к которому происходит обращение. Если адресация выполняется внутри текущего сегмента, базовый адрес которого может сохраняться в специальном регистре или ячейке памяти, то достаточно указать только смещение (d) – короткий адрес. Короткие адреса позволяют сократить размер текста программы и ускорить ее выполнение.
• ПРограммист может управлять сегментно организацией кода, поскольку обычно транслятор формирует отдельный сегмент для каждого файла, содержащего исходный текст программы.
