Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиС исправление Альбина.docx
Скачиваний:
9
Добавлен:
25.11.2019
Размер:
2.19 Mб
Скачать
  1. Мультипрограммирование в системах пакетной обработки

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

  3. В этом режиме невозможно гарантировать выполнение задачи в течении определенного времени. Мультипрограммирование организованно за счет параллельной работы канала или контроллера и процессора.

  4. Переключение процессора с одной задачи на другую - инициатива самой задачи. В подобных системах пользователь отстраняется от вычислительного процесса. Примерами ОС пакетной обработки являются ОС для мэйнфреймов IBM 360/370/390.

  5. Мультипрограммирование в системах разделения времени

  6. Основной критерий систем разделения времени - повышение удобств и эффективности работы пользователей. Такие ОС позволяют организовать интерактивную работу пользователей с несколькими приложениями.

  7. Мультипрограммирование организуется путем выделения каждой задаче некоторого, достаточно небольшого отрезка времени - кванта. Задача принудительно приостанавливаются по завершению кванта и в соответствии с заложенным алгоритмом, выбирается на выполнение новая задача.

  8. Системы разделения времени имеют меньшую пропускную способность по сравнению с системами пакетной обработки при прочих равных условиях. Это обусловлено потерей времени на переключение процессора с задачи на задачу.

  9. ОС MS Windows 98/NT/2000/XP, Unix являются примерами систем разделения времени.

  10. Ос реального времени используются при управлении техническими объектами или технологическими процессами

  11. Особенность: наличие предельного времени в течении которого должна быть выполнена та или иная задача (реактивность системы).

  12. Мультипрограммная смесь (т.е. набор задач, одновременно выполняемых) представляет собой: фиксированный набор заранее разработанных программ, а выбор на выполнение - по прерываниям (или по расписанию).

  13. Для систем реального времени важна скорость обработки прерываний. Задача максимальной загрузки устройств - не актуальна.

  14. Мультипроцессорная обработка

  15. Мультипроцессорная обработка - это способ организации вычислительного процесса в системах с несколькими процессорами. В отличие от организации мультипрограммирования на одном процессоре, мультипроцессорная обработка предполагает действительно одновременное выполнение нескольких процессов. Это приводит к усложнению всех алгоритмов ОС.

  16. Симметричная архитектура предполагает однородность всех процессоров и единообразное их включение в общую схему. Традиционно все процессоры при этом разделяют одну память и как следствие находятся в одном корпусе.

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

  18. Для симметричной архитектуры вычислительный процесс может строится симметричным образом (все процессоры равноправны) или асимметричным (процессоры различаются функционально).

  19. Для асимметричной архитектуры возможен только асимметричный способ организации.

  20. Мультипрограммирование на основе прерываний

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

  22. Различают следующие типы прерываний:

  23. · внешние (аппаратные);

  24. · внутренние (исключения -exception);

  25. · программные.

  26. Внешние прерывания происходят асинхронно, т.е. происходят в случайный момент времени в процессе выполнения программы (например, от внешних устройств), внутренние – синхронно, т.е. возникают по конкретной причине и можно предугадать возникновение такого прерывания (например, при делении на ноль).

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

  28. Прерываниям равного значения приписываются уровни приоритетов (уровни - IRQ).

  29. Каждое из прерываний обслуживается обработчиком прерываний (Interrupt Service Routine).

  30. Внешние – обрабатываются драйверами, внутренние – модулями ядра, программные – процедурами из API.

  1. Управление памятью. Методы без использования внешней памяти. Методы с использованием внешней памяти (свопинг и виртуальная память). Алгоритмы замещения страниц. Распределение памяти. Особенности реализации в UNIX и в Windows.

    Управление памятью

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

Типы адресов

Для идентификации переменных и команд используются символьные имена (метки), виртуальные адреса и физические адреса (рисунок 2.7).

Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

Рис. 2.7. Типы адресов

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

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

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