Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Bilety_1-52_Os (2)

.pdf
Скачиваний:
1
Добавлен:
27.05.2024
Размер:
2 Mб
Скачать

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

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

2.Второй период (1955г. – начало 60-х гг.)Транзисторные машины.(Лампы заменяются транзисторами) Особенности: Повышение надежности. Снижение потребления электроэнергии . Уменьшение размеров. Снижение стоимости(Появляются первые системы пакетной обработки !)

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

4.Четвертый период (с 1980г. по настоящее время)Персональные компьютеры.Классические сетевые и распределенные системы Особенности: Резкое возрастание интеграции и снижение стоимости микросхем. Массовость,

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

(В середине 80-х развитие сетей компьютеров => развитие сетевых и распределенных ОС)

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

 

 

 

 

 

про

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

поколения

 

 

 

 

 

 

цес

 

 

 

 

 

 

I

II

III

IV

сор

 

 

 

 

 

 

 

ов.

Период

1945-1955

1955-1964

1964-1980

1980-...

 

 

 

 

 

 

 

 

 

Основной

Эл. лампа

Транзистор

ИС

БИС, СБИС

 

элемент

 

 

 

 

 

 

 

 

 

 

 

 

Количество

 

 

 

 

 

ЭВМ в мире

Сотни

Тысячи

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

Миллионы

 

(шт)

 

 

 

 

 

 

 

 

 

 

 

Примеры

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

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

IBM 360

Иллиак,

 

 

IBM 701

Мир, Наири

Эльбрус

 

 

 

 

 

 

 

 

 

 

Быстродействие

10-20 тыс.

до 1 млн

100 тыс – 1 млн

2*10^7

 

(оп/сек)

 

 

 

 

 

 

 

 

 

 

 

 

Носитель

Перфокарта

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

Диск

Гибкий диск

 

информации

 

 

 

 

 

 

 

 

 

 

 

 

№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

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

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

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

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

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

№8 Управление потоками. Многопоточное программирование.

Управление потоками

Тредами (потоки, нити) называются параллельно выполняющиеся потоки управления в рамках одного процесса.

Потоки одного процесса разделяют его адресное пространство.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например, из-за приоритета.

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

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

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

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

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

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

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

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

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

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

Минусы:

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

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

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

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

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

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

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

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

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

Минусы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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