
Вопросы к экзамену по курсу «Операционные системы»
Понятие вычислительной системы и её составные части.
Представление о системе
Система – это совокупность элементов (объектов), которые находятся между собой в определенных отношениях и связях и которые образуют определенную целостность, единство какого-либо явления или предмета исследования (system – соединенная из частей; греч.). Основой этого направления явились труды Л. фон Бертоланфи в области биологии (1937 год).
Объект – это первичное, неопределяемое, строго научное понятие.
Любая система однозначно определяется своей структурой (structure – строение; лат.), т.е. основными объектами, связями и отношениями между ними. В зависимости от наличия составляющих объектов системы, их структурных связей и отношений говорят о сложных и простых системах. Понятия сложность – простота относительны также, как и понятия система – элемент. Сложность является интегральной (суммарной) оценкой системы.
Конструктивный объект – это объект, который используется при конструировании (создании) нового объекта.
Субъект – это объект, обладающий интеллектом. Система, образованная их объектов и субъектов, называется интеллектуальной (она обладает интеллектом). Эти системы организуются с участием человека. Системы, которые организуются независимо от человека, называются самоорганизованными. Техническую систему, наделенную свойством интеллекта, называют искусственной интеллектуальной системой. Организованные (устойчивые) системы взаимодействуют друг с другом и с окружающей средой для достижения конкретных целей с помощью программ и функций.
Функция – это внешнее проявление действия какого-либо объекта в системе отношений (function – исполнение, совершение, действие; лат.). Материя всегда существует в виде какой-либо конкретной материальной системы (самоорганизованной или несамоорганизованной). Внутренние связи между объектами одной системы всегда сильнее (устойчивее), чем внешние связи между различными системами и их объектами.
Процесс – это закономерное и последовательное изменение некоторого свойсва объекта (явления) и переход его в другое свойство (явление).
Определение информационной системы
Объекты, между которыми установлены связи и отношения, способствующие возникновению процессов передачи, накопления, хранения и переработки информации (факты, данные, сведения, знания), называются информационными объектами, а процессы, связывающие их,информационными процессами. Информационная система – это совокупность информационных объектов. С помощью информационной системы реализуются все или частично функции связи, управления, саморегулирования и воспроизводства любой материальной системы. Эти функции необходимы для сохранения определенных связей и отношений между объектами (элементами) системы и внешней средой, т.е для обеспечения целостности системы. Информационная система с технической точки зрения – это взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.
Архитектура ЭВМ. Основные виды архитектуры ЭВМ. Основные принципы организации современных вычислительных систем.
Архитектура ЭВМ — концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая методы информации в данные и принципы взаимодействия технических средств и программного обеспечения.
Основные виды архитектуры ЭВМ.
-Основоположником классической архитектуры ЭВМ 1-го и 2-го поколения был Джон фон Нейман, который и сформулировал основные принципы последовательности. К такой группе относятся однопроцессорные системы, в одном случае имеющие одиночный поток данных (SISD), а во втором - множественный поток данных (SIMD). Эти виды архитектуры обусловлены одним векторным потоком команд, при том что самих потоков данных множество.
-Следующая группа, включающая в себя виды архитектуры — MIMD. Представляет собой многопроцессорную систему, имеющую множественный поток команд и такой же поток данных. Данная архитектурная система в основном используется в современных супер-ЭВМ.
- И последние, третьи виды архитектуры — MISD, представляющие одну программу со множеством данных. К сожалению, MISD не имеет практической значимости. Данный вид причисляют не к компьютерной архитектуре, а к форме распараллеливания программ. Он обозначает одновременное исполнение двух и более копий одной программы в различных процессорных модулях с разными данными.
Принцип программного управления.
Автоматическое управление процессом решения задачи (задач) в ВМ (ВС) достигается с помощью принципа программного управления (впервые предложен Дж. фон Нейманом). В настоящее время является основным принципом организации управления в современных ВМ.
По Дж. фон Нейману принцип программного управления основан на следующих основных положениях:
1. информация в ЭВМ кодируется в двоичной форме и разделяется на единицы или элементы информации, называемые словами, разнотипные слова информации различают по способу использования;
2. слова информации размещаются в ячейках памяти и идентифицируются номерами ячеек, называемых адресами слов;
3. командой называется алгоритм представленный в форме последовательности управляющих слов, которые определяют наименование операции (код операции), называются словами информации, участвующими в операции. Алгоритм, представленный в терминах машинных команд, называется программой.
4. выполнение вычислений определенных алгоритмом, сводится к последовательному выполнению команд в порядке, однозначно определяемом программой.
По Нейману решение задачи на ЭВМ сводится к выполнению арифметических и логических операций над исходными данными и промежуточными результатами. При этом данные представляются в двоичном коде. Перед решением определенной задачи на ЭВМ алгоритм решения записывается в виде последовательности управляющих слов (команд), т.е. составляется программа решения задачи. Процесс вычислений по данной программе состоит в последовательности выполнения команд.
Каждая команда состоит из 2-х частей: операционной и адресной. В операционной части указывается код операции, который определяет действие ВМ по выполнению какой-либо одной операции. В адресной части указывается, над какими словами (операндами) производится действие. При этом в адресной части указывается номер (адрес) ячеек памяти, в которых хранятся используемые в операции слова (данные) и результат вычислений.
Первой выполняется команда, заданная начальным адресом программы. Адрес следующей команды программы либо выбирается последовательно, либо определяется конкретным логическим условием.
Операционная система: назначение, состав, классификация.
Назначение ОС: организация вычислительного процесса в вычислительной системе; рациональное распределение вычислительных ресурсов между отдельными решаемыми задачами; предоставление пользователям многочисленных сервисных средств, облегчающих процесс программирования и отладки задач.
Состав ОС:
-Модуль Назначение.
-Базовый модуль Управляет работой программ и файловой системой, обеспечивает доступ к ней и обмен файлами между периферийными устройствами.
-Командный процессор Расшифровывает и исполняет команды пользователя, поступающие прежде всего через клавиатуру.
-Драйверы устройств Программы для работы с устройствами компьютера. К каждому устройству прилагается инструкция (программа-драйвер), в которой описывается, как с ним должна работать ОС.
-Графический интерфейс Благодаря графическому интерфейсу пользователь вводит команды с помощью мыши, что позволяет ему избегать ошибок при формировании текста команд, возникающих при вводе последних с клавиатуры.
-Сервисные программы Программы-утилиты, позволяющие обслуживать диски, выполнять операции с файлами, работать в сетях и т.д.
-Справочная система Позволяет оперативно получать необходимую информацию о функционировании ОС в целом, так и о работе ее отдельных модулей.
Классификация ОС:
Классификация операционных систем - классификация (от лат. classis - разряд, класс и facio - делаю, раскладываю), операционная система (ОС) - это набор программ, управляющий работой компьютера, других программ, обеспечивающий взаимодействие с пользователем. Единой классификации операционных систем в настоящее время не существует. В зависимости от разных критериев все OС можно разделить на классы.
Наиболее важными из них являются:
* Client / Server;
* бесплатные / платные;
* версия оригинальная / локализованная;
* интерфейс Text Mode / Graphic Mode
* архитектура 16-bit / 32-bit / 64-bit;
* объем большой / маленький;
* версия сетевая / псевдо-сетевая & локальная;
* память процесса с защитой / без защиты;
* загрузка программы экономная / не экономная;
* однозадачные / многозадачные;
* однопользовательские / многопользовательские;
* стабильная / нестабильная;
* virus friendly / no virus friendly.
Операционная система как виртуальная машина.
Назначение и функции операционной системы
Сегодня существует большое количество разных типов операционных систем, отличающихся областями применения, аппаратными платформами и методами реализации. Естественно, это обуславливает и значительные функциональные различия этих ОС. Даже у конкретной операционной системы набор выполняемых функций зачастую определить не так просто - та функция, которая сегодня выполняется внешним по отношению к ОС компонентом, завтра может стать ее неотъемлемой частью, и наоборот. Поэтому при изучении операционных систем очень важно из всего многообразия выделить те функции, которые присущи всем операционным системам как классу продуктов.
Операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций:
· предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать;
· повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Операционная система как система управления ресурсами.
Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. Не смотря на это довольно трудно дать определение операционной системе. Зачастую это связано с тем, что операционная система выполняет две по существу мало связанные функции.
1. Обеспечение пользователю удобств по средствам предоставления для него расширенной машины
2. Повышение эффективности использования компьютера путем рационального управления его ресурсами.
Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода.
Например для организации чтения блока данных с гибкого диска необходимо использовать 16 различных команд, каждая из которых требует 13 параметров, таких например как номер блока на диске, номер сектора на дорожке и т.п.
Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые очевидно надо анализировать, даже если не входить в курс реальных проблем ввода-вывода. Ясно, что найдется немного желающих непосредственно работать с этими операциями.
Пользователю желательно представлять себе диск в виде некоторого набора файлов, каждый из которых имеет своё имя. Работа с таким файлом проста и заключается в его открытии, выполнении чтения или записи и закрытия файлов.
Программа, которая скрывает от пользователя все реалии аппаратуры и предоставляет возможность простого и удобного просмотра указываемых файлов, чтения или записи – это и есть операционная система.
Точно также операционная система берет на себя другие низкоуровневые проблемы, как то управление оперативной памятью, обработка прерываний и т.д.
В каждом случае та абстрактная, воображаемая машина, с которой благодаря операционной системе теперь может иметь дело пользователь гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины. С этой точки зрения функции операционной системы являются предоставление пользователю некоторой расширенной или виртуальной машины, с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.
Идея о том, что операционная система прежде всего система, обеспечивающая удобный интерфейс пользователям соответствует рассмотрению сверху вниз. Другой взгляд снизу вверх дает представление об операционной системе как о некотором механизме, управляющим всеми частями сложной системы.
Современные вычислительные системы состоят из громадного числа разнообразных устройств и тем самым формируют второй подход, где функцией операционной системы является распределение процессов памяти других устройств и данных между процессами, конкурирующими за эти ресурсы. Операционная система должна управлять всеми ресурсами вычислительной машины, т.о. что бы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы. Управление ресурсами включает в себя решение двух, независящих от типа ресурсов задач.
1. Планирование ресурсов. Определение кому, когда, а для делимых ресурсов и в каком количестве нужно выделить данный ресурс.
2. Отслеживание состояния ресурсов. Поддержание оперативной информации о занятости ресурса, а для делимых ресурсов какое количество уже распределено, а какое свободно. Для решения этих общих задач разные ОС используют различные алгоритмы, что в конечном счете и определяет их обмен в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс.
Функциональные компоненты операционной системы. Управление процессами.
Ядро и вспомогательные модули ОС
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы: ядро - модули, выполняющие основные функции ОС; модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. Ядро составляет сердцевину операционной системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций.
В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка станиц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами - системными вызовами - для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т. д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования - API.
Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.
Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Такие вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
утилиты - программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;
системные обрабатывающие программы - текстовые или графические редакторы, компиляторы, компоновщики, отладчики;
программы предоставления пользователю дополнительных услуг - специальный вариант пользовательского интерфейса, калькулятор и даже игры;
библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.
Как и обычные приложения, для выполнения своих задач утилиты, обрабатывающие программы и библиотеки ОС, обращаются к функциям ядра посредством системных вызовов.
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.
Управление процессами
Функции операционной системы автономного компьютера обычно группируются либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами. Наиболее важными подсистемами управления ресурсами являются подсистемы управления процессами, памятью, файлами и внешними устройствами, а подсистемами, общими для всех ресурсов, являются подсистемы пользовательского интерфейса, защиты данных и администрирования. Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры, которые содержат данные о потребностях процесса в ресурсах вычислительной системы, а также о фактически выделенных ему ресурсах. Таким образом, процесс можно также определить как некоторую заявку на потребление системных ресурсов. В мультипрограммной операционной системе одновременно может существовать несколько процессов. Часть процессов порождается по инициативе пользователей и их приложений, такие процессы обычно называют пользовательскими. Другие процессы, называемые системными, инициализируются самой операционной системой для выполнения своих функций. Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством. Говорят, что каждый процесс работает в своем адресном пространстве, имея в виду защиту адресных пространств, осуществляемую ОС. Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т. д. Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например разрешать доступ к некоторой области памяти нескольким процессам. На протяжении периода существования процесса его выполнение может быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды идентифицируется состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т. д. Эта информация называется контекстом прогресса. Говорят, что при смене процесса происходит переключение контекстов. Таким образом, подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами.
Функциональные компоненты операционной системы. Управление памятью.