- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •13092012 Лекция 2
- •Алгоритмы планирования
- •Средства взаимодействия и синхронизации процессов
- •Синхронизация процессов
- •20092012 Лекция 3 Взаимоблокировки
- •Ликвидация взаимоблокировок
- •Неделимые транзакции
- •04102012 Лекция 4 Архитектура и управление процессами в ос семейства Windows
- •11102012 Лекция 5 Синхронизация потоков
- •Архитектура и процессы unix
- •Управление процессами
- •Создание новых процессов
- •18102012 Лекция 6 Межпроцессное взаимодействие
- •Файловая система
- •Структуризация файлов
- •25102012 Лекция 7 Адресация доступа к файлам
- •Операции над файлами
- •Обобщенная модель файловой системы
- •Отображаемые в память файлы
- •Современная архитектура файловых систем
- •Файловые системы Windows
- •01112012 Лекция 8 Файловая система fat
- •Файловая система ntfs
- •081112 Лекция 9
- •Файловые системы unix Традиционная фс s5
- •Виртуальная фс vfs (Virtual File System)
- •Монтирование файловых систем vfs
- •15112012 Лекция 10 Управление вводом/выводом
- •Драйверы устройств
- •Система ввода/вывода unix
- •29112012 Лекция 11 Подсистема ввода/вывода Windows
- •06122012 Лекция 12 Основные процедуры драйверов устройств
- •Процедуры обслуживания прерывания isr (interrupt Service Routine)
- •Дерево устройств
- •Диспетчер электропитания
- •13122012 Лекция 13 Основные требования ос
- •Множественные прикладные среды
- •Способы построения множественных прикладных сред
- •Реализация множества прикладных средств в Windows системах
11102012 Лекция 5 Синхронизация потоков
Описатели объектов ядра (Handle) зависимо от конкретного процесса. Существуют способы работы с одними и теми же объектами ядра из разных процессов:
Наследование описателя.
Дублирование описателя с помощью системной функции Duplicate Handel.
Именование объекта ядра. При создании объекта ядра для синхронизации можно задать ему уникальное имя в системе. Для связи между процессами используется:
Разделяемая память, включая возможность преобразования страниц ОП в странице файла на диске и наоборот.
Анонимные каналы. Используются для двустороннего обмена между дочерним и родительским процессами, или между двумя дочерними
Именованные каналы. Двухсторонний обмен между процессами сервера и один или нескольким процессами клиентами. Могут использоваться для обмена данными локальными или по сети.
Сокеты (дейтаграмм, потоков). Представляют собой абстрактный объект для обозначения одного из концов сетевого соединения.
Сообщения
Архитектура и процессы unix
http://www.openspin.org/materials/courses/admin/ch01s03.html
UNIX (UNIX AIX) – многозадачная, многопользовательская система, оперирующая двумя типами базовых объектов: файлы и процессы.
Файлы включают пользовательскую информацию, доступ к устройствам, интерфейсы процессного взаимодействия. Процессы – код данных и программ, выполнение их.
Архитектура системы включает монолитное ядро, системные утилиты, резидентные программы (демоны), пользовательские программы.
Существуют два уровня доступа: системный и пользовательский.
Доступ к структурам ядра осуществляется через файловый интерфейс.
Управление процессами
Дескрипторы всех процессов описываются структурой proc и объединяются в список (таблицу процессов), память для которой динамически выделяется в области ядра. Контекст процессов описывается в структуре user и хранится, непосредственно примыкая к образу процесса и перемещаясь вместе с ним. Обе структуры доступы только программам ядра.
При необходимости выполнить действия в привилегированном режиме программа генерирует системный вызов, и управление передается соответствующей программе ядра. С этого момента процесс считается системный.
Контекст процесса включает его идентификатор (pid), идентификатор родительского процесса (ppid) и данные о состоянии. При завершения процесса его уникальный номер может быть передан другому. Все процессы образуют иерархию, корнем которой является процесс init. Для процессов характерно особое состояние - зомби (zombie). Процесс получает его, если завершился раньше, чем этого ожидал его родитель.
Планирование процессов осуществляется на основе циклической очереди с приоритетом:
На основании значения приоритета определяется возможность процесса прибывать в основной памяти, размер временного кванта процесса и место в общей очереди процессов. Используется система динамически изменяющихся приоритетов. При создании процесса ему приписывается установленный системой статический приоритет, изменяемый при помощи системного вызова nice.
Все процессы с динамическим приоритетом не ниже порового значения участвуют в конкуренции за процессор.
Высокий приоритет начинается от 0 до 39 – приоритеты реального времени
Основная группа – 40-254 – пользовательские приоритеты
Низкий – 255 -> wait.
Приоритеты реального времени являются фиксированными и такие процессы могут быть запущены только root пользователем.
Приоритет потока вычисляется как:
Priority = x_nice + [(x_nice+4)/64 + (CPU penalty)]
x_nice = значение nice + базовый приоритет
если p_nice >60, то x_nice = (p_nice * 2) – 60
Иначе x_nice = p_nice
CPU penalty = CPU usage * R/32 - по умолчанию R=16
Каждый квант времени на выполнении CPU usage увеличивается на единицу.
