Главная страница
Навигация по странице:

  • Process Control Block и контекст процесса

  • Разблокирование процесса

  • Процесс 1 Процесс 2 Ожидание

  • Обработка прерывания Готовность

  • Пример цепочки операций Уровни планирования процессов

  • Желаемые свойства алгоритмов планирования

  • Вытесняющее и невытесняющее планирование

  • Вынужденное принятие решения

  • Алгоритмы планирования

  • RR с квантом времени 8 RR с квантом времени 16 RR с квантом времени 32 FCFS

  • (Multilevel Feedback Queue)

  • - количество очередей в состоянии готовность

  • Категории средств обмена информацией

  • Активности и атомарные операции

  • Лекция3-2017. Процессы и их поддержка в операционной системе Понятие процесса Уточнение терминологии


    Скачать 4.26 Mb.
    НазваниеПроцессы и их поддержка в операционной системе Понятие процесса Уточнение терминологии
    Дата22.09.2022
    Размер4.26 Mb.
    Формат файлаppt
    Имя файлаЛекция3-2017.ppt
    ТипПрограмма
    #689908

    Процессы и их поддержка в операционной системе

    Понятие процесса Уточнение терминологии


    Термин «программа»
    Термин «задание»
    Термин «процесс»


    – не может использоваться для описания происходящего внутри ОС.


    – не может использоваться для описания происходящего внутри ОС.


    Для статических объектов


    Для динамических объектов

    Понятие процесса Процесс и программа


    Термин «процесс» характеризует совокупность
      набора исполняющихся команд ассоциированных с ним ресурсов текущего момента его выполнения

      Процесс ≠ программа, которая исполняется:

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


    находящуюся под управлением ОС

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


    допуск к планированию


    процесс не исполняется


    исполнение


    вход


    выход


    приостановка


    ожидание


    готовность


    выбран для исполнения


    ожидание события


    прерывание


    событие произошло


    рождение


    закончил исполнение


    завершение работы

    Набор операций


    создание процесса – завершение процесса запуск процесса – приостановка процесса блокирование процесса – разблокирование процесса
    (изменение приоритета)


    одноразовые


    многоразовые

    Process Control Block и контекст процесса


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


    Регистровый контекст


    Системный контекст


    PCB


    Код и данные в адресном пространстве


    Пользовательский контекст


    Контекст процесса


    Процесс 1


    Процесс 2


    Процесс 12


    Процесс 255


    Процесс 3


    Процесс 14


    Процесс 15


    Процесс 128


    Процесс 4


    Процесс 23


    Процесс 192

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


    Порождение нового PCB с состоянием процесса рождение
    Присвоение идентификационного номера
    Выделение ресурсов
    Занесение в адресное пространство кода и установка значения программного счетчика
    Окончание заполнения PCB
    Изменение состояния процесса на готовность


    из ресурсов родителя


    из ресурсов ОС


    дубликат родителя


    из файла

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


    Изменение состояния процесса на закончил исполнение
    Освобождение ресурсов
    Очистка соответствующих элементов в PCB
    Сохранение в PCB информации о причинах завершения


    Процесс 1


    Процесс 2


    Процесс 12


    Процесс 255


    Процесс 3


    Процесс 14


    Процесс 15


    Процесс 128


    Процесс 4


    Процесс 23


    Процесс 192


    (Parent – 255)


    ?

    Запуск процесса


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

    Приостановка процесса


    Автоматическое сохранение программного счетчика и части регистров (работа hardware)
    Передача управления по специальному адресу (работа hardware)
    Сохранение динамической части регистрового и системного контекстов в PCB
    Изменение состояния процесса на готовность
    Обработка прерывания

    Блокирование процесса


    Обработка системного вызова
    Сохранение контекста процесса в PCB
    Перевод процесса в состояние ожидание

    Разблокирование процесса


    Уточнение того, какое именно событие произошло
    Проверка наличия процесса, ожидающего этого события
    Перевод ожидающего процесса в состояние готовность
    Обработка произошедшего события


    Процесс 1


    Процесс 2


    Ожидание


    Исполнение


    Прерывание


    Выполнение кода пользователя


    Выполнение кода ОС


    Работа hardware


    Сохранение контекста


    Обработка прерывания


    Готовность


    Исполнение


    Готовность


    Планирование


    Работа hardware


    Выполнение кода ОС


    Выполнение кода пользователя


    Восстановление контекста


    Пример цепочки операций

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


    Долгосрочное планирование – планирование заданий.
    Среднесрочное планирование – swapping.
    Краткосрочное планирование – планирование использования процессора.

    Цели планирования


    Справедливость
    Эффективность
    Сокращение полного времени выполнения (turnaround time)
    Сокращение времени ожидания (waiting time)
    Сокращение времени отклика (response time)

    Желаемые свойства алгоритмов планирования


    Предсказуемость
    Минимизация накладных расходов.
    Равномерность загрузки вычислительной системы.
    Масштабируемость.

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


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


    статические


    динамические

    CPU burst и I/O burst


    Важные динамические параметры процесса


    a=1
    b=2
    read c
    Ожидание окончания ввода
    a=a+c∗b
    print a
    Ожидание окончания вывода


    CPU burst


    CPU burst


    I/O burst


    I/O burst

    Вытесняющее и невытесняющее планирование


    Перевод процесса из состояния исполнение в состояние закончил исполнение
    Перевод процесса из состояния исполнение в состояние ожидание
    Принятие только вынужденных решений – невытесняющее планирование
    Перевод процесса из состояния исполнение в состояние готовность
    Перевод процесса из состояния ожидание в состояние готовность
    Принятие вынужденных и невынужденных решений –вытесняющее планирование


    Вынужденное принятие решения


    Невынужденное принятие решения

    Алгоритмы планирования


    Процессы


    P0


    P1


    P2


    Продолжительность CPU burst


    13


    4


    1


    FCFS (First Come – First Served)


    t


    18


    17


    13


    0


    P0


    P1


    P2


    исполнение


    готовность


    готовность


    исполнение


    исполнение


    Процессы


    P2


    P1


    P0


    Продолжительность CPU burst


    1


    4


    13


    исполнение


    готовность


    готовность


    1


    исполнение


    5


    исполнение


    18

    Алгоритмы планирования


    RR (Round Robin)


    Процесс 1


    Процесс 2


    Процесс 3


    Процесс 4


    готовность


    готовность


    готовность


    исполнение


    Процессор


    Процесс 3


    Процесс 3


    Процесс 4


    исполнение


    готовность


    готовность


    готовность


    Процесс 1


    Процесс 2


    готовность


    Процесс 4


    готовность


    Процесс 2


    исполнение


    готовность

    Алгоритмы планирования


    RR (Round Robin)


    Процесс 1


    Процесс 3


    готовность


    готовность


    готовность


    исполнение


    Процессор


    Процесс 3


    исполнение


    готовность


    готовность


    готовность


    Процесс 4


    Процесс 3


    исполнение


    готовность


    Процесс 4


    готовность


    Процесс 3


    Процесс 1


    Процесс 2


    Процесс 1


    Процесс 2

    Алгоритмы планирования


    Остаток времени CPU burst <= кванта времени:
      процесс освобождает процессор до истечения кванта;
      на исполнение выбираем новый процесс из начала очереди готовых;

      Остаток времени CPU burst >= кванта времени:

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


    RR (Round Robin)

    Алгоритмы планирования


    Процессы


    P0


    P1


    P2


    Продолжительность CPU burst


    13


    4


    1


    RR (Round Robin)


    время


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    P0


    P1


    P2


    Величина кванта времени – 4


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    Г


    Г


    Г


    P0


    P1


    P2


    Очередь готовых


    P0


    исполнение


    P1


    P2


    P0


    P1


    P2


    P0


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    Г


    Г


    Г


    P2


    P0


    И


    Г


    P0


    И


    И


    И


    И


    И


    И


    И


    И


    И

    Алгоритмы планирования


    Процессы


    P0


    P1


    P2


    Продолжительность CPU burst


    13


    4


    1


    время


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    P0


    P1


    P2


    RR (Round Robin)


    Величина кванта времени – 1


    И


    Г


    Г


    P0


    P1


    P2


    Очередь готовых


    P0


    исполнение


    P1


    P2


    P0


    P2


    P0


    P0


    P1


    И


    Г


    Г


    P1


    P2


    P1


    И


    Г


    Г


    P0


    P1


    И


    Г


    P1


    И


    Г


    И


    Г


    И


    Г


    И


    Г


    И


    Г


    И


    И


    И


    И


    И


    И


    И


    И


    И

    Алгоритмы планирования


    SJF (Shortest Job First)


    Процессы


    P0


    P1


    P2


    P3


    Продолжительность CPU burst


    5


    3


    7


    1


    невытесняющий


    время


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    P0


    P1


    P2


    P3


    И


    Г


    Г


    Г


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    Г


    И


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    И


    И


    И


    И


    И


    И


    И


    P0


    P1


    P2


    готовность


    P3


    исполнение


    P3


    P1


    P0


    P2

    Алгоритмы планирования


    Процессы


    P0


    P1


    P2


    P3


    Продолжительность CPU burst


    6


    2


    5


    5


    Момент появления в очереди


    0


    2


    6


    0


    SJF (Shortest Job First)


    вытесняющий


    И


    Г


    P0


    P1


    P2


    готовность


    P3


    исполнение


    P3


    P1


    P0


    P2


    время


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    P0


    P1


    P2


    P3


    Г


    И


    И


    И


    Г


    Г


    Г


    Г


    И


    И


    Г


    Г


    И


    Г


    Г


    И


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    И


    И


    И


    И


    И


    И

    Алгоритмы планирования





    τ(n) – величина n-го CPU burst
    T(n+1) – предсказание для n+1-го CPU burst
    α – параметр от 0 до 1
    T(n+1)= α τ(n) + (1 – α)T(n),
    T(0) – произвольно
    Если α = 0, то T(n+1) = T(n) =…= T(0), нет учета последнего поведения
    Если α = 1, то T(n+1) = τ(n), нет учета предыстории


    SJF (Shortest Job First)


    приближение

    Алгоритмы планирования





    В системе разделения времени N пользователей:
    Ti – время нахождения i-го пользователя в системе
    τi – суммарное процессорное время процессов i-го пользователя
    τi ‹‹ Ti /N
    τi ›› Ti /N
    (τi N) / Ti – коэффициент справедливости.
    На исполнение выбираются готовые процессы пользователя с наименьшим коэффициентом справедливости


    Гарантированное планирование


    пользователь обделен


    пользователю благоволят

    Алгоритмы планирования





    Приоритетное планирование


    Каждому процессу процессор выделяется в соответствии с приписанным к нему числовым значением - приоритетом


    Параметры для назначения приоритета бывают:
    -внешние
    -внутренние


    Политика изменения приоритета:
    -статический приоритет
    -динамический приоритет

    Алгоритмы планирования


    Процессы


    P0


    P1


    P2


    P3


    Продолжительность CPU burst


    6


    2


    5


    5


    Момент появления в очереди


    0


    2


    6


    0


    Приоритет


    4


    3


    2


    1


    время


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    11


    12


    13


    14


    15


    16


    17


    18


    P0


    P1


    P2


    P3





    Приоритетное планирование


    невытесняющий


    И


    Г


    P0


    P1


    P2


    готовность


    P3


    исполнение


    P3


    P1


    P0


    P2


    Г


    И


    И


    И


    Г


    Г


    И


    И


    Г


    Г


    И


    Г


    И


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    И


    И


    И


    И


    И


    И


    Г


    Г


    Г


    Г

    Алгоритмы планирования





    P3


    P2


    P1


    P0


    18


    17


    16


    15


    14


    13


    12


    11


    10


    9


    8


    7


    6


    5


    4


    3


    2


    1


    время


    Приоритетное планирование


    вытесняющий


    И


    Г


    P0


    P1


    P2


    готовность


    P3


    исполнение


    P3


    P1


    P0


    P2


    Г


    И


    И


    И


    Г


    Г


    И


    И


    Г


    Г


    И


    Г


    И


    И


    И


    И


    И


    Г


    Г


    Г


    Г


    Г


    И


    И


    И


    И


    И


    И


    Процессы


    P0


    P1


    P2


    P3


    Продолжительность CPU burst


    6


    2


    5


    5


    Момент появления в очереди


    0


    2


    6


    0


    Приоритет


    4


    3


    2


    1


    Г


    Г


    Г


    Г


    Г


    Г


    Г


    Г

    Алгоритмы планирования





    Многоуровневые очереди
    (Multilevel Queue)


    Системные процессы приоритет 0


    Процессы ректората приоритет 1


    Процессы преподавателей приоритет 2


    Фоновые процессы приоритет 3


    Процессы студентов приоритет 4


    FCFS


    RR


    RR


    RR


    RR

    Алгоритмы планирования





    Многоуровневые очереди с обратной связью
    (Multilevel Feedback Queue)


    Очередь 0 – Приоритет 0


    Очередь 1 – Приоритет 1


    Очередь 2 – Приоритет 2


    Очередь 3 – Приоритет 3


    RR с квантом времени 8


    RR с квантом времени 16


    RR с квантом времени 32


    FCFS


    Клавиатурный ввод


    Дисковый I/O

    Алгоритмы планирования





    Многоуровневые очереди с обратной связью
    (Multilevel Feedback Queue)


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

    Основные причины для объединения усилий процессов





    Повышение скорости решения задач
    Совместное использование данных
    Модульная конструкция какой-либо системы
    Для удобства работы пользователя


    Кооперативные или взаимодействующие процессы - это процессы, которые влияют на поведение друг друга путем обмена информацией

    Категории средств обмена информацией





    Сигнальные
    Канальные
    Разделяемая память





    Нужна или не нужна инициализация?
    Способы адресации
      прямая адресация
        симметричная асимметричная

        непрямая или косвенная адресация

    Как устанавливается связь





    Сколько процессов может быть ассоциировано с конкретным средством связи?
    Сколько идентичных средств связи может быть задействовано между двумя процессами?
    Направленность связи
      симплексная связь полудуплексная связь дуплексная связь


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





    Буфера нет (нулевая емкость)
    процесс-передатчик всегда обязан ждать приема
    Буфер конечной емкости процесс-передатчик обязан ждать освобождения места в буфере, если буфер заполнен
    Буфер неограниченной емкости (нереализуемо!)
    процесс-передатчик никогда не ждет


    Особенности канальных средств связи


    Буферизация





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

      Модель сообщений

      на передаваемые данные накладывается определенная структура


    Особенности канальных средств связи


    Модели передачи данных





    Особенности канальных средств связи


    Потоковая модель - pipe


    P0


    P1


    P2


    15 байт


    10 байт


    5 байт


    5 байт


    25 байт


    начало


    конец


    Потоковая модель - FIFO





    Особенности канальных средств связи


    Модель сообщений


    m1


    m2


    m3


    P0


    P1


    P2


    m1


    m1


    m2


    m2


    m3


    m3


    m3


    m2


    m3





    Нет потери информации
    Нет повреждения информации
    Нет нарушения порядка поступления информации
    Не появляется лишняя информация


    Надежность средств связи


    Средство связи считается надежным, если:





    Нужны ли специальные действия для прекращения использования средства связи?
    Как влияет прекращение использования средства связи одним процессом на поведение других участников взаимодействия?


    Как завершается связь





    A=A+B


    C=A+C


    Ожидание ввода A


    Ожидание ввода B


    Ожидание ввода C


    Вывести массив C


    Ожидание вывода C


    Ввести массив C


    Ввести массив B


    Ввести массив A





    Ввести массив A


    Ввести массив C


    A=A+B


    C=A+C


    Ожидание ввода A


    Ввести массив B


    Ожидание ввода B


    Ожидание ввода C


    Процесс 1


    Процесс 2


    Ожидание ввода A и B


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


    Создание общей памяти


    Создание общей памяти


    Переключение контекста


    Переключение контекста


    Переключение контекста


    Переключение контекста


    Вывести массив C


    Ожидание вывода C





    Системный контекст


    Регистровый контекст


    Код Данные вне стека


    Процесс


    Стек


    Системный контекст нити


    Системный контекст


    Код Данные вне стека
    Стек


    Нить исполнения


    Нить исполнения


    Системный контекст нити


    Регистровый контекст


    Стек


    parent


    child





    Процесс


    Готовность


    Готовность


    Исполнение


    Готовность


    Ожидание


    Закончила исполнение


    Готовность


    Исполнение


    Ожидание


    Ожидание


    Ожидание


    Ожидание


    Ожидание


    Закончила исполнение


    Закончила исполнение


    Закончила исполнение


    Закончила исполнение


    Закончила исполнение


    Закончил исполнение





    Ввести массив A


    Ввести массив C


    A=A+B


    C=A+C


    Ожидание ввода A


    Ввести массив B


    Ожидание ввода B


    Ожидание ввода C


    Нить 1


    Нить 2


    Ожидание ввода A и B


    Создание нити 2


    Переключение контекста


    Переключение контекста


    Переключение контекста


    Переключение контекста


    Вывести массив C


    Ожидание вывода C

    Алгоритмы синхронизации

    Активности и атомарные операции





    Отрезать ломтик хлеба
    Отрезать ломтик колбасы
    Намазать хлеб маслом
    Положить колбасу на хлеб


    Активность - последовательное выполнение ряда действий, направленных на достижение определенной цели


    Активность : приготовление бутерброда


    Атомарные или неделимые операции

    Interleaving





    Активность P: a b c


    Активность Q: d e f


    Последовательное выполнение PQ: a b c d e f


    Псевдопараллельное выполнение (режим разделения времени) :


    ?


    a b c d e f


    a b d c e f


    a b d e c f


    a b d e f c


    . . .


    d e f a b c

    Детерминированные и недетерминированные наборы активностей





    Недетерминированный набор – при одинаковых начальных данных возможны разные результаты
    Детерминированный набор – при одинаковых начальных данных всегда один результат


    P:


    x=2


    y=x-1


    Q:


    x=3


    y=x+1


    (x, y):


    (2, 1)


    (3, 4)


    (2, 3)


    (2, 1)

    Условия Бернстайна (Bernstain)





    P:


    1) x=u+v


    2) y=x*w


    Входные переменные R1 = {u, v}
    R2 = {x, w}


    Выходные переменные W1 = {x}
    W2 = {y}


    R(P)={u, v, x, w}


    W(P)={x, y}


    Если:


    W(P) ∩ W(Q) = {ø}


    2) W(P) ∩ R(Q) = {ø}


    3) R(P) ∩ W(Q) = {ø}


    то набор активностей {P, Q} является детерминированным

    Состояние гонки (race condition) и взаимоисключение (mutual exclusion)





    P:


    x=2


    y=x-1


    Q:


    x=3


    z=x+1


    Набор недетерминирован – состязание процессов за использование переменной x


    В недетерминированных наборах всегда встречается race condition (состояние гонки, состояние состязания)


    Избежать недетерминированного поведения при неважности очередности доступа можно с помощью взаимоисключения (mutual exclusion)

    Критическая секция





    Время


    Студент 1


    Студент 2


    Студент 3


    17-05


    17-07


    17-09


    17-11


    17-13


    17-15


    17-17


    17-19


    17-21


    17-23


    17-25


    17-27


    Приходит в комнату


    Приходит в комнату


    Приходит в комнату


    Уходит за пивом


    Уходит за пивом


    Уходит за пивом


    Покупает 6 бут. пива


    Покупает 6 бут. пива


    Покупает 6 бут. пива


    Приносит пиво


    Приносит пиво


    Приносит пиво


    Достает 6 бут. пива


    Приходит в комнату


    Приходит в комнату

    Структура процесса, участвующего во взимодействии





    while (some condition) {


    entry section


    critical section


    exit section


    remainder section


    }





    Требования, предъявляемые к алгоритмам


    Программный алгоритм должен быть программным
    Нет предположений об относительных скоростях выполнения и числе процессоров
    Выполняется условие взаимоисключения (mutual exclusion) для критических участков
    Выполняется условие прогресса (progress)
    Выполняется условие ограниченного ожидания (bound waiting)





    Запрет прерываний


    while (some condition) {


    запретить все прерывания


    critical section


    разрешить все прерывания


    remainder section


    }


    Обычно используется внутри ОС





    Переменная-замок


    while (some condition) {


    while (lock);


    critical section


    lock = 0;


    remainder section


    }


    Нарушается условие взаимоисключения


    Shared int lock = 0;


    lock = 1;


    while (some condition) {


    while (lock);


    critical section


    lock = 0;


    remainder section


    }


    lock = 1;


    |





    Строгое чередование


    while (some condition) {


    while (turn != i);


    critical section


    turn = 1-i;


    remainder section


    }


    Нарушается условие прогресса


    Shared int turn = 0;


    while (some condition) {


    while (turn != 1);


    critical section


    turn = 0;


    remainder section


    }


    while (turn != 0);


    turn = 1;


    Pi


    P1


    P0


    Shared int turn = 1;


    Условие взаимоисключения выполняется





    Флаги готовности


    while (some condition) {


    while (ready[1-i]);


    critical section


    ready[i] = 0;


    remainder section


    }


    1-я часть условия прогресса выполняется


    Shared int ready[2] = {0, 0};


    while (ready [1]);


    ready[0] = 0;


    Pi


    P1


    P0


    Условие взаимоисключения выполняется


    ready[i] = 1;


    2-я часть условия прогресса нарушается


    while (some condition) {


    critical section


    remainder section


    }


    while (ready [0]);


    ready[1] = 0;


    ready[1] = 1;


    ready[0] = 1;


    Shared int ready[2] = {1, 0};


    Shared int ready[2] = {1, 1};



    написать администратору сайта