Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты ОС.doc
Скачиваний:
235
Добавлен:
01.05.2014
Размер:
635.9 Кб
Скачать
  1. Состав ПО Вычислительной Системы

В 1980 году программы стали впервые продавать отдельно от машин, программа превратилась в продукт – она работает без участия создателя

ПО ВС:

  • Системные программы – обрабатывающие (компиляторы и отладчики) и управляющие (управляют прохождением задач, располагаются в ядре)

  • Прикладные программы (работают без участия создателя) – библиотеки, системы программирования и программные системы (Photoshop)

  • Индивидуальные программы

  • Программы тех. Обслуживания (Fdisk)

  1. Определение понятия ОС

ОС – это система программ, предназначенная , предназначенная для обеспечения определенного уровня эффективности цифровой ВС за счет автоматизированного управления ее работой и предоставляемого пользователю набора услуг (широкое определение, ГОСТ)

Критерии эффективности: пакетная обработка, скорость диалога (время реакции)

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

  1. Структура и организация системы программирования

Текст проги ->текстовый редактор - >запись исходного модуля на диск

- >компилятор - >диагностическая распечатка и объектный модуль *.obj

Библиотека объектных модулей -> Компоновшик LINK- >map (карта модуля) и загрузочный модуль (*.exe, *.com).

Таблица внешних символов

Машинный код

Таблица внешних символов содержит таблицу внешних имен и таблицу внешних ссылок. Таблица внешних имен – имена и адреса всех функций, которые видны из других модулей (public). Таблица внешних ссылок содержит имя переменной и адрес поля команды (extern), где происходит обращение к этой переменной.

Пример: extern name

Mov AX, name

(записали адрес!)

Работа линковщика:

Obj1 Obj2


  • Записывает таблицу внешних символов obj1

  • Пересчитывает адрес для obj2 (не 0, а n+1)

  • Объединяет таблицу внешних имен obj1 и obj2

  • Анализирует таблицу внешних ссылок: каждое имя из таблицы внешних ссылок ищем в таблице внешних имен, если нашли, то там есть адрес имени (уже измененный линковщиком), и этот адрес сохраняем в то поле, адрес которого есть в таблице внешних ссылок.

0

Код obj1

Int name

n+1

Код obj2

Extern name

Mov ax,name

  • Отладчик берет загрузочный модуль. Существует 2 режима: release и debug. Debug работает на уровне имен – строит свои таблицы. Загрузочный модуль начинается с нулевого адреса, в нем могут быть такие переменные, которые неизвестны, пока его не загрузят в основную память

Пример: mov AX, seg DATA

mov DS, AX

Адрес сегмента данных неизвестен, пока не загрузится в основную память. Загрузчик должен изменить адреса. Строится таблица, где указываются адресно-зависимые константы.

ОП

Системная таблица PSP

Код

  1. Однозначные и пакетные мониторы

Учебник:

Чтобы повысить эффективность работы и не тратить лишнее время, была предложена концепция пакетной операционной системы. Главная идея – в использовании программы, известной под названием монитор. Пользователь не имеет непосредственного доступа к машине. Он передает свое задание на перфокартах или магнитной ленте оператору компа, который собирает разные задания в пакеты и помещает их в устройство ввода данных – так они передаются монитору. Каждая прога устроена так, что при завершении ее работы управление передается монитору, который сам загружает следующую прогу. Работа схемы с точки зрения монитора: М. управляет последовательностью событий. Для этого большая его часть в ОП – резидентный монитор (обработка прерываний, драйверы устройств, обработка последовательности заданий, интерпретатор языка управления). Остаток – утилиты и общие функции. М считывает с перфокарты или магнитной ленты по одному заданию. Текущее задание размещается в обл. памяти для прог пользователя, и ему передается управление. По завершении работы – возврат монитору. Работа схемы с точки зрения проца: После считывания задания, м дает процу команду перехода, проц начинает обрабатывать прогу пользователя и делает это до конца или до сбойной ситуации. Следующей командой обязательно будет команда монитора. В каждое задание включаются команды языка управления заданиями JCL – для управления монитором. Монитор или пакетная ОС – это обычная прога. Ее работа основана на способности проца выбирать команды из различных областей основной памяти с передачей и возвратом управления

Конспект:

Например, на карте:

//Имя Job имя

//step ( ) PRG = имя

//имя DD

//step PRG = link

//DD

//step PRG = GO

//DD имя загрузочного модуля

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

Пакетные мониторы:

Магнитная лента->ВМ->магнитная лента (IB SYS IBM 705)

Перфокарта->ВМ->магнитная лента (IBM 1401) – переписывание задания на магнитную ленту

  1. Мультипрограммные пакетные ОС

«Смесь» задач. Ввод периферийных процессоров (каналов) для ввода-вывода, специальная управляющая программа

∆t→∞ - квант времени

Уровень мультипрограммирования – количество одновременно выполняемых задач.

ОС 360 – структура управляющей программы:

  • Планировщик заданий (системный ввод, инициализация завершения, системный вывод)

  • Управление ОП – резидентно в ядре

  • Управление программами (LOAD, LINK, XCTL)

  • Управление задачами

  • Управление вводом-выводом

  • Управление устройствами

  • Управление данными

Планировщик заданий

Формирует пакет заданий. Системный ввод формирует очередь входных работ, это структура таблиц, куда помещается инфа о данных. Классы – описание заданий. Разные классы выполняются параллельно. В одном классе – последовательно.

Пакет заданий (на перфокарте) →системный ввод→очередь входных работ

Класс А→инициализация завершения А (выводит инфу о своей работе)

Класс B →инициализация завершения B (выводит инфу о своей работе)

Класс O→инициализация завершения O (выводит инфу о своей работе)

Инициализировали все ресурсы, которые нужны для 9 шага программы. После выполнения – возврат. Все функции – в ядре

//JOB имя1

class A...O

//JOB имя2

- - - - -

Очередь выходных работ→системный вывод А (36:26 лат. Букв и 10 цифр)

.

.

Очередь выходных работ 9→системный вывод 9

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

  • SMB(system)→данные – когда данные передает сиcтемный ввод SMB

  • DMB(data)→DATA – идут в сист. Вывод

Учебник – многозадачность на 3 прогах:

Совместная работа

Работа А

Работа В

Работа С

Ожидание

Работа А

Работа В

Работа С

Ожидание

Время →

  1. Диалоговые многопользовательские ОС

∆t≠∞

Каждой задаче выделяют ограниченное время. Если проц мощный, то не тормозит.

Диалоговые программы: СР40, СР67 (IBM), VM370

Состав управляющей программы:

  • Процессор команд

  • Управление задачами

  • Управление ОП

  • Управление устройствами

  • Управление вводом-выводом

  • Управление данными

Другие алгоритмы

  1. ОС реального времени

В них существует масштаб времени – главная особенность

←воздействие из ВМ на среду (ограничено время отклика системы)

В ВМ поступает инфа из среды, есть датчик. Среда – это любой объект, обладающий параметрами.

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

ВУС – фирма, разрабатывающая системы реального времени

Пример:

RLS – радиолокатор

Режимы работы:

  • Поик и обнаружение цели (широкий луч)

  • Захват цели

  • Сопровождение цели (нужны x, y, z)

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

Нарушение масштаба времени приводит к фатальным ошибкам. То же, но в экономических системах, ведет к снижению эффективности.

Свойства ОС

  • Множество внешних событий известно, и можно иметь полный набор программ, который обрабатывает эти события

  • Поток событий частично детерминирован во времени, то есть существуют объекты, требующие постоянного обслуживания с некоторым периодом времени

  • Входные и выходные данные имеют простую структуру, но специфические методы доступа (в данном случае нужно писать драйвера)

  • Ограниченный набор периферийных устройств

  • Все функциональные программы можно предварительно хорошо отладить, изучить их характеристики, а потом компоновать систему и алгоритм диспетчеризации

TSO - Time Sharing Options – система разделения времени

  1. Принцип модульности и его использование при построении ОС. Соглашение о связях между модулями

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

1– ВМ; 2 – ряд базовых функций; 3 – функции, использующие базовые. Все это - функциональная самостоятельность

Стандартная структура модуля – для удобства линковки.

Соглашение о связи: как записать параметры, стандартизуется обмен данными, как передать точку входа возврата (call, return). Стандартная связь – порядок передачи параметров в функции. Стандартизуется обмен данными по управлению (call, return). Сохранение контекста. То есть в итоге соглашение – это передача управления, данных и сохранение контекста

Пример:

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

Методы:

  1. А

Сохранение регистров

CALL В

Восстановление регистров

  1. А

CALL В

В

Сохранение регистров

Восстановление регистров

RET

Метод 2 лучше

  1. Принципы параметрической настраиваемости и функциональной избыточности ОС

Чтобы ОС работала везде– возможность учета ОС конфигурации машины. Стпли делать дистрибутив, куда закладывали все возможные варианты, а потом делали конкретную версию

Дистрибутив→генерация→версия

Устройство хранит информацию о себе

Функциональная избыточность:

Различная реализация одной и той же функции – для удобства, например, методы синхронизации

  1. Принцип функциональной избирательности

Возможность учета цели, для которой используется система.

OS 360: цель – сделать систему, которая работала бы в настоящем и будущем для всех целей и применений

Рассмотрим 2 примера: фирма DEC и IBM

DEC

Управляющие системы (полив любимого фикуса, пока хозяева в отпуске)

RSX11 M – можно использовать, как диалоговую

RSX11 S – маленькая, дешевая, исполняла функциональные задачи

-----

RSX11 D

RSX11 M – можно использовать как диалоговую за счет специальной организации памяти:

Системно управляемый участок – динамическая загрузка задач - swapping

IBM

PCP,MFT,MVT,SVS,VS1,VS2,MVS (пакетные системы)

Пользователи не хотели покупать новые системы, а хотели поддержки старх. Решили сделать систему виртуальных машин –VM370 - в качестве задач исполняла другие машины, только виртуальные

VM = ЦП+ОП+винты+терминал+устройства ввода-вывода – все это не железо, а программа/ Диски – определенные зарезервированные цилиндры. Память – специальные страницы памяти. Моделирование терминала – через обычный терминал, только с паролем. Ввод-вывод перфокарт – ввод-вывод в файл. Был режим управляющей программы. VM 370 – управление задачами и памятью

  1. Командный интерфейс ОС

Взаимодействие пользователя и ОС

  • Команды клавиатуры – сочетания клавиш (PrnScrn, Ctrl-Alt-Del)

  • Команды командного процессора – Пуск – Выполнить vasya.exe

  • Командный файл (.BAT) – этот файл читает командный процессор и начинает исполнять записанные внутри команды. Директивы – указания командному процессору

  • Командный интерфейс прикладных программ

  • Графический интерфейс GUI

  1. Интерфейс прикладных систем с ОС

Прерывания бывают асинхронные (аппаратные) и синхронные.

Асинхронные поступают в любой момент времени , независимо от текущей задачи. Управление передается резидентной программе (SV). Сохранение контекста задачи (обычно, обработчиком прерываний)

Super Visor-упр. прога

T1-задание Int

Int – команда синхронного прерывания. Оно происходит в задаче. На счетчик адреса команд загружается вектор прерывания. Переход в SV – обработка.

SVC – то же, что и int, Команда синхронного прерывания – прерывание по обращение к управляющей программе.

Программные прерывания (синхронные) возникают при ошибках деления на 0, потере мантиссы или порядка, некоторые можно замаскировать

Внешние прерывания

Прерывания от схем контроля (невозможно замаскировать)

Когда разрешены все команды, то можно выполнять все прерывания, кроме прерываний от схем контроля

Весь программный интерфейс основан на синхронном прерывании! Что нужно ему передать? Имя функции, которую нужно выполнить, параметры для этой функции

<параметры> mov BX, параметры

<имя функции> mov AH, функция

<команда синхронного прерывания> int 21h

обработчик прерываний вызывает функцию f и передает ей параметры из регистров

T1 - >int – >синхронное прерывание - >обработчик прерываний(SV) - >f(SV)

Используются макро-библиотеки:

GET MAIN <параметры>

Подпрограммы:

Открытые (inline функции) – происходит вставка текста

Закрытые - если есть вызов CALL A? То происходит передача управления, а потом возврат

Макро-генерация:

(Текст и макроопределения) – >препроцессор – >текст макроопределения – >компилятор

Формирование макро-библиотек

  1. Пользователь пишет все макроопределения в начале программы

  2. Пользователь может написать сам

  3. Есть стандартные библиотеки, которые поставляются вместе с ассемблером

13. Преобразование адресов в вс

Имя →α программный адрес→β исполнительный адрес→γ значение, хранящееся по адресу

α это система программирования

- абсолютный адрес – действительное расположение ячейки основной памяти

- относительный адрес – адрес определяется относительно известной точки (начала программы)

Существует статическое и динамическое связывание – исп. Адрес вычисляется в момент обработки программного модуля и делает это процессор

Базирование адресов(учебник)

Когда процесс переходит в состояние выполнения, в базовый регистр процессора загружается начальный адрес процесса в основной памяти. Кроме этого используется граничный регистр (bounds), В котором содержится адрес последней ячейки памяти программы. Эти значения заносятся в регистры при загрузке программы в основную память. При выполнении процесса относительные адреса обрабатываются в 2 этапа. Сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса. Затем полученный абсолютный адрес сравнивается со значением в граничном регистре. Если полученный абсолютный адрес принадлежит данному процессу, команда может быть выполнена, иначе – прерывание. Таким образом можно выгружать и загружать проги в память в процессе их выполнения, образ каждого процесса ограничен адресами и защищен от нежелательного доступа.

Страничная организация (учебник):

ОП разделена на одинаковые небольшие блоки. Блоки процесса (страницы) могут быть связаны со свободными блоками памяти – кадрами. Кадр может содержать одну страницу. Для каждого процесса ОС поддерживает таблицу страниц – она указывает расположение кадров каждой страницы процесса. Логический адрес состоит из номера страницы и смещения внутри нее. Проц должен знать, где находится таблица страниц текущего процесса – тогда он может превратить логический адрес в физический (номер кадра, смещение)

P

L – смещение

Сегментная

Сегментно-страничная

S

P

L

Адрес из 3 частей - Сегмент, страница, смещение. Используя S, Попадаем в таблицу сегментов, находим там страницу, переходим в таблицу страниц, находим там конкретный блок, складываем со смещением и получаем исполнительный адрес

Логическое адресное пространство – это совокупность программных адресов, которые принимают программные данные задачи

Физическое адресное пространство – это совокупность абсолютных адресов, в которых располагается задача в памяти:

0

логическое адресное пространство (односегментное)

Связка

ОП – физ. память

А

14. Построение загрузочного модуля простой структуры

Все объектные модули компонуются вместе – непрерывное логическое адресное пространство, разрешение внешних связей, грузится в физическую память. Может не влезать в ОП

0

(билиотеки и модули→компоновщик→загружаемый модуль→загрузчик→память)

15. Загрузочный модуль оверлейной структуры (с перекрытием)

Нужно разделить логическое пространство на сегменты, и они независимо грузятся в ОП. Сначала – корневой сегмент.

Схема иерархии программы (какие функции из каких вызываются). А – все время в ОП:

ABD

ABE

AC

ACF

Механизм перекрытия не во всех ОС – в OS360 есть, а в Юниксе нет. Нужно спланировать структуру оверлейного модуля – в какой сегмент какой кусок писать

Соседние файлы в предмете Операционные системы