Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие ОС и С (преп. Лашин Т.Б.).DOC
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1.28 Mб
Скачать

Вопросы для самоконтроля

  1. Охарактеризуйте ОС MS-DOS.

  2. Назовите основные достоинства ОС UNIX.

  3. В чем основное отличие ОС UNIX от ОС Windows?

Лекция 5. Назначение и основные функции операционных систем (4 часа)

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

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

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

Функции ОС:

1. Управление устройствами (периферийные устройства, подключаемые к компьютеру, – клавиатура, монитор, принтеры, диски).

2. Управление данными (работа с файлами, хотя были времена, когда обращение к данным на магнитных носителях выполнялось путем указания адреса размещения данных на устройстве, а понятия файла не существовало).

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

4. Управление памятью (оперативная память компьютера – это такой ресурс, которого всегда не хватает. В этих условиях разумное планирование использования памяти является важнейшим фактором эффективной работы).

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

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

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

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

  4. контролируем доступ к файлам. При работе с файлами, управление его стороны операционной системы предназначено не только понимание природы устройств ввода/вывода и знание структур данных записанные в файлах. Многопользовательские операционные системы, кроме того, обеспечивают работу механизмов защиты при обращении к файлам;

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

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

  7. учёт использования ресурсов. Хорошая операционная система должна иметь средства учёта использования различных ресурсов и отображение параметров производителя. Эта информация крайне важна для дальнейшего улучшения и настройки система, для повышения производительности.

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

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

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

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

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

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

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

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

К транзитным частям системы относятся:

утилиты – отдельные системные программы, решающие частные задачи, такие как форматирование и проверку диска, поиск данных в файлах, мониторинг (отслеживание) работы системы;

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

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

системный загрузчик – программа, которая при запуске ОС (например, при включении питания) обеспечивает загрузку системы с диска, ее инициализацию и старт;

другие виды программ, в зависимости от конкретной системы.

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

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

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

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

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

Прикладные

Программы

Утилиты

Операционная

система

Аппаратное обеспечение

компьютера

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

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

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

3) загрузка в оперативную память, подлежащие исполнению, программы;

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

5) идентификация программ;

6) обеспечение работы системы управления файлами базы данных, что позволяет резко увеличить эффективность программного обеспечения;

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

8) обеспечение функции по организации и управления всеми операциями ввода и вывода;

9) удовлетворение жёстким ограничениям на время в режиме реального времени;

10) распределение памяти:

а) организация виртуальной памяти;

б) в большинстве современных систем.

11) планирование и диспетчеризация в соответствии с заданием;

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

13) защита одной программы от влияния других программ, обеспечение сохранение данных;

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

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

Вопросы для самоконтроля

  1. Понятие ОС.

  2. Назовите функции ОС.

  3. Что выполняется в операционной среде?

  4. Структура ОС.

  5. Что такое резидентная и транзитная части ОС?

  6. Сервисы ОС. Перечислите их.

  7. Обязанности ОС.

  8. Какие режимы поддерживают современные процессоры?

Лекция 6. Структура ОС

(2 часа)

Архитектура (организация) ВМ:

Другие пользователи

процессы

Примитивы ядра (супервизор)

Выделение процессора

Уровень ядра

Программа ядра

Физический уровень

Прерывания

запуск

Аппаратные средства

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

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

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

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

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

4. Управление устройствами ввода/вывода; Подсистема ввода/вывода состоит из: системы кэширования - буферирования; общего интерфейса драйверов устройств; драйверов специализированных устройств.

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

6. Защита системы; Защита системы предполагает наличие механизма для управления доступом программ, процессов и пользователей к системным и пользовательским ресурсам. Механизм защиты должен:

различать авторизованное и не авторизованное использование;

определить элементы управления, которые будут задействованы;

обеспечить средства реализации.

7. Сетевая поддержка; Распределенная система - набор процессоров, которые не распределяют память или каждый процессор имеет свою локальную память. Процессоры в системе соединены посредством компьютерной сети и обеспечивают пользователям доступ к различным системным ресурсам, позволяющим: увеличить скорость вычислений; увеличить объем доступной информации; повысить надежность

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

Типовые средства аппаратной поддержки операционной системы и её машинно-зависимые компоненты

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

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

· средства трансляции адресов;

· средства переключения процессов;

· система прерываний;

· системный таймер;

· средства защиты областей памяти.

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

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

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

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

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

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

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