русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проблемы синхронизации процессов.


Дата добавления: 2013-12-23; просмотров: 1550; Нарушение авторских прав


Формирование организационных структур.

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

Основные принципы формирования управленческих структур:

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

- централизация принятия стратегических решений и децентрализация тактических,

- сокращение иерархической лестницы,

- гибкость и адаптивность,

- гармоничность (соразмеренность и пропорциональность),

- экономичность,

- устойчивость,

- регулярная реорганизация

 

Выделяютметоды проектирования организационных структур:

 

Название метода Описание Оценка
Метод аналогии. Основан на использовании оправдавших себя форм, которые становятся типовыми.   Этот метод является наиболее дешевым.  
Экспертно-аналитический метод (эвристический). Применяется для уникальных организаций и базируется на обследовании и аналитическом изучении всех сторон деятельности с помощью советов экспертов и опытных практиков.   Этот метод наиболее гибкий, всеохватывающий, но дорогостоящий.
Метод структуризации целей Основан на построении дерева целей и увязки с его помощью всех видов и сфер организационной деятельности с точки зрения конечного результата.  
Метод организационного моделирования Разработка формализованных моделей, распределение ресурсов, полномочий и ответственности, построение и оптимизация рациональных организационных структур.  
Метод нормативно-функциональный Основан на функциональной зависимости численности персонала, количества уровней управления, степени централизации, от типа и масштабов предприятия, характеристика и структуры основной деятельности. Выражается в нормах и нормативах. Экономичен и надёжен, но требует объективного отношения к стандартам и нормам.

 



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

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

Для эффективного использования аппаратных и программных ресурсов те и другие подлежат разделению. У аппаратных и программных ресурсов есть общие свойства. Рассмотрим систему управления файлами, которая в каждый момент может обслуживать запросы только одного процесса. Даже если система управления файлами – программный ресурс, ее разделение организуется так же, как и разделение многих аппаратных ресурсов. Когда несколько процессов пытаются одновременно воспользоваться системой управления файлами, она может стать столь же опасным узким местом, как и диск или центральный процессор. Физические устройства называются физическими, или естественными ресурсами. Часть программного обеспечения, которая ведет себя так, как будто она физический ресурс, называется логическим ресурсом. Логические ресурсы существуют только в виде программ. Например, чтобы сделать возможным разделение диска между несколькими процессами, в системе может быть программно реализовано много логических дисков, которые разделяют один физический. Каждый логический диск представляет собой процесс, который связан с дисковым каналом. Когда какой-нибудь процесс использует логический диск, он «считает», что в его распоряжении находится целый диск. В действительности все, что у него есть,– это логический диск, который имитирует целое физическое устройство, посылая и получая команды от дискового канала. Процессу, пользующемуся ресурсом, неважно, что это за ресурс – логический, т. е. реализованный программно, или физический, т. е. реализованный аппаратно. Единственное, что процессу важно, – это чтобы ресурс делал то, что положено. Поэтому, рассматривая разделение ресурсов, не будем различать логические и физические ресурсы, поскольку их внешнее поведение по существу одинаково.

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

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

Многие физические ресурсы являются критическими. Критическими могут быть и разделяемые переменные, значения которых может менять несколько процессов. Пренебрежение вопросами синхронизации процессов, выполняющихся в режиме мультипрограммирования, может привести к их неправильной работе или даже к краху системы. Рассмотрим, например (рис. 1.), программу печати файлов (принт - сервер). Эта программа печатает по очереди все файлы, имена которых последовательно в порядке поступления записывают в специальный общедоступный файл "заказов" другие программы. Особая переменная NEXT, доступная всем процессам-клиентам, содержит номер первой свободной для записи имени файла позиции файла "заказов". Процессы-клиенты читают эту переменную, записывают в соответствующую позицию файла "заказов" имя своего файла и наращивают значение NEXT на единицу. Пусть в некоторый момент процесс R решил распечатать свой файл, для этого он прочитал значение переменной NEXT, значение которой для определенности предположим равным 4. Процесс запомнил это значение, но поместить имя файла не успел, так как его выполнение было прервано (например, в следствие исчерпания кванта). Очередной процесс S, желающий распечатать файл, прочитал то же самое значение переменной NEXT, поместил в четвертую позицию имя своего файла и нарастил значение переменной на единицу. Когда в очередной раз управление будет передано процессу R, то он, продолжая свое выполнение, в полном соответствии со значением текущей свободной позиции, полученным во время предыду

 
 

щей итерации, запишет имя файла также в позицию 4, поверх имени файла процесса S.

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



<== предыдущая лекция | следующая лекция ==>
Организационное проектирование | Блокировка памяти.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.