Главная страница
Навигация по странице:

СПО_лекции_ЗФ. 1. Введение. Функции и организация операционных систем



Скачать 0.5 Mb.
Название 1. Введение. Функции и организация операционных систем
Анкор СПО_лекции_ЗФ.docx
Дата 02.05.2017
Размер 0.5 Mb.
Формат файла docx
Имя файла СПО_лекции_ЗФ.docx
Тип Документы
#6114
страница 1 из 7
  1   2   3   4   5   6   7

1. Введение. Функции и организация операционных систем



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

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

2. Системы управления файлами (СУФ).

3. Интерфейсные оболочки для взаимодействия пользователя с ОС и программные среды.

4. Системы программирования.

5. Утилиты.

Рассмотрим вкратце эти группы системных программ.

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

На рис. 1.1 изображена обобщённая структура программного обеспечения вычислительной системы.

рис

Рис. 1.1. Обобщённая структура программного обеспечения

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

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

1. Управление элементами, блоками и устройствами ЭВМ. Выполняется с помощью набора специальных управляющих программ – драйверов устройств. Так, например, центральная часть операционной системы – ядро ОС, содержит драйверы всех основных устройств ЭВМ. Дополнительные устройства устанавливаются в вычислительную систему вместе со своим драйвером, обычно поставляемым вместе с аппаратными средствами;

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

3. Выделение ресурсов ПЭВМ (памяти, процессорного времени, внешних устройств) для выполняемых процессов (управление ресурсами). Это наиболее сложная функция операционных систем. В зависимости от того, как распределяются ресурсы ЭВМ, определяется тип ОС и ее возможности;

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

5. Приём от пользователя (или от оператора системы) заданий или команд, сформулированных на соответствующем языке – в виде директив (команд) оператора или в виде указаний (своеобразных команд) с помощью соответствующего манипулятора (например, с помощью «мыши»), – и их обработка.

Также следует отметить следующие функции, которые выполняют ОС:

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

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

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

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

  • обеспечение работы систем управления файлами (СУФ) и/или системы управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения;

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

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

  • удовлетворение жёстким ограничениям на время ответа в режиме реального времени (характерно для соответствующих ОС);

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

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

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

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

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

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

  • обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.

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

Примерами операционных систем являются: Windows, Linux, Mac OS, Android, iOS и др.

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

Нужно понимать, что любая система управления файлами (СУФ) не существует сама по себе – она разработана для работы в конкретной ОС и с конкретной файловой системой. Можно сказать, что всем известная файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами, например, FAT-16, FAT-32 для Windows. Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствующая система управления файлами; и эта система управления файлами будет работать только в той ОС, для которой она и создана.

Примеры: NTFS, FAT, Ext4, XtreemFS, Mac OS X Extended и др.

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

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

Ряд операционных систем могут организовывать выполнение программ, созданных для других ОС. Например, в системе Linux можно создать условия для выполнения некоторых программ, написанных для систем семейства Windows.

К этому классу системного программного обеспечения (интерфейсным оболочкам) следует отнести и эмуляторы, позволяющие смоделировать в одной операционной системе какую-либо другую машину или операционную систему. Так, известна система эмуляции VMware, которая позволяет запустить в среде Linux любую другую ОС, например, Windows. Другие примеры - VirtualBox, VirtualPC. Можно, наоборот, создать эмулятор, работающий в среде Windows, который позволит смоделировать компьютер, работающий под управлением любой ОС, в том числе и под Linux.

Следует отметить, что операционная среда определяется программными интерфейсами, то есть API (application program interface). Интерфейс прикладного программирования (API) включает в себя управление процессами, памятью и вводом/выводом.

4. Система программирования на рис. 1.1 представлена такими компонентами, как транслятор с соответствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики.

Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.

Интерпрета́тор языка программирования осуществляет анализ и перевод текста программы в машинный код пошагово, непосредственно перед выполнением, и сразу же исполняет получившийся машинный код.

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

Компоновщик собирает вместе все необходимые объектные файлы.

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

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

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

Примеры: MS Visual C++, Code::Blocks, Borland C++ Builder, Borland Delphi и др.

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

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

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

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

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

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

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

  • в состав ядра должны войти наиболее часто используемые системные модули;

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

В состав ядра входят, как правило, следующие модули:

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

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

  • средства по распределению основных ресурсов: оперативной памяти и процессорного времени.

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

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

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

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

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

Этот принцип дает возможность проведения одной и той же работы различными способами. В состав ОС может входить:

  • несколько типов планировщиков (модулей супервизора, управляющих тем или иным видом ресурсов);

  • различные средства организации связи между вычислительными процессами.

Это дает возможность пользователям:

  • быстро и наиболее адекватно адаптировать ОС к определенной конфигурации вычислительной системы;

  • обеспечить максимально эффективную загрузку технических средств при решении конкретного класса задач;

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

5. Принцип независимости программ от внешних устройств

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

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

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

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

  • для других ОС;

  • для более ранних версий данной операционной системы;

  • для другой аппаратной платформы.

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

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

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

К открытым системам в первую очередь относятся UNIX-подобные системы.

8. Принцип модульности (переносимости)

Операционная система должна относительно легко переноситься:

  • с процессора одного типа на процессор другого типа;

  • с аппаратной платформы (архитектуры вычислительной системы) одного типа на аппаратную платформу другого типа.

Принцип переносимости близок принципу совместимости, но это не одно и то же.

Написание переносимой ОС, как и любой переносимой программы, должно следовать определенным правилам:

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

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

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

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

  • защита ресурсов одного пользователя от других;

  • установка квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов.


  1   2   3   4   5   6   7
написать администратору сайта