Лекция ОС. 2 Функции ОС вер 3. Лекция 1 Определение Операционная система (ОС)
Скачать 1.36 Mb.
|
ОПЕРАЦИОННЫЕ СИСТЕМЫ. Функции Лекция 1 Определение Операционная система (ОС) - вид системных программ, представляет собой комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между аппаратной частью компьютера и пользователем с его задачами, а с другой стороны, предназначены для наиболее эффективного расходования ресурсов вычислительной системы и организации надежных вычислений. расширяют реальные физические возможности компьютера управляют ресурсами компьютера Примеры операционных систем: UNIX, OS/2, Windows, Linux, QNX, MacOS, BeOS. Функции ОС Ф ункция 1. Прием от пользователя (или от оператора системы) заданий, или команд, сформулированных на соответствующем языке, и их обработка. Ф ункция 2. Управление ресурсами ПК (аппаратной частью) ОП Процессорное время Программы HDD Коммуникационные каналы Внешние устройства Ф ункция 3. Загрузка в оперативную память подлежащих исполнению программ. Ф ункция 4. Обеспечение режима мультипрограммирования, то есть организации параллельного выполнения двух или более программ на одном процессоре, которая создает видимость их одновременного исполнения. В основе ресурс - Распределение памяти между различными задачами. Мультипрограммирование – это режим обработки данных, при котором ресурсы вычислительной системы предоставляются каждому процессу из группы процессов обработки данных, находящихся в вычислительной системе, на интервалы времени, длительность и очередность предоставления которых определяется управляющей программой этой системы с целью обеспечения одновременной работы в интерактивном режиме. Суть мультипрограммного режима работы ОС заключается в том, что пока одна программа (один вычислительный процесс) ожидает завершения очередной операции ввода-вывода (подпись «Вв» на оси ординат), другая программа (процесс) может быть поставлена на решение Это позволяет более полно использовать имеющиеся ресурсы (центральный процессор начинает меньше простаивать) и уменьшить общее (суммарное) время, необходимое для решения некоторого множества задач. Пример: гипотетическая ситуация, при которой благодаря совмещению во времени двух вычислительных процессов общее время их выполнения получается меньше, чем если бы их выполняли по очереди (запуск одного начинался бы только после полного завершения другого). Время выполнения каждого процесса в общем случае больше, чем если бы каждый из этих процессов выполнялся как единственный. При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопрограммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса). При мультипрограммировании программы совместно используют не только процессор, но и другие ресурсы компьютера (оперативную и внешнюю память, устройства ввода-вывода, данные). Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются: пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени; удобство работы пользователей, заключающееся в том, что имеется возможность интерактивно работать одновременно с несколькими приложениями на одной машине; реактивность системы – способность системы выдерживать заранее заданные (очень короткие) интервалы времени между запуском программы и получением результата. Ф ункция 5. Запуск программы (передача ей управления, в результате чего процессор исполняет программу), автоматическое выполнение действий по запуску задач в обработку и их завершению. Алгоритмы планирования процессов Планирование процессов включает в себя решение следующих задач: 1. определение момента времени для смены выполняемого процесса (программно); 2. выбор процесса на выполнение из очереди готовых процессов (программно); 3. переключение контекстов "старого" и "нового" процессов ( аппаратно). Алгоритм квантования и процессов. Квантование В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если: ·процесс завершился и покинул систему, ·произошла ошибка, ·процесс перешел в состояние ОЖИДАНИЕ, ·исчерпан квант процессорного времени, отведенный данному процессу. Состояние процессов В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний: 1. ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; 2. ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса; 3. ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса. • Относительный приоритет • Абсолютный приоритет Выполнение задач порциями • Non-preemptive multitasking - невытесняющая многозадачность - это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс. • Preemptive multitasking - вытесняющая многозадачность - это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей. Ф ункция 6. Идентификация всех программ и данных. Ф ункция 7. Прием и исполнение различных запросов от выполняющихся приложений. ОС умеет выполнять большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по определенным правилам, которые определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы. Ф ункция 8. Поддержка выполнения операций ввода- вывода. Ф ункция 9. Обеспечение работы систем управления файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения. Ф ункция 10. Синхронизация выполнения задач. Важным понятием синхронизации процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным. Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением Простейший способ обеспечить взаимное исключение - позволить процессу, находящемуся в критической секции, запрещать все прерывания Однако этот способ непригоден, так как опасно доверять управление системой пользовательскому процессу ; он может надолго занять процессор, а при крахе процесса в критической области крах потерпит вся система, потому что прерывания никогда не будут разрешены. Проблема синхронизации - взаимные блокировки, называемые также дедлоками (deadlocks), клинчами (clinch) или тупиками Если переставить местами операции P(e) и P(b) в программе "писателе", то при некотором стечении обстоятельств эти два процесса могут взаимно заблокировать друг друга. Действительно, пусть "писатель" первым войдет в критическую секцию и обнаружит отсутствие свободных буферов; он начнет ждать, когда "читатель" возьмет очередную запись из буфера, но "читатель" не сможет этого сделать, так как для этого необходимо войти в критическую секцию, вход в которую заблокирован процессом "писателем". В рассмотренных примерах тупик был образован двумя процессами, но взаимно блокировать друг друга могут и большее число процессов. Проблема тупиков включает в себя следующие задачи: · предотвращение тупиков, · распознавание тупиков, · восстановление системы после тупиков. Тупики могут быть предотвращены на стадии написания программ, то есть I подход - программы должны быть написаны таким образом, чтобы тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов. Так, если бы в предыдущем примере процесс А и процесс В запрашивали ресурсы в одинаковой последовательности, то тупик был бы в принципе невозможен. II подход - динамический к предотвращению тупиков называется и заключается в использовании определенных правил при назначении ресурсов процессам , например, ресурсы могут выделяться в определенной последовательности, общей для всех процессов. Служба: Диспетчер Печати Следствие: Если же тупиковая ситуация возникла, то не обязательно снимать с выполнения все заблокированные процессы Можно снять только часть из них, при этом освобождаются ресурсы, ожидаемые остальными процессами, можно вернуть некоторые процессы в область свопинга , можно совершить "откат" некоторых процессов до так называемой контрольной точки, в которой запоминается вся информация , необходимая для восстановления выполнения программы с данного места. Контрольные точки расставляются в программе в местах, после которых возможно возникновение тупика. Ф ункция 11. Ведение учета работы системы (при необходимости). Учет работы — отслеживание времени и ресурсов, используемых различными работами и пользователями Не только для локально работающих машин Но и сетевых, главное – для серверов PHP Система контроля трафика – 30 000 Мб 7 дней Система фильтров режет сайты Ф ункция 12. Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания (планирование обработки задач). Планирование процессов — это деятельность диспетчера процессов, которая обрабатывает удаление запущенного процесса из ЦП и выбор другого процесса на основе конкретной стратегии. Планирование процессов является неотъемлемой частью многопрограммных операционных систем. Такие операционные системы позволяют загружать в исполняемую память более одного процесса за один раз, и загруженный процесс совместно использует ЦП, используя временное мультиплексирование. Очереди планирования процессов ОС поддерживает все печатные платы в очередях планирования процессов. ОС поддерживает отдельную очередь для каждого из состояний процессов, а печатные платы всех процессов в одном и том же состоянии выполнения помещаются в одну и ту же очередь. Когда состояние процесса изменяется, его печатная плата отсоединяется от текущей очереди и перемещается в новую очередь состояний. Операционная система поддерживает следующие очереди: • Очередь заданий —хранятся все процессы в системе. • Готовая очередь —хранит набор всех процессов, находящихся в основной памяти, готовых и ожидающих выполнения. Новый процесс всегда помещается в эту очередь. • Очереди устройства — процессы, которые заблокированы из-за недоступности устройства ввода-вывода, составляют эту очередь. Модель двух состояний Бег Когда создается новый процесс, он входит в систему как в рабочем состоянии. Не бегать Процессы, которые не запущены, остаются в очереди, ожидая своей очереди на выполнение. Каждая запись в очереди является указателем на определенный процесс. Очередь реализуется с помощью связанного списка. Использование диспетчера заключается в следующем. Когда процесс прерывается, этот процесс передается в очередь ожидания. Если процесс завершен или прерван, процесс отбрасывается. В любом случае диспетчер затем выбирает процесс из очереди для выполнения. Планировщики Планировщики — это специальное системное программное обеспечение, которое обрабатывает планирование процессов различными способами. Их основная задача — выбрать задания для отправки в систему и решить, какой процесс запустить. Типы планировщиков — • Долгосрочный планировщик • Краткосрочный планировщик • Среднесрочный планировщик Краткосрочный планировщик • Он также называется планировщиком ЦП . Его основная цель — повысить производительность системы в соответствии с выбранным набором критериев. Это изменение состояния готовности в рабочее состояние процесса. Планировщик ЦП выбирает процесс среди процессов, готовых к выполнению, и выделяет ЦП одному из них. • Краткосрочные планировщики, также известные как диспетчеры, принимают решение о том, какой процесс выполнять дальше. Краткосрочные планировщики быстрее, чем долгосрочные. Среднесрочный планировщик • Среднесрочное планирование является частью обмена . Удаляет процессы из памяти. Это уменьшает степень мультипрограммирования. Среднесрочный планировщик отвечает за обработку замененных процессов. • Работающий процесс может быть приостановлен, если он сделает запрос ввода-вывода. Приостановленные процессы не могут достичь прогресса. В этом случае, чтобы удалить процесс из памяти и освободить место для других процессов, приостановленный процесс перемещается во вторичное хранилище. Этот процесс называется обменом , а процесс называется обмен или выкатывание. Обмен может быть необходимым для улучшения технологического процесса. Сист. Раздел. Врем. Ф ункция 13. Организация механизмов обмена сообщениями и данными между выполняющимися программами. Межпроцессное взаимодействие (inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети Буфер обмена – вставка инф. Блоков, OLE - связи Ф ункция 14. Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров. Ф ункция 15. Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений. Ф ункция 16. Аутентификация и авторизация пользователей (для большинства диалоговых операционных систем). Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи. Если входное имя (login) пользователя и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь. Термин авторизация означает, что в соответствии с учетной записью пользователя, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права (привилегии), определяющие, что он может, а чего не может делать на компьютере. Аутентификация — это процесс проверки подлинности чего-либо. Термин чаще всего используется в среде информационных технологий. Примером аутентификации может быть сравнение пароля, введенного пользователем, с паролем, который сохранен в базе данных сервера. Подобная проверка может быть как односторонней, так и взаимной — все зависит от способа защиты и политики безопасности сервиса. Методы аутентификации разделяются в зависимости от типа ресурса, структуры и тонкостей организации сети, удаленности объекта и технологии, которая используется в процессе распознавания. Классификация на основании степени конфиденциальности : • доступ к информации, утечка которой не несет значимых последствий для пользователя и интернет-ресурса —достаточно применения многоразового пароля; • раскрытие или пропажа данных приведут к существенному ущербу — более строгая аутентификация: одноразовые пароли, дополнительная проверка при попытке доступа к остальным разделам ресурса; • доступ к системам конфиденциальных данных - использование взаимной аутентификации и многофакторных методов поверки. Ф ункция 17. Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени). Реальное время - количественная характеристика, которая может быть измерена реальными физическими часами, в отличие от логического времени, определяющего качественную характеристику, выражаемую относительным порядком следования событий. Говорят, что система работает в режиме реального времени, если для описания работы этой системы требуются количественные временные характеристики. Характеристики систем реального времени • дедлайн (deadline) — критический срок обслуживания, предельный срок завершения какой-либо работы; • латентность (latency) — время отклика (время задержки) системы на внешние события; • джиттер (jitter) — разброс значений времени отклика. Можно различить джиттер запуска (release jitter) — период времени от готовности к исполнению до начала собственно исполнения задачи и джиттер вывода (output jitter) — задержка по окончании выполнения задачи. Джиттер может возникать под влиянием других одновременно исполняемых задач. В моделях систем реального времени могут фигурировать и другие параметры, например, период и количество итераций (для периодических процессов), нагрузка (load) — количество команд процессора в худшем случае. В зависимости от допустимых нарушений временных ограничений системы реального времени можно поделить на системы жёсткого реального времени (hard real-time), для которых нарушения равнозначны отказу системы, и системы мягкого реального времени (soft real-time), нарушения характеристик которых приводят лишь к снижению качества работы системы. Также можно рассматривать твёрдые системы реального времени (firm real- time), в которых допускается небольшое нарушение дедлайнов, но бо́льшее нарушение может привести к катастрофическому отказу системы. Определение жёсткого реального времени ничего не говорит об абсолютном значении времени отклика: это могут быть как миллисекунды, так и недели. Требования к системам мягкого реального времени можно задать только в вероятностных терминах, например, как процент откликов, выданных в установленные временны́е рамки. Интересно, что при проектировании предварительные расчёты легче выполнить для системы жёсткого реального времени, чем получить, например, долю выполняемых в срок задач в системе мягкого реального времени, поэтому разработчики таких систем часто пользуются инструментами и методиками для проектирования систем жёсткого реального времени. События реального времени • Асинхронные события — полностью непредсказуемые события. Например, вызов абонента телефонной станции. • Синхронные события — предсказуемые события, случающиеся с определённой регулярностью. Например, вывод аудио и видео. • Изохронные события — регулярные события (разновидность асинхронных), случающиеся в течение интервала времени. Например, в мультимедийном приложении данные аудиопотока должны прийти за время прихода соответствующей части потока видео. Примеры систем, работающих в режиме реального времени: Автоматизированная система управления технологическим процессом ( АСУ ТП) химического реактора; бортовая система управления космического аппарата; автоматизированная система научных исследований ( АСНИ) в области ядерной физики; система обработки аудио- и видеопотоков при трансляции в прямом эфире; интерактивная компьютерная игра. Ф ункция 17. Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы. • Предоставление услуг на случай частичного сбоя системы. Система прерываний. Задавайте вопросы по данному подразделу Термины и понятия Процесс выполняемая в данный момент программа или ее компонент. Выполнение процесса должно осуществляться последовательно. Процесс определяется как сущность, представляющая основную единицу работы, которая должна быть реализована в системе. Статусы процессов в современных ОС Операционная система контролирует следующую деятельность, связанную с процессами: 1. создание и удаление процессов 2. планирование процессов 3. синхронизация процессов 4. коммуникация процессов 5. разрешение тупиковых ситуаций Каждому процессу ОС системой выделяются ресурсы: дисковое пространство, устройство ввода вывода, канал передачи информации и прочее. Каждый процесс имеет возможность создавать другие процессы и контролировать их выполнения. Каждому процессу в ОС отводятся определенные права. Эти права максимальны для самой ОС, имеют промежуточные значения для подсистем ОС (драйвера) и минимальные права соответствуют выполняющимся пользовательским программам. ОС для каждого из процесса хранит всю информацию об этих процессах в специальных таблицах. В этих таблицах обязательно описываются права процесса, полное состояние регистров процессора для данного процесса, объем ОП отводимый процессу и отображение этой памяти на реальную физическую память, а так же список всех ресурсов, отводимых Создание процесса Простейшей ОС не требуется создание новых процессов, так как внутри них работает всего одна программа, запускаемая во время включения устройства. В более сложных системах надо создавать новые процессы. Обычно они создаются: • При запуске ОС; • При появлении запроса на создание процесса. Порождение нового процесса длительная процедура, так как ОС должна выполнить множество действий: 1. Выделить процессу необходимые ресурсы (адресное пространство, файлы, устройство и т.д.); 2. Произвести инициализацию этих ресурсов (загрузить выполняемую программу в ОП, инициализировать первое начальное значение регистров и стеков, открыть файлы и т.д.); 3. Занести всю необходимую информацию в специальную таблицу, описывающую процессу в системе; 4. Передать управление новому процессу. стартовые программы – выполняют действия необходимые для запуска компьютера; базовая система ввода/вывода – непосредственно BIOS, представляющая собой набор программ, которые обеспечивают бесперебойную работу компьютера; расширения ROM BIOS – представляющие собой программы, которые добавляются к основным программам, расположенным в ROM BIOS, в том случае, когда к компьютеру присоединяется какое-либо дополнительное оборудование; BIOS Setup – программа настройки аппаратной конфигурации ПК. BIOS Setup вызывается нажатием клавиши Del во время старта компьютера. Требования к ОС Надежность Система должна быть по меньшей мере так же надежна, как и аппаратура на которой она работает. Защита Система должна быть защищена от несанкционированного доступа. Эффективность ОС представляет собой сложный комплекс программных средств, который использует значительную часть аппаратных ресурсов для своих собственных надобностей. Следовательно, сама система должна быть как можно более экономичной, чтобы большая часть ресурсов оставалась в распоряжении пользователей. Кроме того, система должна управлять ресурсами пользователей так, чтобы свести к минимуму время простоя, или, что тоже самое, добиться максимальной загруженности ресурса. Предсказуемость Пользователь предпочитает, чтобы обслуживание не слишком сильно менялось в течение продолжительного времени. В частности, запуская программу, пользователь должен иметь представление, основанное на предыдущем опыте, о том когда ему ожидать выдачи результатов. Удобство ОС должна быть достаточно гибкой и удобной для пользователя. |