Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы 1-52.doc
Скачиваний:
6
Добавлен:
07.08.2019
Размер:
1.68 Mб
Скачать

1 Типы и поколения ОС. Эволюция ОС и ее связь с развитием аппаратных ресурсов ЭВС.

Характеристики

поколения

I

II

III

IV

Период

1945-1955

1955-1964

1964-1980

1980-...

Основной элемент

Эл. лампа

Транзистор

ИС

БИС, СБИС

Количество ЭВМ в мире (шт)

Сотни

Тысячи

Десятки тысяч

Миллионы

Примеры

БЭСМ-1,2, Стрела, IBM 701

Минск-2, Урал-14, Мир, Наири

IBM 360

Иллиак, Эльбрус

Быстродействие (оп/сек)

10-20 тыс.

до 1 млн

100 тыс – 1 млн

2*10^7

Носитель информации

Перфокарта

Магнитная лента

Диск

Гибкий диск

Периоды.1.Первый период (1945-1955гг) Ламповые машины.Операционных систем нет

Особенности:Программирование на машинном языке. Организация вычислительного процесса вручную каждым программистом с пульта управления.Загрузка программы с помощью панели переключателей, либо перфокар. ВС выполняет одновременно только одну операцию (ввод-вывод, либо собственно вычисления).Возникают первые компиляторы Fortran, Assembler для IBM-701 (Строго последовательная обработка данных !)

2. Второй период (1955г. – начало 60-х гг.)Транзисторные машины.(Лампы заменяются транзисторами)

Особенности: Повышение надежности. Снижение потребления электроэнергии . Уменьшение размеров. Снижение стоимости(Появляются первые системы пакетной обработки !)

3. Третий период (начало 60-х – 1980г.) Компьютеры на основе интегральных микросхем.

Особенности: ВС становится более надежной и дешевой. Повышается производительность процессоров. Растёт сложность и количество решаемых задач.( Мультипрограммирование - пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу)

4. Четвертый период (с 1980г. по настоящее время)Персональные компьютеры.Классические сетевые и распределенные системы

Особенности: Резкое возрастание интеграции и снижение стоимости микросхем. Массовость, общедоступность. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их ОС (например пропала необходимость защиты файлов памяти, планирования заданий) (В середине 80-х развитие сетей компьютеров => развитие сетевых и распределенных ОС)

5. Пятый период. Суперкомпьютеры. Параллельные вычисления и системы искусственного интеллекта

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

2 Понятие об операционной системе, ее функциях и составе.

ОС(операционная система)- о виртуальная машина, с которой работает пользователь (интерфейс между пользователем и компьютером). Это менеджер ресурсов. Это постоянно функционирующее ядро. Это защитник пользователей и программ.

Типы ос

1. Однозадачные (MS-DOS)

2. Многозадачные (Unix, OS/2, Windows)

Пакетные системы - запуск одной программы из пакета за другой

Системы разделения времени (time-sharing) – процессор переключается между задачами не только на время операций ввода – вывода но и по прошествии определенного времени, что позволяет пользователю интерактивно взаимодействовать с программой

Системы реального временидля управления различными технологическими процессами – система должна обрабатывать данные быстрее, чем они могут поступать, причем от разных источников => влияние на архитектуру, например может не быть виртуальной памяти, так как она дает непредсказуемые задержки в выполнении программ

3. Многопользовательские (Windows NT, Unix) –механизмы защиты персональных данных каждого пользователя

4. Однопользовательские (MS-DOS, Windows 3.x)

Основная задача ОС- управление процессами!

Состав ОС: 1.Ядро 2.Драйверы 3. Файловая система 4.Командный процессор(command.com)

Функции ОС:1.Управление процессами. 2.Интерфейс 3.Поддержка устройств(Device Support) 4.Безопасность 5.Поддержка файловой системы

3 Концепция процесса. Состояния процесса.

Процесс – программа во время исполнения или объект, которому выделяются ресурсы ВС (процессор, память и..)

Процесс – динамический объект

Процесс характеризует: 1.Набор исполняемых команд 2.Выделенная для исполнения память (адресное пространство) 3.Адрес и состояние стеков 4.Используемые файлы 5.Устройства ввода-вывода 6.Значения регистров 7.Программный счетчик 8.Значение переменных

Состояния процесса: 1.Порождение – создаются условия для первого запуска 2.Готовность – у процесса есть все необходимые ресурсы, кроме ЦП 3.Активное – выделение процессора 4.Ожидание – (блокировка) нужный ресурс занят, процесс ждет его освобождения 5.Завершение – штатное или аварийное окончание работы программы

4 Описание процесса в ОС. Операции над процессами.

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

Текущее состояние процесса описывается в системе с помощью PCB (Process Control Block)

PCB –хранит информацию:

      • Уникальный идентификатор процесса, пользователь

      • Состояние, в котором находится процесс

      • Текущий приоритет

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

      • Содержимое регистров процесса

      • Адресное пространство (и стеки)

      • Связанные устройства ввода-вывода (файлы)

      • Область хранения регистров (для рестарта)

Операции над процессами: 1.Создание(образование процесса) 1)Присваивание имени процесса, включение этого имени в список имён известных системе 2)Опр-ние начального приоритета процесса 3) Формирование PCB 4)выделение процессу начальных ресурсов.

2.Уничтожение процесса

3.Возобновление процесса - Подготовка процесса к запуску с той точки, на котором он был остановлен

4.Изменение приоритета

5.Блокирование

6.Разблокировка

7.Запуск

5 Граф состояний процесса. Управление переходами.

6 Процессы и потоки.

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

С одной стороны, процесс можно рассматривать как способ объединения родственных ресурсов в одну группу.

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

Любой поток состоит из двух компонентов:

1)объекта ядра, через который операционная система управляет потоком. Там же хранится статистическая информация о потоке(дополнительные потоки создаются также ядром); 2)стека потока, который содержит параметры всех функций и локальные переменные, необходимые потоку для выполнения кода.

  • Поток (thread) определяет последовательность исполнения кода в процессе.

  • Процесс ничего не исполняет, он просто служит контейнером потоков.

  • Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах.

  • Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах.

7 Архитектуры ОС. Функции ядра.

Ядро часть ОС,основной функцией которого является работа с процессами.

Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности

Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)

Основные функции ядра ОС

  • Обработка прерываний

  • Создание и уничтожение процессов

  • Диспетчирование (выбор текущего процесса из очереди)

  • Синхронизация процессов

  • Организация взаимодействия между процессами

  • Поддержка PCB (Process Control Block)

  • Поддержка операций I/O

  • Поддержка распределения памяти

  • Поддержка файловой системы

  • Вызов процедур и возврат из них

  • Остальные переходы на графе состояний

8 Многопоточное программирование.

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

  • Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).

  • Многопоточность — это специализированная форма многозадачности.

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

Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.

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

  • Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.

  • Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.

  • В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).

  • Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.

9 Проблема тупиков в ОС. Необх условия возникновения тупиков

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

Задачи ОС: Предотвращение; Обход; Обнаружение.

Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.

Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время. Например, из-за приоритета.

Условия возникновения тупиков (необходимые):

  1. Монопольное управление выделенными ресурсами (взаимоисключение);

  2. Удержание ресурсов на время ожидания следующего;

  3. Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);

  4. Существование кольцевой цепи запросов.

10 Предотвращение тупиков. Принципы Хавендера.

Хавендер показал, что для предотвращения тупика необходимо нарушить одно из необходимых условий его возникновения.

Принципы Хавендера:

Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.

Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;

Плюс: простота реализации.

Минусы:

  • Как определить набор всех необходимых процессу ресурсов?

  • Простой свободных ресурсов.

  • Накапливание ресурсов приводит к высоким издержкам.

Если процессу не выделяется очередной ресурс, он должен отдать уже выделенные.

Нарушается условие возникновения тупиков- Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);

Минусы:

  • Как сохранить промежуточные результаты работы процесса?

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

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

Нарушается условие возникновения тупиков - Существование кольцевой цепи запросов.

Плюс: кажущаяся простота реализации.

Минусы:

  • Сложно вводить в систему новые ресурсы (ОС).

  • Кто знает «правильную» последовательность ресурсов?

  • Трансляторы тоже должны знать номера ресурсов, а это сложно и снижает мобильность систем.

Условие монопольного управления Хавендер не нарушает

11 Обнаружение тупиков

Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.

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

Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.

Сложности решения:

  • Неочевидность тупика.

  • Трудно остановить процесс в произвольной точке кода.

  • Большие накладные расходы на реализацию сохранения результатов.

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

Виртуализация ресурсов – средство борьбы с тупиками

Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».

Особенности решения:

  • Алгоритмически простое решение.

  • Формально, не боится большого числа процессов.

  • Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.

12 Обход тупиков. Алгоритм банкира.

Алгоритм банкира – ресурсы процессу можно выдавать только в том случае, если состояние системы останется надежным.

Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.

Введем следующие обозначения:

M(i) – максимальная потребность i-го процесса в ресурсе;

L(i) – текущая величина ресурса, выделенного i-му процессу;

С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);

Т – суммарный ресурс, имеющийся в системе;

а – остаточный ресурс, а=Т-L(i);

Пусть в некоторый момент времени в системе существуют три процесса. T=12

Р ешение примера

L(i)

M(i)

C(i)

Process 1

1

4

3

Process 2

4

6

2

Process 3

5

8

3

a

2


13 Прерывания ОС и BIOS. Обработка прерываний.

Прерывание - это событие, при котором меняется последовательность команд, выполняемых процессором.

Что происходит после прерывания?

    • Управление передается ОС

    • ОС запоминает состояние прерванного процесса (например в PCB)

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

Типы прерываний.

SVC прерывание (super visor call instruction) - программа вызывает супервизор – ОС, то есть требует системную услугу.

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