1. Память. Типы адресов. Виды распределения памяти.
Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самые старшие адреса. Функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти, выделение памяти процессам и освобождение памяти при завершении процессов, вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Типы адресов. Для идентификации переменных и команд используются символьные имена (метки), виртуальные адреса и физические адреса.
Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере. Виртуальные адреса вырабатывает транслятор, переводящий программу на машинный язык. Так как во время трансляции в общем случае не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что программа будет размещена, начиная с нулевого адреса. Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться двумя способами. В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.
Второй способ заключается в том, что программа загружается в память в неизмененном виде в виртуальных адресах, при этом операционная система фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Второй способ является более гибким, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. Вместе с тем использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки, а во втором случае - каждый раз при обращении по данному адресу.
В некоторых случаях (обычно в специализированных системах), когда заранее точно известно, в какой области оперативной памяти будет выполняться программа, транслятор выдает исполняемый код сразу в физических адресах.
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого.
Методы распределения памяти без использования дискового пространства.
Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь, либо в очередь к некоторому разделу. Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток - фрагментация памяти. Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область. В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется "сжатием".
Методы распределения памяти с использованием дискового пространства
Понятие виртуальной памяти
виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи:
размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;
перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память;
преобразует виртуальные адреса в физические.
Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти является прозрачным по отношению к пользователю.
Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг.
Страничное распределение
виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной системы размера, называемые виртуальными страницами. В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью.
Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками).
Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.
При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные - на диск.
Сегментное распределение
При страничной организации виртуальное адресное пространство процесса делится механически на равные части. Это не позволяет дифференцировать способы доступа к разным частям программы (сегментам), а это свойство часто бывает очень полезным. Например, можно запретить обращаться с операциями записи и чтения в кодовый сегмент программы, а для сегмента данных разрешить только чтение. Кроме того, разбиение программы на "осмысленные" части делает принципиально возможным разделение одного сегмента несколькими процессами. Например, если два процесса используют одну и ту же математическую подпрограмму, то в оперативную память может быть загружена только одна копия этой подпрограммы.
Рассмотрим, каким образом сегментное распределение памяти реализует эти возможности. Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором.
При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Странично-сегментное распределение
Как видно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс.
Свопинг
Разновидностью виртуальной памяти является свопинг. Существует метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс.
При свопинге, в отличие от рассмотренных ранее методов реализации виртуальной памяти, процесс перемещается между памятью и диском целиком, то есть в течение некоторого времени процесс может полностью отсутствовать в оперативной памяти. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.
Кэш-память
Память вычислительной машины представляет собой иерархию запоминающих устройств (внутренние регистры процессора, различные типы сверхоперативной и оперативной памяти, диски, ленты), отличающихся средним временем доступа и стоимостью хранения данных в расчете на один бит. Пользователю хотелось бы иметь и недорогую и быструю память. Кэш-память представляет некоторое компромиссное решение этой проблемы. Кэш-память - это способ организации совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который позволяет уменьшить среднее время доступа к данным за счет динамического копирования в "быстрое" ЗУ наиболее часто используемой информации из "медленного" ЗУ.
- Билет 1.
- 1. Инкапсуляция, наследование, полиморфизм. Классы, объекты и отношения между ними. Диаграммы логического уровня.
- 2. Симметричные блочные криптоалгоритмы. Сеть Фейстеля.
- Билет 2
- 1. Объявление и реализация классов на языке Паскаль.
- 2. Интерфейс. Пользовательский интерфейс. Классификация пользовательских интерфейсов.
- Билет 3.
- 1. Графы. Основные определения. Машинное представление графов в последовательной памяти и связанной памяти.
- 2. Общая схема симметричной криптосистемы. Алгоритм построения цепочек.
- 3. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.
- Билет 4.
- 1. Нормальный алгоритм Маркова.
- 2. Парадигмы интерфейсов.
- Билет 5.
- 1. Понятие процесса. Состояние процессов. Алгоритмы планирования процессов.
- 2. Общие сведения об ассиметричных криптоалгоритмах. Понятие электронной цифровой подписи.
- 3. Вычислить факториал числа 8.
- Билет 6.
- 1. Файловая системаFat.
- 2. Основные компоненты графических пользовательских интерфейсов.
- 3. Если элементы массивыD[1…5] равны соответственно 4, 1, 5, 3, 2, то значение выражениеD[d[3]]-d[d[5]] равно?
- Билет 7
- 1. Структуры распределенных вычислительных систем(топология, физические и логические элементы сетей эвм)
- 2. Встроенные средства контроля доступа в современных ос.
- 3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- Билет 8
- 1.Трансляторы, компиляторы и интерпретаторы: определение, общая схема работы. Варианты взаимодействия блоков транслятора.
- 2. Эргономические требования, предъявляемые к дизайну пользовательских интерфейсов.
- 3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- Билет 9
- 1. Сети Петри. Моделирование процессов на основе сетей Петри.
- 2. Нормализация таблиц при проектировании баз данных. Нормальные формы (1нф, 2нф, 3нф, нфбк).
- 3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- Билет 10.
- 1. Понятие алгоритма. Интуитивное понятие алгоритма.
- 2. Функции субд.
- Билет 11.
- 1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- 2. Принципы и виды отладки программного средства. Автономная отладка программного средства. Комплексная отладка программного средства.
- 3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов, не превышающих заданногоm, далее вывести на экран.
- Билет 12.
- 1. Сети Петри. Моделирование процессов на основе сетей Петри.
- 2. Модели объектов проектирования .
- Билет 13.
- 1. Концепции информационного моделирования. Создание моделей на языкеUml.
- 2. Модели систем управления данными: сетевая, иерархическая, реляционная модель.
- Билет 14.
- 1. Принципы создания компонент в визуальных средах разработки.
- 2. Жизненный цикл программного обеспечения. Модели жизненного цикла по: каскадная, спиральная. Стадии, фазы работы жизненного цикла.
- Билет 15.
- 1. Деревья. Основные определения. Логическое представление и изображение деревьев. Бинарные деревья. Машинное представление деревьев в памяти эвм. Алгоритмы прохождения деревьев.
- 2. Реляционная модель данных. Базовые понятия. Отношения и свойства отношений. Составляющие реляционной модели данных.
- Билет 16.
- 1. Предваренная, скулемовская и клазуальная формы. Логическое следование. Унификация. Алгоритм унификации. Исчисление метода резолюций.
- 2. Структура внешнего описания пс. Качество по. Критерии и примитивы качества.
- Билет 17.
- 1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- 2. Стадии и этапы разработки базы данных.
- 3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов не прерывающих заданногоm, далее вывести на экран.
- Билет 18.
- 1. Понятие о способах коммутации в распределенных вычислительных системах(коммутации каналов, коммутация пакетов).
- 2. Процессы управления разработкой пс. Структура управления разработки пс. Планирование составление расписания по разработке пс. Аттестация пс.
- 3. НаписатьHtmLкод для отображения в браузере таблицы:
- Билет 19.
- 1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- 2. Трехуровневая архитектура схем баз данных в субд.
- 3. НаписатьHtmLкод для отображения в браузере таблицы:
- Билет 20.
- 1. Формальные языки и грамматики. Классификация грамматик по Хомскому.
- 2. Методы разработки структуры пс. Восходящая разработка пс. Нисходящая разработка. Конструктивный подход. Архитектурный подход разработки пс.
- Билет 21.
- 1. Конечные автоматы, автомат со стековой памятью (магазин).
- 2. Организация шин.
- Билет 22.
- 1. Сети Петри. Моделирование процессов на основе сетей Петри.
- 2. Организация памяти эвм.
- Билет 23.
- 1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- 2. Инструментальные среды разработки и сопровождения программных средств и принципы их классификации. Основные классы инструментальных сред разработки и сопровождения программных средств.
- Билет 24.
- 1. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
- 2. Типы структур вычислительных машин и систем, перспективы и развития.
- Билет 25
- 1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- 2. Основные понятия, определения и назначение сапр
- 3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- Билет 26.
- 1. Сравнительный анализ алгоритмов поиска: линейный, двоичный.
- 2. Факторы, определяющие развитие архитектуры вычислительных систем.
- 3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- Билет 27.
- 1. Рекурсивные функции. Лямбда- исчисление Черча.
- 2. Обеспечивающие системы сапр.
- Билет 28.
- 1. Память. Типы адресов. Виды распределения памяти.
- 2. Архитектура системы команд.
- 3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- Билет 29.
- 1. Аппаратура передачи данных (модемы).
- 2. Проектные процедуры в сапр.
- Билет 30.
- 1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- 2. Стековая архитектура вычислительных машин.
- Билет 31
- 1. Синтаксический разбор. Классификация методов синтаксического разбора.
- 2. Интеграция систем автоматизации проектирования и управления(cad–cam–capp– системы).
- Билет 32
- 1. Понятие алгоритма. Интуитивное понятие алгоритма.
- 2. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств. Особенности объектного подхода к разработке внешнего описания программного средства.
- 3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- Билет 33.
- 1. Объявление и реализация классов на языке Паскаль.
- 2. Архитектура клиент-сервер. Распределенные базы данных.
- Билет 34.
- 1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- 2. Вычислительные методы решения задач на эвм. Приближения функций. Интерполяция и Метод наименьших квадратов.
- Билет 35.
- 1. Компоненты и интерфейсы. Диаграммы физического уровня.
- 2. Правовые вопросы организации Интернет-сайта.
- Билет 36.
- 1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- 2. Моделирование как процесс познания. Математическая модель, понятие вычислительного эксперимента и его структура.
- 3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- Билет 37
- 1. Улучшенные методы сортировки. Сортировка Шелла, Хоара, улучшенная сортировка выбором. Сортировка с помощью дерева.
- 2. Правовые вопросы, возникающие при использовании электронной почты.
- 3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- Билет 38.
- 1. Классификация ос. Требования, предъявляемые к ос.
- 2. Понятие системы. Математическое определение системы. Классификация систем.
- Билет 39.
- 1. Понятия файла. Структура файла. Реализация файлов
- 2. Виды объектов авторского права. Виды авторских прав. Программы для эвм и базы данных, как объектов авторского права.
- 3. Подсчитать сколько раз в массиве встречается заданный элементN. Вывести количество данных вхождений.
- Билет 40.
- 1. Характеристики локальных вычислительных сетей типаEthernet.
- 2. Нормальный алгоритм Маркова.
- 3. Написать кодcssфайла в котором при помощи псевдоклассов описывается поведение ссылок отличное от стандартного.
- Билет 41.
- 1. Взаимодействие узлов с использованием стека протоколовTcp/ip.
- 2. Объекты патентного права.
- 3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- Билет 42.
- 1. Машина Тьюринга.
- 2. Уровни моделирования. Общая характеристика и особенности. Моделирование на микроуровне. Обобщенная модель и моделирование тепловых систем (краевая задача для уравнения теплопроводности)
- 2) Уравнение теплопроводности
- Билет 43.
- 1. Архитектура системы команд.
- 2. Уровни моделирования. Моделирование на макроуровне. Типичная общая модель и моделирование электрических систем.
- Билет 44.
- 1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- 2. Принципы построения современных эвм.
- 3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- Билет 45.
- 1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- 2. Численное решение задачи Коши для обыкновенных дифференциальных уравнений. Метод Эйлера. Одношаговые и многошаговые методы.
- 3. Указать к какому классу относится каждый из перечисленныхIPадресов: