Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_СГTУ new v10.doc
Скачиваний:
101
Добавлен:
12.11.2019
Размер:
4.13 Mб
Скачать

Саратовский государственный технический университет

Учебное пособие

ОПЕРАЦИОННЫЕ СИСТЕМЫ

ОС общего

назначения

САРАТОВ 2011

РЕФЕРАТ

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

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

Учебное пособие содержит 236 с.,

Ил. 70 , табл. 14, библиогр.: 33 назв.

Заказ 902/88

Петров Дмитрий Юрьевич

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 5

1. ОСНОВНЫЕ ПОНЯТИЯ В ОПЕРАЦИОННЫХ СИСТЕМАХ 7

1.1. Классификация и функции операционных систем 7

1.2. ОС общего назначения и реального времени 16

1.3. Выполнение команд в вычислительной системе 20

1.4. Прерывания 26

1.5 Архитектуры операционных систем 30

1.6. Управление оперативной памятью вычислительной системы 34

1.7. Общие сведения о процессах и потоках 43

2. ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS 49

2.1. Версии операционной системы Windows 49

2.2. Архитектура операционной системы WINDOWS 53

2.3. Процессы и потоки в Windows 58

2.4. Взаимодействие процессов 63

2.5. Управление потоками в Windows 67

2.6. Файловые системы Windows 71

2.7. Установка и последовательность загрузки Windows 83

2.8. Интерпретатор команд и пакетные файлы 88

2.9. Конфигурирование Windows 93

3. ОПЕРАЦИОННАЯ СИСТЕМА QNX NEUTRINO 102

3.1. Версии операционной системы QNX Neutrino 102

3.2. Архитектура операционной системы QNX Neutrino 107

3.3. Процессы в QNX6 116

3.4. Потоки в QNX6 131

3.5. Управление потоками и процессами в QNX6 146

3.6. Файловые системы QNX 161

3.7. Инсталляция и последовательность загрузки QNX 166

3.8. Интерпретаторы команд и пакетные файлы в QNX 169

3.9. Конфигурирование QNX 173

4. ВИРТУАЛЬНЫЕ МАШИНЫ 176

4.1. Общие сведения о виртуальных машинах 176

4.2. Работа с виртуальной машиной VmWare 180

5. ЗАЩИТА ОТ СБОЕВ И НЕСАНКЦИОНИРОВАННОГО ДОСТУПА 186

5.1. Принципы построения систем безопасности 186

5.2. Безопасность операционной системы WINDOWS 195

6. СЕТЕВЫЕ ВОЗМОЖНОСТИ ОПЕРАЦИОННЫХ СИСТЕМ 205

6.1. Аппратаное обеспечение локальных сетей 205

6.2. Сети Windows 215

6.3. Локальная сеть на основе QNET 221

6.4. Глобальные сети 227

7. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ 233

7.1. Архитектуры многопроцессорных операционных систем 233

7.2. Принципы функционирования SMP 237

7.3. Принципы функционирования кластеров 240

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 244

Введение

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

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

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

Большое внимание уделено принципам управления процессами и потоками в операционных системах Windows NT и QNX Neutrino, диспетчеризации и синхронизации протоков, межпроцессному взаимодействию и принципам управления памятью. Рассмотрение особенностей виртуальных машин, многопроцессорных режимов работы вычислительных систем, организации локальных сетей и принципы построения и защиты от сбоев и несанкционированного доступа позволяет студентам понять функциональные возможности и перспективы развития операционных систем выполнено.

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

Учебное пособие разработано на основе курса лекций по дисциплине «Операционные системы» читаемой на кафедре «Информационные системы и технологии» Саратовского государственного аграрного университета для бакалавров направления «Информатика и вычислительная техника» 230700.62.

В предлагаемом учебном пособии найдено эффективное соотношение теоретического материала и конкретных практических рекомендаций по применению операционных систем в организационно-технических системах.

1. Основные понятия в операционных системах

1.1. Классификация и функции операционных систем

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

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

Вычислительные системы состоят из аппаратного и программного обеспечения. Программное состоит из системного и прикладного. Системное программное обеспечение - программы и комплексы программ, являющиеся общими для всех, кто использует совместно технические средства компьютера и применяемые как для разработки новых программ, так и для организации выполнения существующих программ [2]. В этом смысле системное программное обеспечение может быть разделено на 5 групп (рис.1):

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

  2. системы программирования;

  3. утилиты (специальные системные программы, с помощью которых обслуживается сама ОС);

  4. интерфейсные оболочки для взаимодействия с пользователем;

  5. системы управления файлами

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

Рис. 1. Структура системного программного обеспечения

Наиболее общей является следующая классификация ОС:

  1. однозадачные (однопрограммные) (MS-DOS) и многозадачные (QNX, Windows);

  2. однопользовательские (Windows) и многопользовательские (один центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами (UNIX));

  3. однопроцессорные (Windows 98) и многопроцессорные (Windows NT, Linux);

  4. общего назначения (Windows) и реального времени (QNX Neutrino, LynxOS-178).

ОС общего назначения ‑ системы, где время реализации функций не критично и не определяет качества функционирования ВС. В ОС жёсткого реального времени (QNX Neutrino) невыполнение тех или иных функций за определённый промежуток времени приводит к отказу всей ВС. ОС мягкого реального времени близки к ОС общего назначения, но в оценке их качества функционирования фигурирует время выполнения функций, но их несвоевременное выполнение не приводит к отказу ВС (Linux).

На рис.2. представлено распределение наиболее известных ОС в пространстве категорий:

  1. максимально эффективное использование ВС при ограниченном удобстве пользователя (ОС жесткого реального времени),

  2. максимальное удобство пользователя при не эффективном использовании ВС (ОС общего назначения),

  3. возможность адаптации ОС к ограниченным аппаратным средствам ВС (встраиваемость ОС)

ОС общего

назначения

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

Выделяют следующие основные функции операционных систем [2]:

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

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

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

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

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

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

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

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

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

  10. распределение оперативной памяти и организация виртуальной памяти;

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

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

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

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

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

  16. обеспечение сетевых функций.

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

Параллельное существование терминов «ОС» и «операционная среда» вызвано тем, что ОС может поддерживать несколько операционных сред. Например, ОС Windows XP может выполнять следующие программы:

  1. Родные программы, созданные с помощью 32-битного программного интерфейса этой ОС;

  2. Родные программы, созданные с помощью 64-битного программного интерфейса этой ОС;

  3. 16-битные приложения для MS-DOS;

  4. 16-битные приложения для Windows 3x.

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

  1. командная строка;

  2. файловый менеджер Midnight commander ‑ аналог Norton commander;

  3. графический интерфейс – X-Windows.

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

С хема состояний задачи в ВС показана на рис.3. ВП могут быть в активном состоянии, участвуя в конкуренции за ресурсы, и в пассивном, не участвуя в нем [2].

Рис.3. Схема состояния задачи в вычислительной системе

Активное состояние: выполнение – все затребованные ресурсы выделены, в каждый момент времени находится только один процесс (в компьютере с одним процессором); готовность и выполнение – все ресурсы предоставлены; блокирование (ожидание) – не все ресурсы предоставлены или не завершены операции ввода-вывода.

Суть многозадачности заключается в том, что пока один вычислительный процесс ожидает завершения очередной операции ввода-вывода (IO), другой вычислительный процесс может быть запущен на выполнение в процессоре (рис.4) [3].

Рис.4. Пример однозадачного и многозадачного исполнения ВП

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

В современной ОС выделяют уровни [3]:

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

2 уровень: набор команд (инструкций) процессора; в число операций, выполняемых на этом уровне входят те, которые допускаются набором команд машинного языка (add, sub, mov, jmp).

3 уровень: содержит концепцию процедуры (подпрограмму), а так же операции вызова и возврата (call, push, pop).

4 уровень: уровень прерывания, который заставляет процессор сохранить текущий контекст и выполнить подпрограмму обработку прерывания.

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

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

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

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

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

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

9 уровень: обеспечивает долгосрочное хранение файлов, на этом уровне данные, хранящиеся на вспомогательных ЗУ рассматриваются как абстрактные объекты переменной длинны, в противоположность аппаратно-зависимому рассмотрению вторичной памяти, как набора дорожек, секторов и блоков фиксированного размера присущему 6 уровню.

10 уровень: предоставляет доступ к внешним устройствам с помощью стандартных интерфейсов.

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

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

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