Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / СПО3.doc
Скачиваний:
63
Добавлен:
11.02.2014
Размер:
552.71 Кб
Скачать

Основные понятия.

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

СПО можно разделить на пять групп:

операционные системы (ОС);

системы управления файлами;

интерфейсные оболочки для взаимодействия пользователя с операционной системой и программные среды;

системы программирования;

утилиты.

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

Основные функции, которые выполняют ос:

- прием от пользователя заданий или команд и их обработка;

- прием и исполнение программных запросов на запуск, приостановку и остановку других программ;

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

-инициация программы (передача ей управления, в результате чего процессор исполняет программу);

-идентификация всех программ и данных;

-обеспечение работы систем управления файлами (СУФ) и СУБД;

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

-обеспечение функций по организации и управлению всеми операциями ввода\вывода;

-распределение памяти и организация виртуальной памяти;

-планирование о диспетчеризации задач;

-организация механизмов обмена сообщениями и данными между выполняющимися программами;

-защита одной программы от влияния другой;

-обеспечение сохранности данных;

-обеспечение работы систем программирования.

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

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

Системы управления файлами - предназначены для организации более удобного доступа к данным, организованным как файлы. Благодаря СУФ вместо

низкоуровнеш доступа с указанием конкретных физических адресов нужной записи используется логический доступ с указанием имени файла и записи в нем. Все современные ОС имеют соответствующие СУФ, некоторые из них могут работать с несколькими СУФ. СУФ не существует сама по себе - она разработана для конкретной ОС (пример: FAT-16 для MS-DOS, super-FAT для OS|2, FAT Windows NT и т.д.).

Интерфейсные оболочки - предназначены для расширения возможности по управлению ОС.

Системы программирования - комплекс программных средств, предназначенных для кодирования, тестирования и отладки программного обеспечения.

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

Основные принципы построения ОС

Принцип модульности

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

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

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

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

модули по управлению системой прерываний;

средства по переводу программ из состояния счета в состояние ожидания, готовности и обратно;

средства по распределению таких основных ресурсов, как оперативная память и процессор.

Программы ядра ОС постоянно находятся в оперативной памяти ЭВМ и называются резидентными. Программы ОС, подгружаемые в ОЗУ по мере необходимости из внешней памяти, называются транзитными.

Принцип генерируемости ОС

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

Принцип функциональной избыточности

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

Принцип виртуализации

Построение виртуальных процессов и ресурсов, их распространение и использование в любой ОС.

Принцип совместимости

Это способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной ОС.

Принцип открытости и наращиваемости ОС

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

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

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

Принцип мобильности (переносимости)

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

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

-свести к минимуму или исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами.

Принцип обеспечения безопасности вычислений

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

Концепция процесса

Процесс - это любая деятельность, связанная с использованием программ на процессоре

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

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

-порождение, во время которого подготавливаются условия для первого исполнения на центральном процессоре;

-активное состояние (исполнение, «счет»), когда программа исполняется в центральном процессоре;

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

-готовность, при котором процесс получил все необходимые ему ресурсы, кроме центрального процессора;

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

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

программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность.

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

-либо он заканчивает свою деятельность;

-либо он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система переводит его в состояние ожидание;

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

Классификация процессов

По времени существования

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

По генеалогическому признаку

порождающие - процесс, задающий требования для порождения других процессов.

порожденные - процессы, создаваемые по требованию других.

По результативности

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

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

По принадлежности к центральному процессору

внутренние - развивающиеся в процессоре.

внешние - развитие которых происходит под контролем или управлением ОС на другом процессоре.

По принадлежности к ОС

системные - при развитии которых исполняется программа из состава ОС пользовательские - при развитии которых выполняется прикладная программа

По динамическому признаку - соотношение интервалов существования процессов

последовательные - интервалы которых не пересекаются во времени

параллельные - существуют одновременно на данном интервале времени комбинированные (пересекающиеся)

По связанности процессов

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

взаимодействующие - взаимосвязанные процессы с информационной связью конкурирующие - взаимосвязанные процессы, имеющие связь по ресурсам.

Концепция ресурса

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

Ресурс вычислительной системы - средство вычислительной системы, которое может быть выделено процессу обработки данных на определенный интервал времени.

Основными ресурсами вычислительной системы являются: процессоры; области основной памяти; наборы данных; периферийные устройства; программы.

Управление ресурсами

Включает (не зависит от типа ресурса):

-Планирование ресурса, т.е. определение какому процессу, когда и в каком количестве он необходим

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

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

-Разрешение конфликта между процессами

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

Классификация ресурсов

По реальности существования

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

Виртуальный - мнимый ресурс, модель некоторого ресурса, которая реализуется в программно- аппаратной форме и имеет преимущество над физическим.

По возможности расширения свойств, т.е. по возможности построения виртуального ресурса

Эластичный, т.е. допускает виртуализацию

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

По степени активности

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

Пассивные, над которыми можно производить дополнительные действия, которые приводят к их изменению (например, ОП).

По времени существования

Постоянные, т.е. существуют до рождения процесса, во время существования процесса и возможно будут существовать после процесса (например, ПЗУ).

Временные - появляющиеся или уничтожающиеся в системе динамически в течение времени существования процесса. Создание или уничтожение может производится самим процессом или другими процессами.

По степени важности

Главные - без выделения этих ресурсов процесс принципиально существовать не может (например, центральный процессор и ОП)

Второстепенные - ресурсы, в отсутствие которых возможно некое альтернативное развитие процесса.

По функциональной избыточности:

Дорогие

Дешевые

По структуре

Простые - не содержат составные части

Составные

По восстанавливаемости

Воспроизводимые ресурсы - ресурсы, при распределении которых допускается многократное выполнение следующей последовательности:

Запрос => Выделением Использование => Освобождение

В отношении определенной категории ресурсов многократное применение последовательности 3-В-И-О невозможно, поскольку на каком-либо цикле работы с ними может наступить ситуация исчерпания ресурса, т.е. обрыв последовательности на шаге ИСПОЛЬЗОВАНИЙ после чего такой ресурс изымается из использования: Ресурсы с таким свойством называются потребляемыми.

По характеру использования

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

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

Концепция прерывания

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

Прерывание - операция процессора, состоящее в регистрации состояния процессора, предшествующего прерыванию, и установлении нового состояния.

В вычислительной машине прерывание - это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Сигнал "прерывание" сначала отрабатывается аппаратурой вычислительной машины - системой прерываний. Если произошло прерывание, то в вычислительной системе выполняются последовательно следующие действия

-управление передается операционной системе;

-операционная система запоминает состояние прерванного процесса;

-операционная система анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания;

-программа обработки прерывания выполняет предписанные действия и передает управление операционной системе;

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

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

Различают шесть основных классов прерываний:

-прерывания от схем контроля ЭВМ;

-прерывания по рестарту (повторному пуску);

-прерывания ввода/вывода;

-внешние прерывания;

-прерывания по вызову супервизора; -программные прерывания.

Прерывание от схем контроля возникает в случае появления любой аппаратной ошибки в ЭВМ. Продолжение работы машины становится невозможным, и процесс аварийно заканчивает свое существование.

Прерывание по рестарту может наступить в следующих случаях:

-на пульте управления была нажата кнопка (клавиша, сочетание клавиш) повторного пуска ЭВМ;

-процесс, выполняющийся в данной ЭВМ, выдал команду рестарта;

-в многомашинной системе получена команда рестарта от другого компьютера.

В любом случае в ЭВМ, получившей команду рестарта, выполняются действия по загрузке операционной системы.

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

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

Прерывание по вызову супервизора появляется в том случае, когда работающий процесс выполняет команду обращения к супервизору. Этой командой (SVC-командой) программа пользователя генерирует запрос на предоставление конкретной системной услуги, например, на выполнение операции ввода-вывода, увеличение объема выделенной памяти и т.п.

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

Архитектура операционной системы

Ядро и вспомогательные модули ОС

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

-ядро - модули, выполняющие основные функции ОС;

-модули, выполняющие вспомогательные функции ОС.

Модули ядра ОС выполняют следующие базовые функции ОС:

-управление процессами;

-управление памятью;

-управление устройствами ввода-вывода и т.п.

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

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

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

Функции выполняемые ядром ОС требуют высокой скорости выполнения и для этого размещаются постоянно в оперативной памяти (резидентные модули).

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

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

-архивирование информации;

-дефрагментация данных на диске;

-поиск необходимого файла и т.п.

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

Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Примером такого изменения статуса программы является Web- браузер компании Microsoft, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем Windows.

Вспомогательные модули ОС обычно подразделяются на следующие группы:

-утилиты — программы, решающие отдельные задачи управления и сопровождения ОС, такие, например, как программы сжатия дисков, архивирования данных;

-системные обрабатывающие программы текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

-программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;

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

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

Взаимодействие между ядром представлено на следующем рис.

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

Соседние файлы в папке лекции