Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

а программа находящаяся в режиме выполнения

Работа добавлена на сайт samzan.net:


Планирование процессов и обслуживание ввода-вывода

Процессы

Процесс (задача) - программа, находящаяся в режиме выполнения.

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

Адресное пространство содержит:

  1.  саму программу
  2.  данные к программе
  3.  стек программы

С каждым процессом связывается набор регистров, например:

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

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

Некоторые поля таблицы:

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

Управление памятью

Управление файлами

Регистры

Счетчик команд

Указатель стека

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

Приоритет

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

Идентификатор процесса

Родительский процесс

Группа процесса

Время начала процесса

Использованное процессорное время

Указатель на текстовый сегмент

Указатель на сегмент данных

Указатель на сегмент стека

Корневой каталог

Рабочий каталог

Дескрипторы файла

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

Идентификатор группы

Ресурс - называется всякий объект, который может распределяться внутри вычислительной системы.

Ресурсы могут быть разделяемыми, когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно), а могут быть и неделимыми.

Модель процесса

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

Рассмотрим схему с четырьмя работающими программами.

В каждый момент времени активен только один процесс

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

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

Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess):

  1.  Загрузка системы
  2.  Работающий процесс подает системный вызов на создание процесса
  3.  Запрос пользователя на создание процесса

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

Операции над процессами
Процесс не может перейти из одного состояния в другое самостоятельно.

  1.  создание (образование) процесса;
  2.  уничтожение процесса;
  3.  возобновление процесса;
  4.  изменение приоритета процесса;
  5.  блокирование процесса;
  6.  пробуждение процесса;
  7.  запуск (выбор) процесса.
  8.  Создание процесса состоит из многих операций, включая такие как:
  9.  присвоение имени процессу;
  10.  включение этого имени в список имен процессов, известных системе;
  11.  определение начального приоритета процесса;
  12.  формирование блока управления процессом РСВ;
  13.  выделение процессу начальных ресурсов.

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

Иерархия создания процессов

Операции создания и завершения процесса являются одноразовыми, т.к. применяются к процессу не более 1 раза (некоторые системные процессы при работе ВС не завершаются никогда). Все остальные операции, связанные с изменением состояния процессов ( запуск, блокировка)как правило, являются многоразовыми. 

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

Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess):

  1.  Плановое завершение (окончание выполнения)
  2.  Плановый выход по известной ошибке (например, отсутствие файла)
  3.  Выход по неисправимой ошибке (ошибка в программе)
  4.  Уничтожение другим процессом

Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процессов (в числе компонентов и его регистры).

Иерархия процессов

В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским.

В таком случае в UNIX существует и прародитель всех процессов - процесс init.

Дерево процессов для систем UNIX

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

Три состояния процесса:

  1.  Выполнение (занимает процессор)
  2.  Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)
  3.  Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)

Возможные переходы между состояниями.

1. Процесс блокируется, ожидая входных данных

2. Планировщик выбирает другой процесс

3. Планировщик выбирает этот процесс

4. Поступили входные данные

Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.

На серверах для ускорения ответа на запрос клиента, часто загружают несколько процессов в режим ожидания, и как только сервер получит запрос, процесс переходит из "ожидания" в "выполнение". Этот переход выполняется намного быстрее, чем запуск нового процесса.

Потоки (нити, облегченный процесс)

Понятие потока

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

Сравнение многопоточной системы с однопоточной

Модель потока

С каждым потоком связывается:

  1.  Счетчик выполнения команд
  2.  Регистры для текущих переменных
  3.  Стек
  4.  Состояние

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

  1.  Адресное пространство
  2.  Глобальные переменные
  3.  Открытые файлы
  4.  Таймеры
  5.  Семафоры
  6.  Статистическую информацию. 

В остальном модель идентична модели процессов.

В POSIX и Windows есть поддержка потоков на уровне ядра.

Преимущества использования потоков

  1.  Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
  2.  Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.
  3.  Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода/вывода. Пример: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.

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

А - потоки в пространстве пользователя

B - потоки в пространстве ядра

В случае А ядро о потоках ничего не знает. Каждому процессу необходима таблица потоков, аналогичная таблице процессов.

Преимущества случая А:

  1.  Такую многопоточность можно реализовать на ядре не поддерживающим многопоточность
  2.  Более быстрое переключение, создание и завершение потоков
  3.  Процесс может иметь собственный алгоритм планирования.

Недостатки случая А:

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




1. варианты 36 вариантов под ред
2. Реальные опционы в менеджменте
3. Курсовая работа- Моделирование логнормального распределени
4. Вавилонда~ы аспалы ба~
5. Реферат на тему- Культура Стародавньої Греції Виконав студент КККН Групи 1КН3 Каб
6. тема Курсовая работа Допущено к защите Научный руководитель Зав
7. Курсовая работа на тему- Современная технология социальной работы с одарёнными детьми
8. . К. В. Глюк. Характеристика творчества
9. реферату- Передумови створення підприємстваРозділ- Економіка підприємства Передумови створення підприємс.
10. .04.02 Сахар 50 Иванов 20001 01
11. Исследование особенностей качества жизни сотрудников отдела охраны
12. Государства Древнего Востока1
13. Курсовая работа- Современная политическая система российского общества.html
14. Тренинг регуляция эмоционального состояния
15. Тема 3- ЛИЧНЫЕ И ИМУЩЕСТВЕННЫЕ ПРАВООТНОШЕНИЯ СУПРУГОВ План-1
16. ленность к достижению оптимальных затрат при прве эксплуати и ремонте
17. Древний Рим в эпоху рексов и республики
18. Приемы психолого-педагогического взаимодействия учителя с младшим школьником в конфликтных ситуациях
19. Характеристика свойств нобелия
20. Варианты контрольных заданий Каждый студент выполняет вариант задания обозначенный последней цифрой ег.