МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Теория Операционных Систем

    Теория Операционных Систем

    Теория операционных систем

    Введение. Основные понятия и определения.

    Операционная система - это программа, которая выполняет функции

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

    ОС, выполняя роль посредника, служит двум целям:

    1. эффективно использовать компьютерные ресурсы.

    2. создавать условия для эффективной работы пользователя

    В качестве ресурсов компьютера обычно рассматривают:

    1. время работы процессора

    2. адресное пространство основной памяти

    1. оборудование ввода - вывода

    2. файлы, хранящиеся во внешней памяти

    На рисунке приведены основные компоненты ОС как системы разделения

    ресурсов.

    Таким образом, основные компоненты ОС:

    1. управление процессами (распределяет ресурс — процессорное время);

    2. управление памятью (распределяет ресурс — адресное пространство основной

    памяти);

    3. управление устройствами (распределяет ресурсы) — оборудование ввода -

    вывода;

    4. управление данными (распределяет ресурс — данные или файлы).

    Функционирование компьютера после включения питания начинается с

    запуска программы первоначальной загрузки — Boot Track. Программа Boot

    Track инициализирует основные аппаратные блоки компьютера и регистры

    процессора (CPU), накопитель памяти, контроллеры периферийного

    оборудования. Затем загружается ядро ОС, то бишь Operating System Kernel.

    Дальнейшее функционирование ОС осуществляется как реакция на события,

    происходящие в компьютере. Наступление того или иного события

    сигнализируется прерываниями - Interrupt. Источниками прерываний могут быть

    как аппаратура (HardWare), так и программы (SoftWare).

    Аппаратура “сообщает” о прерывании асинхронно (в любой момент

    времени) путем пересылки в CPU через общую шину сигналов прерываний.

    Программа “сообщает” о прерывании путем выполнения операции System Call.

    Примеры событий, вызывающих прерывания:

    1. попытка деления на 0

    2. запрос на системное обслуживание

    3. завершение операции ввода - вывода

    4. неправильное обращение к памяти

    Каждое прерывание обрабатывается соответственно обработчиком

    прерываний (Interrupt handler), входящим в состав ОС.

    Главные функции механизма прерываний — это:

    1. распознавание или классификация прерываний

    2. передача управления соответственно обработчику прерываний

    3. корректное возвращение к прерванной программе

    Переход от прерываемой программы к обработчику и обратно должен

    выполняться как можно быстрей. Одним из быстрых методов является

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

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

    вектором прерываний (Interrupt vector) и хранится в начале адресного

    пространства основной памяти (UNIX/MS DOS).

    Для корректного возвращения к прерванной программе перед передачей

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

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

    System Stack.

    Обычно запрещаются прерывания обработчика прерываний. Однако, в

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

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

    прерывание с более высоким приоритетом.

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

    ПРОЦЕСС — ЭТО ПРОГРАММНЫЙ МОДУЛЬ, ВЫПОЛНяЕМЫЙ В CPU. ОПЕРАЦИОННАя

    СИСТЕМА КОНТРОЛИРУЕТ СЛЕДУЮЩУЮ ДЕяТЕЛЬНОСТЬ, СВяЗАННУЮ С ПРОЦЕССАМИ:

    1. создание и удаление процессов

    2. планирование процессов

    3. синхронизация процессов

    4. коммуникация процессов

    5. разрешение тупиковых ситуаций

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

    НЕ СЛЕДУЕТ СМЕШИВАТЬ ПОНяТИя ПРОЦЕСС И ПРОГРАММА. ПРОГРАММА — ЭТО

    ПЛАН ДЕЙСТВИЙ, А ПРОЦЕСС — ЭТО САМО ДЕЙСТВИЕ. ПОНяТИЕ ПРОЦЕСС ВКЛЮчАЕТ:

    1. программный код

    2. данные

    3. содержимое стека

    4. содержимое адресного и других регистров CPU.

    Таким образом, для одной программы могут быть созданы несколько

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

    выполняется несколько несовпадающих последовательностей команд. За время

    существования процесс многократно изменяет свое состояние.

    Различают следующие состояния процесса:

    1. новый (new, процесс только что создан)

    2. выполняемый (running, команды программы выполняются в CPU)

    3. ожидающий (waiting, процесс ожидает завершения некоторого события, чаще

    всего операции ввода - вывода)

    4. готовый (ready, процесс ожидает освобождения CPU)

    5. завершенный (terminated, процесс завершил свою работу)

    Переход из одного состояния в другое не может выполняться

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

    состояний процессора.

    Каждый процесс представлен в операционной системе набором данных,

    называемых process control block . В process control block процесс

    описывается набором значений, параметров, характеризующих его текущее

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

    процесса через компьютер.

    На рисунке схематически показано, каким образом операционная система

    использует process control block для переключения процессора с одного

    процесса на другой.

    |выполняемый |ожидаемый, |готовый |выполняемый | |

    | | | | | |

    | | | | | |

    | | | | | |

    |готовый |выполняемый |гото |вый | |

    | | | | | |

    | | | | | |

    | | | | | |

    |ожидаемый, |готовый |выполняемый |ожидаемый | |

    | | | |time | |

    1.2. Планирование процессов. Понятие очереди.

    СИСТЕМА УПРАВЛЕНИя ПРОЦЕССАМИ ОБЕСПЕчИВАЕТ ПРОХОЖДЕНИЕ ПРОЦЕССА чЕРЕЗ

    КОМПЬЮТЕР. В ЗАВИСИМОСТИ ОТ СОСТОяНИя ПРОЦЕССА ЕМУ ДОЛЖЕН БЫТЬ ПРЕДОСТАВИТЬ

    ТОТ ИЛИ ИНОЙ РЕСУРС. НАПРИМЕР, НОВЫЙ ПРОЦЕСС НЕОБХОДИМО РАЗМЕСТИТЬ В

    ОСНОВНОЙ ПАМяТИ, СЛЕДОВАТЕЛЬНО, ЕМУ НЕОБХОДИМО ВЫДЕЛИТЬ чАСТЬ АДРЕСНОГО

    ПРОСТРАНСТВА. ПРОЦЕССУ В СОСТОяНИИ ГОТОВЫЙ ДОЛЖНО БЫТЬ ПРЕДОСТАВЛЕНО

    ПРОЦЕССОРНОЕ ВРЕМя. ВЫПОЛНяЕМЫЙ ПРОЦЕСС МОЖЕТ ПОТРЕБОВАТЬ ОБОРУДОВАНИЕ

    ВВОДА - ВЫВОДА И ДОСТУП К ФАЙЛУ.

    | | |Заголово| | | | | | | |

    | | |к | | | | | | | |

    |Процессы | |первый | |PCB7 | |PCB8 | | | |

    |в | | | | | | | | | |

    |состоянии| | | | | | | | | |

    |“готовый”| |последни| | | | | | | |

    | | |й | | | | | | | |

    | | | | | | | | | | |

    | | | | | | | | | | |

    |Очередь к| |первый | | | | | | | |

    |магнитной| | | | | | | | | |

    |ленте | |последни| | | | | | | |

    | | |й | | | | | | | |

    | | | | | | | | | | |

    | | | | | | | | | | |

    |Очередь | |первый | |PCB3 | |PCB14 | |PCB6 | |

    |к | | | | | | | | | |

    |диску №1 | |последни| | | | | | | |

    | | |й | | | | | | | |

    | | | | | | | | | | |

    | | | | | | | | | | |

    |Очередь к| |первый | |PCB5 | | | | | |

    |терминалу| | | | | | | | | |

    |№ 1 | |последни| | | | | | | |

    | | |й | | | | | | | |

    | | | | | | | | | | |

    Распределение процессов между имеющимися ресурсами носит название

    планирование процессов. Одним из методом планирования процессов,

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

    ресурсов. Новые процессы находятся во входной очереди, часто называемой

    очередью работ - заданий (job queue).

    Входная очередь располагается во внешней памяти, во входной очереди

    процессы ожидают освобождения ресурса — адресного пространства основной

    памяти.

    Готовые к выполнению процессы располагаются в основной памяти и

    связаны очередью готовых процессов или ready queue. Процессы в этой очереди

    ожидают освобождения ресурса процессорное время.

    Процесс в состоянии ожидания завершения операции ввода - вывода

    находится в одной из очередей к оборудованию ввода - вывода, которая носит

    название devices queue.

    При прохождении через компьютер процесс мигрирует между различными

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

    (scheduler) Операционная система, обеспечивающая режим

    мультипрограммирования, обычно включает два планировщика — долгосрочный

    (long term scheduler) и краткосрочный (short term scheduler/CPU scheduler).

    Основное отличие между долгосрочным и краткосрочным планировщиками

    заключается в частоте запуска, например: краткосрочный планировщик может

    запускаться каждые 100 мс, долгосрочный — один раз за несколько минут.

    Долгосрочный планировщик решает, какой из процессов, находящихся во

    входной очереди, должен быть переведен в очередь готовых процессов в случае

    освобождения ресурсов памяти.

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

    создания неоднородной мультипрограммной смеси. Это означает, что в очереди

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

    ориентированные на ввод - вывод, так и процессы, ориентированные на

    преимущественную работу с CPU.

    Краткосрочный планировщик решает, какой из процессов, находящихся в

    очереди готовых процессов, должен быть передан на выполнение в CPU. В

    некоторых операционных системах долгосрочный планировщик может

    отсутствовать. Например, в системах разделения времени (time sharing

    system), каждый новый процесс сразу же помещается в основную память.

    1.3. Взаимодействие процессов. Пользовательский уровень.

    СОВМЕСТНО ВЫПОЛНяЕМЫЕ ПРОЦЕССЫ МОГУТ БЫТЬ ЛИБО НЕЗАВИСИМЫМИ

    (INDEPENDED PROCESSES), ЛИБО ВЗАИМОДЕЙСТВУЮЩИМИ (COOPERATING PROCESSES).

    ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ чАСТО ПОНИМАЕТСя В СМЫСЛЕ ВЗАИМНОГО ОБМЕНА ДАННЫМИ

    чЕРЕЗ ОБЩИЙ БУФЕР ДАННЫХ.

    Взаимодействие процессов удобно рассматривать в схеме производитель -

    потребитель (produces - consumer). Например, программа вывода на печать

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

    принтера или компилятор производит ассемблерный текст, который затем

    потребляется ассемблером.

    Для того, чтобы процесс - производитель и процесс - потребитель могли

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

    производителем и потребляемым процессом - потребителем.

    Буфер имеет фиксированные размеры, и следовательно процессы могут

    находиться в состоянии ожидания, когда:

    . буфер заполнен; ожидает процесс - производитель

    . буфер пуст; ожидает процесс - потребитель

    Буфер может предоставляться и поддерживаться самой ОС, например с

    помощью средств коммуникации процессов (IPC — Inter Process Communication),

    либо организовать прикладным программистом. При этом оба процесса

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

    - потребитель могут использовать следующие переменные:

    Var n;

    type item=...;

    Var buffer:array[0..n-1] of item;

    in, out:0..n-1;, где n - количество адресуемых элементов буфера, Item - имя

    типа элементов буфера, in, out - указатели, характеризующие заполнение

    буфера.

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

    элементов с двумя указателями - in, out. Указатель in содержит номер

    первого свободного элемента буфера, а out - первого занятого элемента

    буфера.

    | | | | | | | | | | | | | | | |

    | | |0 |1 |2 |3 |4 |5 | | | | |n-| | |

    | | | | | | | | | | | | |1 | | |

    | | | | | | | | | | | | | | | |

    1. Пуст. in=out. Очевидно, что буфер пуст в том случае, если выполняется

    это условие.

    2. Буфер будет полностью заполнен, если выполняется условие

    (in+1) mod n = out

    Процесс - производитель должен выполнять процедуру записи в буфер

    типа

    Repeat

    ...

    продуцируется очередной элемент в Next p

    ...

    while (in+1) mod n = out do no_op;

    buffer (in):=next p;

    in:=(in+1) mod n;

    until false

    где Next p - локальная переменная процесса - производителя, в которой

    хранится очередной продуцируемый элемент

    no_op - пустой оператор

    Процесс - потребитель должен выполнять процедуру чтения из буфера типа

    Repeat

    while in out do no_op;

    next p := buffer (out);

    out:=(out+1) mod n;

    ...

    потребляется очередной элемент из Next с

    ...

    until false

    2. Планирование процессора.

    КРАТКОСРОчНЫЙ ПЛАНИРОВЩИК ВЫБИРАЕТ ПРОЦЕССЫ ИЗ ОчЕРЕДИ ГОТОВЫХ

    ПРОЦЕССОВ И ПЕРЕДАЕТ ИХ НА ВЫПОЛНЕНИЕ В CPU. СУЩЕСТВУЮТ РАЗЛИчНЫ АЛГОРИТМЫ

    ИЛИ СТРАТЕГИИ РЕШЕНИя ЭТОЙ ЗАДАчИ, ОТЛИчАЮЩИЕСя ОТНОШЕНИЕМ К КРИТЕРИяМ

    ПЛАНИРОВАНИя.

    2.1. Критерии планирования процессора.

    ИСПОЛЬЗУЮТСя СЛЕДУЮЩИЕ КРИТЕРИИ, ПОЗВОЛяЮЩИЕ СРАВНИВАТЬ АЛГОРИТМЫ

    КРАТКОСРОчНЫХ ПЛАНИРОВЩИКОВ:

    1. утилизация CPU (использование) CPU utilization. утилизация CPU

    теоретически может находиться пределах от 0 до 100%. В реальных системах

    утилизация CPU колеблется в пределах 40% для легко загруженного CPU, 90%

    для тяжело загруженного CPU.

    2. пропускная способность CPU throughput. Пропускная способность CPU может

    измеряться количеством процессов, которые выполняются в единицу времени.

    3. время оборота (turnaround time) для некоторых процессов важным критерием

    является полное время выполнения, то есть интервал от момента появления

    процесса во входной очереди до момента его завершения. Это время названо

    временем оборота и включает время ожидания во входной очереди, время

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

    оборудованию, время выполнения в процессоре и время ввода - вывода.

    4. время ожидания (waiting time). под временем ожидания понимается

    суммарное время нахождения процесса в очереди готовых процессов.

    5. время отклика (response time) для сугубо интерактивных программ важным

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

    попадания процесса во входную очередь до момента первого обращения к

    терминалу.

    Очевидно, что простейшая стратегия краткосрочного планировщика должна

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

    способности, времени ожидания и времени отклика.

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

    минимаксный критерий, то есть вместо простого критерия минимум среднего

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

    отклика.

    2.2. Стратегии планирования процессора.

    2.2.1.ПЕРВЫЙ ПРИШЕЛ — ПЕРВЫЙ ОБСЛУЖИВАЕТСя FIFO. FIRST COME — FIRST SERVED

    (FCFS).

    FCFS яВЛяЕТСя НАИБОЛЕЕ ПРОСТОЙ СТРАТЕГИЕЙ ПЛАНИРОВАНИя ПРОЦЕССОВ И

    ЗАКЛЮчАЕТСя В ТОМ, чТО ПРОЦЕССОР ПЕРЕДАЕТСя ТОМУ ПРОЦЕССУ, КОТОРЫЙ РАНЬШЕ

    ВСЕХ ДРУГИХ ЕГО ЗАПРОСИЛ.

    Когда процесс попадает в очередь готовых процессов, process control

    block присоединяется к хвосту очереди.

    Среднее время ожидания для стратегии FCFS часто весьма велико и

    зависит от порядка поступления процессов в очередь готовых процессов.

    Пример № 1

    Пусть три процесса попадают в очередь одновременно в момент 0 и имеют

    следующие значения времени последующего обслуживания в CPU.

    вариант 1:

    П1(24 мс)

    П2(3 мс)

    П3(3 мс)

    вариант 2:

    П2(3 мс)

    П3(3 мс)

    П1(24 мс)

    На рисунке приведены диаграммы Ганга очереди готовых процессов

    вариант 1:

    |П1 |П2 |П3 |WT=17 мс |

    |WT1=0 мс |WT2=24 мс |WT3=27 мс | |

    вариант 2:

    |П2 |П3 |П1 |WT=3 мс |

    |WT2=0 мс |WT3=3 мс |WT1=6 мс | |

    Стратегии FCFS присущ так называемый “эффект конвоя”. В том случае,

    когда в компьютере имеется один большой процесс и несколько малых, то все

    Страницы: 1, 2, 3


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.