Системное программное обеспечение

Автор работы: Пользователь скрыл имя, 28 Января 2013 в 15:44, шпаргалка

Описание

Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Системное программное обеспечение"

Работа состоит из  1 файл

ОС Шпоры.docx

— 207.00 Кб (Скачать документ)

                                         На 3.

  1. Определение ОС. Функции ОС. ОС как виртуальная машина и как система управления ресурсами.

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

Функции:

· Предоставление пользователю вместо реальной аппаратуры виртуальной машины (виртуальной аппаратуры);

· Повышенная эффективность использования аппаратуры путём рационального использования ресурсов.

Ресурсы: память, процессорное время, устройства ввода\вывода.

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

     Место ОС в структуре вычислительной системы

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

Основные функции:

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

Дополнительные функции:

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

Взаимодействие между процессами: обмен данными, взаимная синхронизация.

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

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

ОС как система управления ресурсами 

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

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

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

  1. Монолитная архитектура. Преимущества и недостатки монолитной архитектуры. Архитектура ОС. Ядро и вспомогательные модули

Операционная система состоит  из ядра и вспомогательных модулей.

Ядро выполняет:

· базовые функции ОС  (управление процессами, памятью, устройствами ввода/вывода;

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

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

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

Классическая архитектура  ОС. Монолитные и многослойные ОС

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

Такая организация ОС предполагает следующую структуру:

· Главная программа, которая вызывает требуемые сервисные процедуры.

· Набор сервисных процедур, реализующих системные вызовы.

· Набор утилит, обслуживающих сервисные процедуры.

Многослойная ОС - организация ОС как иерархии уровней с хорошо определенными связями между  ними, так чтобы объекты уровня  N могли вызывать только объекты  из уровня N-1. Нижним уровнем в таких  системах обычно является аппаратура, верхним уровнем интерфейс пользователя. Чем ниже уровень, тем более привилегированные  команды и действия может  выполнять  модуль, находящийся на этом уровне.  Уровни образуются группами функций  операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать  только со своим непосредственным соседом - выше- или нижележащим уровнем. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням. Ядро может состоять из следующих  слоев:

· средства аппаратной поддержки (система прерываний, средства переключения контекстов процессов,  средства поддержки привилегированного режима, средства защиты областей памяти и т. д.);

· машинно-зависимые компоненты ОС; в идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры;

· базовые механизмы ядра, этот слой выполняет наиболее примитивные операции ядра, реализует решения о распределении ресурсов, принятые на более высоком уровне;

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

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

Недостатки: при ошибке в одном  из компонентов системы - вся система  приходит в не рабочее состояние, и требуется ее перезапуск.

Достоинства: производительность системы.

  1. Микроядерная архитектура. Преимущества и недостатки микроядерной архитектуры

  Микроядерная архитектура ОС

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

Преимущества и недостатки микроядерной архитектуры

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

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

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

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

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

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

  1. Понятия «процесс» и «поток». Состояния потока. Диаграмма состояний потока. Контекст и дескриптор.

Понятия «процесс» и  «поток»

Мультипрограммирование — способ организации выполнения нескольких программ на одном компьютере.

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

Итак, в чем же состоят принципиальные отличия в понятиях «процесс» и «поток»?

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

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

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

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

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

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

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

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

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

  Из всего вышеизложенного, следует, что в операционной системе наряду с процессами нужен другой механизм распараллеливания вычислений, который учитывал бы тесные связи между отдельными ветвями вычислений одного и того же приложения. Для этих целей современные ОС предлагают механизм многопоточной обработки (multithreading). При этом вводится новая единица работы — поток выполнения, а понятие «процесс» в значительной степени меняет смысл. Понятию «поток» соответствует последовательный переход процессора от одной команды программы к другой. ОС распределяет процессорное время между потоками. Процессу ОС назначает адресное пространство и набор ресурсов, которые совместно используются всеми его потоками.

Информация о работе Системное программное обеспечение