Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Факультет заочного обучения
Кафедра информационных технологий автоматизированных систем
Контрольная работа №1 «Принципы построения операционных систем» по дисциплине «Операционные системы и базы данных»
Номер зачётной книжки:
ВВЕДЕНИЕ Как известно, процесс проникновения информационных технологий практически во все сферы человеческой деятельности продолжает развиваться и углубляться. Компьютеры и информационные системы становятся всё более дружественными и понятными даже для человека, не являющегося специалистом в области вычислительной техники. Это стало возможным прежде всего потому, что пользователи и их программы взаимодействуют с вычислительной техникой через операционную систему. Операционная система предоставляет интерфейсы и для выполняющихся приложений, и для пользователей. Программы пользователей, да и многие служебные программы запрашивают у операционной системы выполнение тех операций, которые достаточно часто встречаются практически в любой программе. Знание основ построения операционных систем позволяет организовать в информационных системах различного назначения эффективные вычислительные процессы, решать вопросы информационной безопасности, защиты от сбоев и отказов, а также организовать эффективную службу администрирования. Целью настоящей контрольной работы является формирование базового понятия операционной системы, а также рассмотрение базовых принципов построения операционных систем.
ПРИНЦИПЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ Операционная система — комплекс программ, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных. Среди множества принципов построения операционных систем перечислим несколько наиболее важных: принцип модульности, принцип виртуализации, принципы мобильности (переносимости) и совместимости, принцип открытости и наращиваемости, принцип генерации операционной системы из программных компонентов и некоторые другие.
Принцип модульности Операционная система строится из множества программных модулей. Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему определению модуль предполагает легкий способ его замены другим при наличии заданных интерфейсов. Программные модули могут быть однократно и многократно используемыми. Однократно используемыми называют такие модули, которые могут быть правильно выполнены только один раз, т.е. в процессе выполнения они могут испортить себя (повреждается часть кода или исходные данные). Многократно используемые программные модули делятся на - привилегированные, - повторно входимые и - реентерабельные модули. Привилегированные работают в привилегированном режиме (т.е. при отключенной системе прерываний). Таким образом, никакие внешние события не могут нарушить порядок их выполнения. Непривилегированные модули – это обычные программные модули, которые могут быть прерваны во время своей работы. Противоположны им реентерабельные модули (reenterable – допускающий повторное обращение). Они допускают повторное многократное прерывание своего исполнения и повторный запуск. Существуют еще и повторно входимые (re-entrance) модули. Они также допускают многократное параллельное использование, но в отличие от реентерабельных, их нельзя прерывать. Они состоят из привилегированных секций и повторное обращение к ним возможно только после завершения какой-нибудь из секций. Другими словами, в повторно входимых модулях четко предопределены все допустимые точки входа. Заметим, что повторно входимые модули встречаются чаще, чем реентерабельные. Принцип модульности отражает технологические и эксплуатационные свойства системы. Наибольший эффект от его использования достижим в случае, когда принцип распространен одновременно на операционную систему, прикладные программы и аппаратуру. Принцип модульности является одним из основных в UNIX-системах.
Принцип виртуализации Наиболее естественное и законченное проявление концепции виртуальности – понятие виртуальной машины. Любая ОС, являясь средством распределения ресурсов и организуя управление процессами, скрывает от пользователя и приложений реальные ресурсы, заменяя их абстракцией. В результате пользователи видят и используют виртуальную машину как некое устройство, способное воспринимать их программы, написанные на определенном языке программирования. Одним из аспектов виртуализации является организация возможности выполнения в данной ОС приложений, которые разрабатывались для других ОС. Другими словами, речь идет об организации нескольких операционных сред. Реализация этого принципа позволяет такой ОС иметь очень сильное преимущество перед аналогичными ОС, не имеющими такой возможности. Примером реализации принципа виртуализации может служить VDM-машина (virtual DOS machine) — защищенная подсистема, предоставляющая полную среду MS-DOS и консоль для выполнения MS-DOS приложений. Одновременно может выполняться практически произвольное число VDM-сессий. Такие VDM-машины имеются и в системах Microsoft Windows, и в OS/2.
Принцип мобильности (переносимости) Операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же. Написание переносимой ОС аналогично написанию любого переносимого кода — нужно следовать некоторым правилам. Во-первых, большая часть ОС должна быть написана на языке, который имеется на всех системах, на которые планируется в дальнейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой. Во-вторых, важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.
Принцип совместимости Одним из аспектов совместимости является способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной операционной системы, а также для другой аппаратной платформы. Необходимо различать совместимость на двоичном уровне (достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение в среде другой ОС) и совместимость на уровне исходных текстов (требует наличия соответствующего компилятора в составе программного обеспечения компьютера, совместимости на уровне библиотек и системных вызовов). При этом необходима перекомпиляция имеющихся исходных текстов в новый исполняемый модуль. Одним из средств обеспечения совместимости программных и пользовательских интерфейсов является соответствие стандартам POSIX, использование которого позволяет создавать программы в стиле UNIX, легко переносимых впоследствии из одной системы в другую.
Принцип открытости и наращиваемости Открытая ОС доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) ОС позволяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т. д. Другими словами, необходимо, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы. Прекрасные возможности для расширения предоставляет подход к структурированию ОС по типу клиент—сервер с использованием микроядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программы и набора непривилегированных услуг — «серверов». Основная часть ОС остается неизменной и в то же время могут быть добавлены новые серверы или улучшены старые. Этот принцип иногда трактуют как расширяемость системы. К открытым ОС, прежде всего, следует отнести UNIX-системы и, естественно, ОС Linux.
Принцип генерации Основное положение этого принципа определяет такой способ исходного представления центральной системной управляющей программы ОС (ее ядра и основных компонентов, которые должны постоянно находиться в оперативной памяти), который позволял бы настраивать эту системную супервизорную часть, исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач. Эта процедура проводится редко, перед достаточно протяженным периодом эксплуатации ОС. Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка для этой программы, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерации получается полная версия ОС. Сгенерированная версия ОС представляет собой совокупность системных наборов модулей и данных. Упомянутый раньше принцип модульности положительно проявляется при генерации ОС. Он существенно упрощает настройку ОС на требуемую конфигурацию вычислительной системы. В наши дни при использовании персональных компьютеров с принципом генерируемости ОС можно столкнуться разве что только при работе с Linux. В этой UNIX-системе имеется возможность не только использовать какое-либо готовое ядро ОС, но и самому сгенерировать (скомпилировать) такое ядро, которое будет оптимальным для данного конкретного персонального компьютера и решаемых на нем задач. В остальных современных распространенных ОС для персональных компьютеров конфигурирование ОС под соответствующий состав оборудования осуществляется на этапе инсталляции, а потом состав драйверов и изменение некоторых параметров ОС может быть осуществлено посредством редактирования конфигурационного файла.
Принцип функциональной избыточности Этот принцип учитывает возможность проведения одной и той же работы различными средствами. В состав ОС может входить несколько типов мониторов (модулей супервизора, управляющих тем или другим видом ресурса), различные средства организации коммуникаций между вычислительными процессами. Наличие нескольких типов мониторов, нескольких систем управления файлами позволяет пользователям быстро и наиболее адекватно адаптировать ОС к определенной конфигурации вычислительной системы, обеспечить максимально эффективную загрузку технических средств при решении конкретного класса задач, получить максимальную производительность при решении заданного класса задач.
Принцип обеспечения безопасности вычислений Обеспечение безопасности при выполнении вычислений является желательным свойством для любой многопользовательской системы. Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов (таких, как память). Обеспечение защиты информации от несанкционированного доступа является обязательной функцией сетевых операционных систем.
Принцип функциональной избирательности В ОС выделяется некоторая часть важных модулей, которые должны постоянно находиться в оперативной памяти для более эффективной организации вычислительного процесса. Эту часть в ОС называют ядром, так как это действительно основа системы. При формировании состава ядра требуется учитывать два противоречивых требования. 1) В состав ядра должны войти наиболее часто используемые системные модули. 2) Количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, был бы не слишком большим. Помимо программных модулей, входящих в состав ядра и постоянно располагающихся в оперативной памяти, может быть много других системных программных модулей, которые получают название транзитных. Транзитные программные модули загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями.
ЗАКЛЮЧЕНИЕ Несмотря на тот факт, что в наши дни уже практически никто не разрабатывает операционные системы (естественно, за исключением нескольких известных компаний, специализирующихся на этом направлении, кстати, одном из сложнейших) и все являются пользователями наиболее распространенных систем, вопрос операционных систем является открытым. В ходе настоящей контрольной работы была достигнута цель формирования базового понятия операционной системы, а также рассмотрения базовых принципов построения операционных систем.
Список используемых источников: 1. Операционные системы. Практикум. Учебное пособие. Авторы: Назаров С.В., Гудыно Л.П., Кириченко А.А. ООО «КноРус», 2013. 2. Операционные системы: Учебник для вузов. 2-е изд./ А. В. Гордеев. – СПб.: Питер, 2004. – 416 с.: ил. 3. http://mf.grsu.by/UchProc/livak/en/po/lections/lec_Princ. 4. http://wiki.mvtom.ru/index.php/Основные_принципы_построения_операционных_систем. 5. http://www.isu.kasib.ru/scince/journal/detail.php?ID=1383.