Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Функции операционной системы.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
141 Кб
Скачать
☆

Проблема расширяемости операционной системы

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

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

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

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

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

Проблема совместимости операционной системы

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

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

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

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

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

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

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

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

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

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

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

Задачи операционной системы, в наиболее общем виде, можно разделить на шесть категорий:

Управление процессором

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

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

Управление хранением информации

Интерфейс приложений

Пользовательский интерфейс

Управление процессором

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

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

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

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

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

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

Прерывания – специальные сигналы, отправляемые на центральный процессор аппаратными средствами или программами. Это похоже на то, как если бы во время оживленного собрания какая-то часть компьютера вдруг подняла руку, требуя к себе внимания центрального процессора. Иногда операционная система устанавливает приоритеты процессов таким образом, что прерывания маскируются, то есть операционная система игнорирует прерывания от некоторых источников, чтобы определенная операция была завершена как можно скорее. Существуют некоторые прерывания (например, вызванные состоянием ошибки или проблемами с памятью), которые настолько важны, что их нельзя игнорировать. Эти немаскируемые прерывания (non-maskable interrupts, NMIs) требуют немедленного решения проблемы, несмотря на то, что должны выполняться другие задачи.

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

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

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

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

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

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

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