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

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

Описание

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

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

ОС Шпоры.docx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского  drive — управлять, вести). Драйвер может управлять единственной моделью устройства, например модемом U-1496E компании ZyXEL, или же группой устройств определенного типа, например любыми Hayes-совместимыми модемами. Для пользователя очень важно, чтобы операционная система включала как можно больше разнообразных драйверов, так как это гарантирует возможность подключения к компьютеру большого числа внешних устройств различных производителей. От наличия подходящих драйверов во многом зависит успех операционной системы на рынке (например, отсутствие многих необходимых драйверов внешних устройств было одной из причин низкой популярности OS/2).

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

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

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

  1. Классификация ОС.

Операционные системы реального  времени, ос пакетной обработки и  обычные

По типу управления ресурсами.

· По числу одновременно выполняемых  задач: однозадачные(MS-DOS, MSX) и многозадачные(MS Dos, Linux,Windows);

· По числу одновременно работающих пользователей: однопользовательские(MS-DOS, Windows 3.x, ранние версии OS/2), многопользовательские(UNIX, Windows NT);

· По способу распределения времени: невытесняющая многозадачность (NetWare, Windows 3.x),вытесняющая многозадачность (Windows NT, OS/2, UNIX);

· Поддержка многопоточности;

· Многопроцессорная обработка: асимметричная  ОС(целиком выполняется только на одном из процессоров системы, распределяя  прикладные задачи по остальным процессорам),симметричная ОС (полностью децентрализована и  использует весь пул процессоров, разделяя их между системными и прикладными  задачами);

· По типу аппаратных платформ: ОС персональных компьютеров, ОС миникомпьютеров, ОС мейнфреймов, ОС кластеров, ОС сетей ЭВМ;

· По областям использования: пакетные, разделения времени, реального времени;

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

 

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

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

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

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

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

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

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

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

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

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

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

· библиотеки процедур – библиотека математических функций, функций ввода/вывода и т.д.

  1. Ядро в привилегированном режиме. Многослойная структура ядра.

Обеспечить привилегии операционной системе невозможно без специальных  средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как  минимум два режима работы — пользовательский режим  (user mode) и привилегированный режим, который также называют режимом ядра  (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.

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

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

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

  1. Аппаратная зависимость и переносимость ОС. Типовые средства аппаратной поддержки ОС. Машинно-зависимые и машинно-независимые компоненты ОС. 

Аппаратная  зависимость и переносимость  ОС. Типовые средства аппаратной поддержки  ОС.

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

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