Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ Курс лекций (Карповский В.А.).pdf
Скачиваний:
53
Добавлен:
07.03.2016
Размер:
1.48 Mб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

(ВлГУ)

Институт инновационных технологий

Факультет информационных технологий

Кафедра Информатики и управления в

технических и экономических системах

(УИТЭС)

Доцент Карповский В.А.

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

Курс лекций

по дисциплине «Операционные системы» для студентов ВлГУ, обучающихся понаправлению 230700 – Прикладная информатика

Владимир — 2013 г.

1

Введение

Курс лекций имеет объем 18 часов. Для проведения занятий используется мультимедийный проектор и компьютеры с виртуальной машиной ORACLE VIRTUALBOX, на которой установлены операционные системы Windows 7, Windows Server 2003 или 2008 и

Linux Mint 14.

Виртуальные компьютеры объединены в сеть, что позволяет изучать работу ОС в сети. Все теоретические положения подкрепляются РЕАЛЬНОЙ демонстрацией действий и

результатов на виртуальных машинах.

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

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

2

Лекция 1 Структура операционной системы. Процессы. Системные вызовы.

Уровень ядра и уровень пользователя.

1 Структура операционной системы.

Архитектура операционных систем Windows и Windows Server является модульной. Структурно ее можно разделить на две части.

Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:

имеют доступ к оборудованию;

имеют прямой доступ ко всем видам памяти компьютера;

не выгружаются на жесткий диск в файл подкачки;

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

Вторая часть работает в так называемом режиме пользователя (user mode) Эту часть

составляют защищенные подсистемы ОС. Особенности процессов пользовательского режима:

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

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

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

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

3

Защищенные подсистемы.

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

В Windows два типа защищенных подсистем.

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

предоставление приложениям стандартного программного интерфейса к функциям ОС;

реализация графического пользовательского интерфейса;

управление пользовательским вводом/выводом.

К подсистемам среды относятся также подсистемы POSIX и OS/2.

Внутренние подсистемы. К этому типу относятся п

одсистемы, выполняющие

важные функции ОС. Вот основные.

 

4

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

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

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

Исполнительная система и уровень абстрагирования от оборудования.

В состав исполнительной системы входят следующие элементы.

1.Справочный монитор защиты (Security Reference Monitor, SRM). Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит доступа к ним.

2.Диспетчер процессов (Process Manager). Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.

3.Диспетчер межпроцессного взаимодействия (Interprocess Communication Manager, IPC Manager). Обеспечивает взаимодействие между подсистемами режима пользователя и исполнительной подсистемы.

4.Диспетчер виртуальной памяти (Virtual memory manager, VMM). Реализует виртуальную память - схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов.

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

6.Подсистема ввода/вывода (I/O Subsystem). Состоит из группы компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства. Подробнее подсистема ввода/вывода рассматривается в следующих разделах.

7.Диспетчер объектов (Object manager). Создает, поддерживает и уничтожает объекты исполнительной системы Windows - абстрактные типы данных, представляющие

5

системные ресурсы.

8.Диспетчер электропитания (Advanced Configuration and Power Interface Manager, ACPI-manager). Управляет электропитанием устройств, координирует запросы устройств, связанные с изменением режима электропитания.

9.Диспетчер Plug and Play (PnP-manager). Обеспечивает распознавание PnPустройств после процесса загрузки ОС, управляет их драйверами, предоставляет интерфейс средствам пользовательского режима для поиска устройств, их установки и удаления, а также остановки и возобновления их работы.

10.Диспетчер окон и интерфейс графических устройств (Graphic Device Interface, GDI). Управляет отображением окон, обеспечивает прием ввода от клавиатуры и мыши, распределяя информацию приложениям.

Компоненты исполнительной системы реализованы как независимые от аппаратной платформы модули. Это обеспечивается наличием уровня абстрагирования от оборудования

иделает ОС максимально переносимой.

Уровень абстрагирования от оборудования (Hardware Abstract Level, HAL). Представляет собой программную прослойку между исполнительной системой Windows и аппаратной платформой, на которой работает ОС. HAL скрывает аппаратно-зависимые детали, такие как интерфейсы ввода/вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того чтобы обращаться к аппаратуре непосредственно, исполнительная система Windows вызывает функции HAL.

2 Процессы и потоки (нити).

2.1 Процессы 2.1.1 Понятие процесса

Процесс (задача) - программа, находящаяся в режиме выполнения.

Скаждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.

Адресное пространство содержит:

саму программу;

данные к программе;

стек программы.

Скаждым процессом связывается набор регистров, например:

6

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

указатель стека и д.р.

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

Некоторые поля таблицы:

 

 

 

 

 

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

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

Управление файлами

 

 

 

 

 

 

 

 

 

 

Регистры

Указатель

на

текстовый

Корневой каталог

Счетчик команд

сегмент

 

 

Рабочий каталог

Указатель стека

Указатель

на

сегмент

Дескрипторы файла

Состояние процесса

данных

 

 

Идентификатор пользователя

Приоритет

Указатель на сегмент стека

Идентификатор группы

Параметры планирования

 

 

 

 

Идентификатор процесса

 

 

 

 

Родительский процесс

 

 

 

 

Группа процесса

 

 

 

 

Время начала процесса

 

 

 

 

Использованное

 

 

 

 

процессорное время

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1.2 Модель процесса

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

Рассмотрим схему с четырьмя работающими программами.

7

В каждый момент времени активен только один процесс

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

8

2.1.3 Создание процесса

Три основных события, приводящие к созданию процессов (вызов fork):

Загрузка системы

Работающий процесс подает системный вызов на создание процесса

Запрос пользователя на создание процесса

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

В UNIX каждому процессу присваивается идентификатор процесса ( PID - Process IDentifier)

2.1.4 Завершение процесса

Четыре события, приводящие к остановке процесса (вызов exit):

Плановое завершение (окончание выполнения)

Плановый выход по известной ошибке (например, отсутствие файла)

Выход по неисправимой ошибке (ошибка в программе)

Уничтожение другим процессом

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

2.1.5 Иерархия процессов

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

Втаком случае в UNIX существует и прародитель всех процессов - процесс init.

9

Дерево процессов для систем UNIX

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

2.1.6 Состояние процессов

Три состояния процесса:

Выполнение (занимает процессор)

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

Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)

10

Возможные переходы между состояниями.

1.Процесс блокируется, ожидая входных данных

2.Планировщик выбирает другой процесс

3.Планировщик выбирает этот процесс

4.Поступили входные данные

Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.

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

2.2 Потоки (нити, облегченный процесс) 2.2.1 Понятие потока

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

11

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

Сравнение многопоточной системы с однопоточной

2.2.2 Модель потока

Скаждым потоком связывается:

Счетчик выполнения команд

Регистры для текущих переменных

Стек

Состояние

Потоки делят между собой элементы своего процесса:

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

Глобальные переменные

Открытые файлы

Таймеры

Семафоры

Статистическую информацию.

Востальном модель идентична модели процессов.

ВLinux есть поддержка потоков на уровне ядра.

ВLinux есть новый системный вызов clone для создания потоков, отсутствующий во всех остальных версиях системы UNIX.

12

2.2.3 Преимущества использования потоков

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

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

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

2.2.4 Реализация потоков в пространстве пользователя, ядра и смешанное

А - потоки в пространстве пользователя B - потоки в пространстве ядра

В случае А ядро о потоках ничего не знает. Каждому процессу необходима таблица потоков, аналогичная таблице процессов.

Преимущества случая А:

Такую многопоточность можно реализовать на ядре не поддерживающим многопоточность

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

13

Недостатки случая А:

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

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

Сложность реализации

Мультиплексирование потоков пользователя в потоках ядра

2.2.5 Особенности реализации Windows

Используется четыре понятия:

Задание - набор процессов с общими квотами и лимитами

Процесс

Поток

Волокно - облегченный поток, управляемый полностью в пространстве

пользователя Потоки работают в режиме пользователя, но при системных вызовах переключаются в

режим ядра. Из-за переключения в режим ядра и обратно, очень замедляется работа системы. Поэтому было введено понятие волокна. У каждого потока может быть несколько волокон.

14

Лекция 2. ОС рабочих станций и серверов. Рабочие группы и домены. Active Directory. Основные серверы и службы в сети предприятия.

Рабочие группы и домены.

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

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

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

Домен (domain) - это логическое объединение компьютеров в сети, которые совместно используют центральную базу данных каталога. База данных каталога (directory database,) содержит учетные записи пользователя и информацию о политиках безопасности для домена. Эту базу данных называют каталогом, и она представляет собой часть базы данных службы

Active Directory - службы каталогов Windows.

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

Вы можете назначить контроллером домена только компьютер на одной из платформ Microsoft серии Windows Server 2000/2003/2008. Если все компьютеры в сети работают на платформе Windows XP/Vista/7/8, то единственным доступным видом сети будет рабочая группа. В дальнейшем в конспекте лекций для краткости все серверные версии будем называть Windows Server, а операционные системы рабочих станций Windows XP/Vista/7/8

— Windows для рабочих станций.

Домен не имеет отношения к местоположению в сети или определенному типу сетевой конфигурации. Компьютеры в домене могут располагаться рядом в небольшой локальной сети (LAN) или находиться в различных уголках мира. Они могут связываться друг с другом по любому физическому соединению, включая телефонные линии, линии ISDN, оптоволоконные линии, линии Ethernet, кольцевые сети с маркерным доступом (token ring), подключение с ретрансляцией кадров (frame relay), спутниковую связь и выделенные

15

линии.

Достоинства домена очевидны:

1.Централизованное администрирование, потому что вся информация о пользователях хранится в одном месте;

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

3.Масштабируемость, что позволяет создавать очень большие сети.

Типы компьютеров, которые включает типичный домен Windows, перечислены

далее.

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

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

3.Клиентские компьютеры на платформе Windows XP/Vista/7/8 или любой другой операционной системе Microsoft, не используемой как сервер. Клиентские компьютеры - это настольные системы пользователей, которые предоставляют пользователям доступ к ресурсам домена.

Рабочая группа (workgroup) Windows - логическое объединение сетевых компьютеров, которые совместно используют такие общие ресурсы, как файлы и принтеры.

Рабочую группу также называют одноранговой сетью (peer-to-peer network), потому что все компьютеры в ней могут использовать общие ресурсы на равных условиях, т. е. без выделенного сервера.

16

Каждый компьютер в рабочей группе обслуживает только свою базу данных политики безопасности локального компьютера (local security database). Эта база данных представляет собой перечень учетных записей пользователя и информации о правах доступа к ресурсам на компьютере, где она постоянно находится. Поэтому использование базы данных политики безопасности локального компьютера децентрализует администрирование учетных записей пользователей и политики доступа к ресурсам в рабочей группе.

Примечание: В рабочую группу наряду с компьютерами с клиентской ОС, могут входить компьютеры на таких платформах Microsoft, как Windows Server, если, конечно, он не настроен как контроллер домена. В рабочей группе компьютер на платформе Windows Server называют изолированным сервером (stand-alone server).

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

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

Рабочая группа имеет следующие преимущества:

1.Она не требует включения в сеть контроллера домена для хранения централизованной информации о политиках безопасности;

2.Она проста в проектировании и эксплуатации. В отличие от домена, не требует крупномасштабного планирования и администрирования;

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

17

Лекция 3 Создание и управление учетными записями пользователей и компьютеров

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

Это имя пользователя и пароль (или другое аналогичное средство аутентификации

— например, биометрические характеристики). Пароль или его аналог, как правило, хранится в зашифрованном или хэшированном виде (в целях его безопасности).

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

Учётная запись может содержать следующие дополнительные анкетные данные о пользователе:

имя;

фамилию;

отчество;

псевдоним (ник);

пол;

национальность;

расовую принадлежность;

вероисповедание

группу крови;

резус-фактор;

возраст;

дату рождения;

адрес электронной почты;

домашний адрес;

рабочий адрес;

нетмейловый адрес;

номер домашнего телефона;

номер рабочего телефона;

номер мобильного телефона;

номер ICQ;

18