Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Процессы во времени.




Читайте также:
  1. A) Природные процессы, влияющие на загрязнение атмосферы.
  2. Активные процессы в области ударения в СРЯ
  3. Анализ использования фонда рабочего времени.
  4. Антропогенное воздействие на биогеохимические процессы окружающей среды, их последствия.
  5. Билет №22. Задача распределения трудовых ресурсов во времени. Проблемы оптимизации в перераспределении ресурсов.
  6. Биохимические процессы пищевой технологии
  7. Блок 4 вопрос Социальный педагог как профессия нового времени. Функции, роли и принципы деятельности социального педагога. Квалификационная характеристика социального педагога.
  8. В – 3. Культурный переворот Осевого времени. 1 страница
  9. В – 3. Культурный переворот Осевого времени. 2 страница
  10. В – 3. Культурный переворот Осевого времени. 3 страница

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

Это свойство системы является фундаментальным, это ``контроль выполнения процессов'', контроль до такой степени, что процессы исполняются в своих собственных адресных пространствах. Потеря контроля над выполнением процесса приводит разработчика к проблеме синхронизации, которую можно выразить следующим вопросом: как сделать возможной совместную работу двух процессов?

На самом деле проблема несколько более сложная, чем может показаться: это не только вопрос одновременной работы программ, но также и вопрос одновременного использования одних данных, как для чтения, так и для записи.

Поговорим о некоторых классических проблемах одновременного использования данных; если два процесса одновременно читают один набор данных, то это, очевидно, не создаёт проблем, и выполнение процессов — последовательное. Пусть теперь один процесс изменяет набор данных: результат работы второго процесса будет зависеть от того, прочёл процесс данные до или после их изменения. Например: у нас есть два процесса "А" и "В" и целое число "d". Процесс А увеличивает d на единицу, процесс В печатает значение d. Это можно записать на условном языке так:

A { d->d+1 } & B { d->output }

здесь "&" означает одновременное выполнение процессов. Сначала может быть выполнен процесс А,

(-) d = 5 (A) d = 6 (B) output = 6

а может и процесс В:

(-) d = 5 (B) output = 5 (A) d = 6

Сразу понятно, как важно уметь правильно обращаться с такими ситуациями: риск противоречивости данных высок и неприемлем. Если вы всё ещё недооцениваете эту проблему, представьте, что набор данных — это ваш банковский счёт...

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

Очевидно, это не самый лучший способ: процесс вынужден простаивать в ожидании завершения работы вторым процессом. Неприятность заключается в том, что второй процесс может работать довольно долго, а общими данными пользоваться весьма короткий промежуток времени. Таким образом, нам необходимо увеличить "гранулированность" нашего управления, т.е. управлять отдельными наборами данных.



Есть два способа выхода из ситуации – использование мьютексов и использование семафоров. Опишем использование семафоров.


Дата добавления: 2015-04-18; просмотров: 7; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.016 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты