- •Понятие операционной системы. Основные функции операционных сиистем. Ос как виртуальная машина, как система управления ресурсами
- •Архитектура операционной системы
- •Привилегированный режим
- •Многослойная структура ос
- •Средства аппаратной поддержки ос
- •Машинно–зависимые компоненты ос
- •Базовые механизмы ядра
- •Менеджеры ресурсов
- •Интерфейс системных вызовов
- •Микроядерные и макроядерные операционные системы.
- •Функциональтные компоненты операционной системы
- •Назначение прерываний. Виды прерываний
- •Управление памятью
- •Типы адресов
- •Алгоритмы распределения памяти.
- •Файловая система
- •Физические и логические дефекты дисков. Программа проверки поверхности дисков.
- •Диагностика диска. Программа дефрагментации Диагностика диска
- •Системное программное обеспечение
- •Архивация файлов. Winrar, winzip
- •Разновыидности архиваторов
Типы адресов
Для идентификации переменных и команд на разных этапах жизненного цикла программы используются разные имена:
Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.
Виртуальные адреса вырабатываются при переводе программы на машинный язык и получении исполнимого модуля.
Физические адреса соответствуют номерам ячеек оперативной памяти, где будут расположены переменные и команды. Так как во время трансляции, в общем случае, не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса.
Переход от виртуальных адресов к физическим может осуществляться двумя способами.
В первом случае замену виртуальных адресов на физические делает специальная системная программа «перемещающий загрузчик» при загрузке задачи в ОП. Второй способ заключается в том, что программа загружается в ОП неизменном виде в виртуальных адресах. Во время выполнения программы при каждом обращении к ОП выполняется преобразование виртуального адреса в физический. Второй способ является более гибким, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. Вместе с тем использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки, а во втором случае – каждый раз при обращении по данному адресу.
|
Символьные адреса |
Идентификация переменных в программе на алгоритмическом языке |
|
|
транслятор |
|
Виртуальные адреса |
Условные адреса, вырабатываемые транслятором |
|
|
1) перемещающий загрузчик – статическое преобразование 2) динамическое преобразование аппаратными средствами |
|
Физические адреса |
Номера ячеек физической памяти |
Виртуальное адресное пространство
Совокупность виртуальных адресов процесса называется виртуальным адресным пространством.
Виртуальные
Виртуальное адресное пространство
процесса 1
ВАП процесса 2
Подпрограмма F1
ВАП процесса 3
Переменная а2
Совпадение виртуальных адресов переменных и команд различных процессов не приводит к конфликтам, так как в том случае, когда эти переменные одновременно присутствуют в памяти, операционная система отображает их на разные физические адреса.
Необходимо различать максимально возможное виртуальное адресное пространство процесса n, назначенное (выделенное) процессу виртуальное адресное пространство. В первом случае речь идет о максимальном размере виртуального адресного пространства, определенного архитектурой компьютера, на котором работает ОС, и, в частности, разрядностью его схем адресации (32 битная, 64 битная и т.п.). Например, на компьютерах с 32-х разрядными процессорами Intel Pentium ОС может предоставлять каждому процессу виртуально-адресное пространство до 4 Гбайт (232). Однако это значение представляет собой только потенциально возможный размер виртуального адресного пространства. Процесс, использующий только часть доступного ему виртуально-адресного пространства.
Назначение виртуально-адресного пространства представляет собой набор виртуальных адресов, действительно нужных процессу для работы. Эти адреса назначаются программами во время трансляции. Затем при создании процесса ОС фиксирует назначение виртуально-адресных пространств в своих системных таблицах. В ходе своего выполнения процесс может увеличивать размер первоначального назначенного ему виртуально-адресного пространства, запросив у ОС создания дополнительных сегментов или увеличение размера существующих.
Максимальный размер виртуально-адресного пространства ограничивается только разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющейся в компьютере.
Операционная система для хранения данных виртуально-адресного пространства процесса, не помещающихся в оперативную память, использует внешнюю память, которая в современных компьютерах представлена жесткими дисками.
Вп2
ОП
Вп1
Рис.2 Соотношение объемов ВАПр-ва и
физической памяти : ВАПр-ва превосходят
объёмы физической памяти
ДИСКОВАЯ ПАМЯТЬ
Однако соотношение объемов виртуальной и физической памяти может быть и обратным.
Содержимое назначенного процессу виртуального адресного пространства, т.е. коды команд, исходные и промежуточные данные, а также результаты вычислений, представляют собой образ процесса.
Обычно виртуально-адресное пространство процесса делится на две непрерывные части: системную и пользовательскую. В некоторых ОС ( например, Windows NT ) эти части имеют одинаковый размер по 2 Гбайт, но деление может быть и другим. Часть виртуально-адресного пространства каждого процесса, отведенная под сегменты ОС, является идентичной для всех процессов. Поэтому при смене активного процесса заменяется только вторая часть виртуального адресного пространства, содержащая его индивидуальные сегменты (коды и данные прикладной программы).
ВП3
ВПn
Индивидуальные части виртуальных
адресных пространств
ВП2
ВП1
Общая часть виртуальных адресных
пространств
Описанное выше назначение двух частей виртуально-адресного пространства для сегментов ОС и для сегментов прикладной программы является типичным, но не абсолютным.