- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Потоки.
Концепция потока является дополнением к модели процесса и заключается в том, что организуется возможность выполнять в одной и той же среде процесса несколько независимых исполнительных модулей (потоков). При этом все ресурсы процесса (выделенное адресное пространство, открытые файлы, процессорное время) являются общими ресурсами всех потоков процесса. Аналогия: несколько потоков, работающих в одном процессе – аналог нескольких процессов, выполняющихся параллельно на одном компьютере (под управлением одной ос). В случае процессов, они конкурируют за право предоставления ресурсов (памяти, процессора, внешних устройств..). В случае потоков – используют совместно его адресное пространство, открытые файлы и другие ресурсы. Потоки обладают свойствами порождающих их процессов и иногда называются упрощенными процессами. Для описания выполнения нескольких потоков в одном процессе используют термин многопоточность (multithreading).
Каждый поток имеет свой счетчик команд, область сохранения значений регистров, свой стек и др. Поток может считывать и записывать информацию в области оп других потоков в случае необходимости, в отличие от процессов, адресное пространство которых защищено друг от друга.
Для учета состояния потоков ведутся таблицы, основные значения элементов таблицы следующие:
1) Данные процесса:
-адресное пространство
-глобальные переменные
-открытые файлы
-список дочерних процессов
-обработчики сигналов и аварийных ситуаций
-учет используемых ресурсов
-и другие.
2) Данные потока:
-идентификатор потока
-счетчик команд
-значения регистров
-стек
-адрес потока
-содержимое области сохранения
-другие.
Данные процесса используют все потоки процесса, данные потока индивидуальны для каждого потока.
Состояния потока:
1) Выполняемый.
2) Заблокированный.
3) Готовый к выполнению.
Запуск (создание) потоков, как правило, осуществляется из процесса (в Windows – Thread_Create).
Завершение потока, как правило, осуществляется по процедуре выхода или завершения в процессе(Thread_Exit). Как правило, существует несколько опций по управлению запуском и завершение потоков. Опции указываются в API конкретных ОС. Использование потоков позволяет получить следующие преимущества:
1) Исключить блокировку процесса в случае его однопоточного режима. Пример: если текстовый редактор делать в одном потоке, то обработка входной команды и её выполнение может осуществляться с задержкой, которая не позволит обработать следующую введенную команду. Если делать редактор двухпоточным, первый поток без задержки обрабатывает входные команды, формирует очередь выполнения команд для второго потока, который их выполняет (например, заменяет букву "о" на букву "е" во всем документе - первая команда, меняет шрифт - вторая). Если бы был один поток, то обработку следующей команды надо было бы проводить после редактирования.
2) Снизить системные издержки на диспетчирования, ввиду легкости создания и уничтожения потоков, тк с ними не связаны такие операции, как закрытие файлов, освобождение памяти и тп.
3) Повысить эффективность вычислительного процесса в целом, разнесением быстрых вычислений и медленных операций (ввода-вывода) по различным потокам.
4) использовать возможность параллелизма вычислений в случае нескольких процессоров с общей памятью.
п о т о к и
пользовательский
процесс
Ядро
п о т о к и
Ядро
1
2
3
Многопоточность может быть реализована на уровне ядра и на уровне пользовательского приложения. В первом случае наряду с таблицей процессов имеется единая таблица потоков, в которой отслеживаются все потоки в ОС. Во втором случае в пользовательском пространстве каждому процессу строится собственная таблица потоков. Возможна смешанная реализация многопоточности на уровне ядра и пользовательских процессов.
Возможна реализация нескольких потоков одному общему потоку. В этом случае используется понятие домена. Домен – это объект, состоящий из адресного пространства и виртуальных портов, через которые можно передавать и получать сообщения. В рамках одного домена выполняется несколько потоков. Один и тот же поток может переходить из одного домена в другой.
В случае построения ОС по принципу доменов, автономные потоки могут находиться и на различных станциях сети.
