Билет № 50 функции операционной системы по управлению памятью в мультипрограммных системах

2. Синхронизация процессов и потоков. Методы взаимоисключений. Блокирующие переменные. Системные функции для работы с критическими секциями.

Вопрос 1.

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

Назначение

1. Обеспечение удобного интерфейса [приложения, пользователь] - компьютер за счет предоставляемых сервисов:

a. Инструменты для разработки программ

b. Автоматизация исполнения программ

c. Единообразный интерфейс доступа к устройствам ввода-вывода

d. Контролируемый доступ к файлам

e. Управление доступом к совместно используемой ЭВМ и ее ресурсам

f. Обнаружение ошибок и их обработка

g. Учет использования ресурсов

2. Организация эффективного использования ресурсов ЭВМ

a. Планирование использования ресурса

b. Удовлетворение запросов на ресурсы

c. Отслеживание состояния и учет использования ресурса

d. Разрешение конфликтов между процессами, претендующими на одни и те же ресурсы

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

a. Широкий набор служебных программ (утилит), обеспечивающих резервное копирование, архивацию данных, проверку, очистку, дефрагментацию дисковых устройств и др.

b. Средства диагностики и восстановления работоспособности вычислительной системы и операционной системы:

i. диагностические программы для выявления ошибок в конфигурации ОС;

ii. средства восстановления последней работоспособной конфигурации;

iii. средства восстановления поврежденных и пропавших системных файлов и др.

4. Возможность развития

a. Обновление и возникновение новых видов аппаратного обеспечения

b. Новые сервисы

c. Исправления (обнаружение программных ошибок)

d. Новые версии и редакции ОС

Состав компонентов и функции операционной системы:

1. Управление процессами

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

3. Управление файлами

4. Управление внешними устройствами

5. Защита данных

6. Администрирование

7. Интерфейс прикладного программирования

8. Пользовательский интерфейс

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

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

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

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

· Термин «сетевая операционная система» используется в двух значениях: во-первых, как совокупность ОС всех компьютеров сети и, во-вторых, как ОС отдельного компьютера, способного работать в сети.

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

· Совокупность серверной и клиентской частей, предоставляющих доступ к конкретному типу ресурса компьютера через сеть, называется сетевой службой. Сетевая служба предоставляет пользователям сети набор услуг — сетевой сервис. Каждая служба связана с определенным типом сетевых ресурсов и/или определенным способом доступа к этим ресурсам. Наиболее важными для пользователей сетевых ОС являются файловая служба и служба печати. Сетевые службы могут быть либо глубоко встроены в ОС, либо объединены в виде некоторой оболочки, либо поставляться в виде отдельного продукта.

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

Вопрос 2.

Синхронизация процессов и потоков. Проблемы взаимодействия и синхронизации

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

Методы взаимоисключений

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

2. Блокирующие переменные (программный подход)

3. Использование системных функций входа в критическую секцию

4. Семафоры Дийкстры

Блокирующие переменные

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

Системные функции для работы с критическими секциями

Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса. Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее.

Задача

У гибкого диска 40 цилиндров. Операция поиска занимает 6 мс на цилиндр. Если не пытаться разместить блоки файла близко друг к другу, два логически последовательных блока окажутся в среднем на расстоянии 13 цилиндров друг от друга. Однако если операционная система пытается объединять логически соседние блоки в кластеры, то среднее межблоковое расстояние может быть уменьшено до двух цилиндров. Сколько понадобится времени в обоих случаях для считывания 100-блочного файла, если задержка вращения составляет 100 мс, а время переноса одного блока равно 25 мс?

Время выполнения запроса = время поиска + задержка вращения + время передачи.

Сперва мы ищем первый блок файла: в среднем для этого придется поискать на 20 цилиндрах, т.е затратить 120мс. Для полного считывания потребуется 120мс + 100мс + 25мс = 245мс. Теперь рассмотрим считывание остальных 99 блоков файла.

В случае, когда два блока находятся на расстоянии 13 цилиндров, время поиска занимает 13*6мс = 78мс. Время считывания блока = время поиска + задержка вращения + время передачи = 78 + 100 + 25 = 203 мс. Общее время считывания файла = время считывания первого блока + время считывания 99 остальных блоков = 20,342 сек.

В случае, когда два блока находятся на расстоянии 2 цилиндра, время поиска занимает 2*6мс = 12мс. Время считывания блока = время поиска + задержка вращения + время передачи = 12 + 100 + 25 =137 мс. Общее время считывания файла = время считывания первого блока + время считывания 99 остальных блоков = 13,808сек.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: