Загрузка...

Конспект лекций по ОС.


Операционные системы
1. Понятие операционных систем
2. Прерывания
3. Виды ресурсов
4. Диаграммы состояния процессов
5. Классифицирование операционной системы

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

Операционная система рассматривается как расширенная и как система управления ресурсами. Управление ресурсами включает решение 2-х общих задач:
1. Планирование ресурсов
2. Отслеживание состояния ресурсов

Основные функции:
1. Прием от пользователя заданий и команд и их обработка
2. Загрузка в оперативную память, подлежащих управлению программ.
3. Распределение памяти
4. Запуск программ
5. Идентификация всех программ и данных
6. Прием и исполнение различных запросов от выполняющихся приложений. Обращение через API
7. Обслуживание операций ввода/вывода
8. Обеспечение работы СУФ и СУБД
9. Мультипрограммирование
10. Планирование и диспетчеризация программ
11. Защита одной программы от влияние другой.
12. Аутентификация и авторизация пользователя

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

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

Виды ресурсов:
1. Процессор (процессорное время)
2. Оперативная память
3. Доступ к внешней памяти.
4. Периферийные устройства.
5. Программный модуль
5.1 Однократно используемый
5.2 Повторно, многократно используемый
5.2.1 Непривилегированные
5.2.2 Привилегированные
5.2.3 Реентерабельный
6. Данные (информационные ресурсы)

Диаграмма состояний процессов

Основные состояние:
1. Выполнение — процесс обладает всеми необходимыми ресурсами и непосредственно выполняется ЦП.
2. Ожидание — процесс заблокирован, он не может выполняться по своим внутренним причинам, так как ждет осуществление некоторого события.
3. Готовность — процесс заблокирован, но в связи с внешними, по отношению к нему, обстоятельствам. То есть имеет все ресурсы, кроме ЦП.

Классификация операционных систем:
1. По количеству пользователей, имеющих возможность одновременно работать с ОС.
— Однопользовательские (MS-DOS)
— Многопользовательские (UNIX, LINUX, Windows)
2. По механизму обеспечения доступа
— Пакетные (ОС 360)
— Интерактивные (Linux, Unix,Windows)
— Реального времени (QNX)
3. По количеству одновременно решаемых задач
— Однозадачные (MS-DOS)
— Многозадачные (Unix> Linux, Windows)
4. По функциональности
— Общего назначения
— Специализированные
5. По возможности обслуживания разное количество процессов:
— Однопроцессорные
— С поддержкой многопроцессорности
— С поддержкой распределенных вычислений

Сферы применение ОС:
1. Суперкомпьютеры (Unix, Linux, Windows HPC Server 2008)
2. Mainframe (Unix, OS390)
3. Серверы (Unix, Windows MS)
4. персональные компьютеры (Mac OS, Windows, Unix, Linux)
5. Наладонные компьютеры (Windows, Palm)
6. Встраиваемые системы (Unix, Java)
7. Системы реального времени (QNX)

Наиболее распространенные дисциплины диспетчеризации:
1. FCFS
2. SJM – (рус.) следующим выполняется самое короткое задание.
3. SRT – (рус.) следующим будет выполняться задание, которому меньше всего осталось выполнятся на ЦП.
4. RR – карусельная диспетчеризация. Каждая задача получает квант времени ЦП, после окончания кванта ЦП передается следующей задаче.

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

1. Загрузка ЦП.
2. Пропускная способность ЦП.
3. Время оборота. (Время от попадания во входную очередь до завершения)
4. Время ожидания. (Суммарное время нахождения процесса в очереди готовых).
5. Время отклика. (Время от момента попадания процесса во входную очередь до момента 1-го обращения)

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

1. На низком уровне
а. Блокирующие элементы
б. Проверка и установка
в. Аппарат системы событий (операции Wait и Sigmal)
г. Семафоры дэйкстры (Примитивы П и В)

2. На высоком уровне:
а) Мониторы

Нити (трэд) — мультипрограммирование современных ос организуется на уровне нитей (ветвь процесса) задача оформлена в виде нескольких нитей в рамках одного процесса может быть выполнена быстрее за счет псевдо параллельного выполнения ее отдельных частей. Нити, относящиеся к одному процессу, не на столько изолированны друг от друга как процессы. Поэтому между ними легче организовать тесное взаимодействие. Нити как и процессы могут порождать нити — потомки и переходить из состояния в состояние (выполнение, ожидание, готовность). Каждая нить выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Нити разделяют ЦП также как и процессы, но различные нити одного процесса имеют одно и тоже адресное пространство. То есть они разделяют одни и те же глобальные переменные и между нитями нет полной защиты. Кроме разделения адресного пространства нить разделяют набор открытых файлов, таймеров и сигналов.
Собственное: программный счетчик, стек, регистры, нити — потомки и состояния.

Управление памятью в ОС
Типы адресов:
1. Символьные (идентификаторы переменных программы на алгоритмическом языке)
2. Виртуальные адреса (условные адреса вырабатываемые транслятором)
3. Физические адреса (номера ячеек физической памяти)

Методы распределения памяти:
1. Без использования внешней памяти
1.1 Распределение памяти с фиксированными разделами
1.2 Распределение памяти с динамическими разделами
1.3 Распределение памяти с перемещаемыми разделами
2. С использованием внешней памяти
2.1 Страничное распределение
2.2 Сегментное распределение
2.3 Сегментно-страничное распределение

Стратегии управления страничной памятью:
1. Стратегия выборки – в какой момент следует переписать страницу и внешней памяти в оперативную.
2. Стратегии размещения – в какой участок ОП поместить поступающую страницу.
3. Стратегии замещения – какую страницу вытолкнуть во внешнюю память, чтобы освободить оперативную память.
Алгоритмы работы со страницами:
1. Алгоритм FIFO – первый пришел, первый ушел.
2. Алгоритм LRU – выталкивание дольше всего не использующейся страницы.
3. Алгоритм NFU – выталкивание реже всего не использующейся страницы.

Иерархия Запоминающих устройств:

Регистры
Сверхоперативное ЗУ
Кэш
Оперативная память
Кэш
Внешняя память

Управление вводом-выводом
Устройства ввода-вывода делятся на блок-ориентированные устройства (диск) и байт-ориентированные устройства (не адресуемы и не позволяют производить операцию поиска. Они генерируют или потребляют последовательность байтов. Например: сетевой адаптер)
Кроме этого существуют устройства не относящиеся ни к 1, ни к 2. Например: системные часы.
Организация ПО ввода вывода
Основная идея состоит в разбиении ПО на несколько уровней, причем нижние уровни обеспечивают экранирование особенностей аппаратуры от верхних, а те обеспечивают удобный интерфейс пользователю.
ПО ввода вывода делят на 4 слоя:
1. Обработка прерываний
2. Драйверы устройств
3. Независимый от устройств слой операционной системы
4. Пользовательский слой ПО

Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске.
Существует логическая организация файловой системы:
1. Одноуровневая
2. Иерархическая – древовидная
3. Сетевая
Физическая организация файлов системы:
1. Непрерывное размещение
2. Связанный список блоков
3. Связанный список индексов

Загрузка...