Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,368
новичок: Goosprin
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

моделирование процесса поступления заявок в ЭВМ на GPSS + Пояснительная ...
Моделирование автомойки на GPSS + Отчет + Блок схемы
Моделирование работы обрабатывающего участка цеха в GPSS

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


Также может иметь смысл заглянуть на сайт velvetdekor.ru, ведь именно там можно узнать много нового на тему http://velvetdekor.ru/. Тема шторы на заказ в Москве может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт velvetdekor.ru, и тема шторы на заказ в Москве начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема шторы на заказ в Москве очень подробно представлена на сайте velvetdekor.ru. Трудно найти более детальное освещение темы шторы на заказ в Москве чем это сделано на сайте velvetdekor.ru. Спасибо сайту velvetdekor.ru за такое доскональное преподнесение темы шторы на заказ в Москве.


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



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



Ограничения традиционного ядра UNIX
Традиционная модель синхронизации корректно работает на однопроцессорных машинах, но она, к сожалению, не избавлена от проблем, связанных с производительностью системы. В многопроцессорных системах использование традиционной модели невозможно, что и будет более подробно показано в разделе 7.4.
Блокировка ресурсов и очереди приостановленных нитей
В некоторых ситуациях организация очередей приостановленных нитей может являться причиной заметного ухудшения производительности системы. В системах UNIX нить блокируется при ожидании освобождения ресурса или возникновении определенного события. Каждый ресурс или событие ассоциированы с каналом ожидания, представляющим собой 32-разрядную переменную, обычно указывающую на адрес ресурса. Система поддерживает набор очередей ожидания, соединение канала с одной из очередей реализовано при помощи хэширования


Нить приостанавливает работу, помещая себя в одну из очередей ожидания, при этом ссылка на соответствующий канал ожидания сохраняется в структуре ргос.
Применение такой методики блокировки приводит к двум последствиям. Во-первых, на каждый канал может ссылаться более чем одно событие. Например, одна из нитей может заблокировать буфер, инициализировать проведение над ним определенных действий и приостановить работу до тех пор, пока эти действия не будут закончены. Если другая нить попытается получить доступ к тому же буферу, то обнаружит его заблокированным. Следовательно, ей придется приостановить выполнение в ожидании освобождения ресурса. Оба события ссылаются на один и тот же канал, указывающий на необходимый обеим нитям буфер. После завершения процедур ввода-вывода обработчик прерываний разбудит обе нити, несмотря на то, что последняя из них ожидает еще не произошедшее событие.
Во-вторых, количество структур хэширования обычно меньше, чем различных каналов ожидания (то есть ресурсов и событий), следовательно, несколько каналов могут ссылаться на одно и то же место. Таким образом, оказаться хэшированными могут нити, ожидающие несколько различных каналов. Процедуре wakeup() необходимо проверять каждый из них и делать работоспособными только те нити, которые ожидают определенный ресурс. Общее время работы wakeupQ зависит не от количества процессов, находящихся в режиме ожидания данного канала, а от общего количества хэшированных процессов. Это приводит к непредусмотренным задержкам, появление которых нежелательно для систем, поддерживающих приложения реального времени, требующих соблюдения определенных верхних границ задержек планировщика (см. раздел 5.5.4).
Опубликовал katy July 06 2015 16:13:34 · 0 Комментариев · 2265 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

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

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Панель Наша Кнопка
Ehlib
WinAmp
PrevInst
RbControls
Delphi 6 программ...
Панель поиска
SendSMS для PHP-F...
Xrumer 4 Platinum...
Cтатьи Королевств...
DirHTMLReportBuil...
Delphi 2005 для W...
Введение в станда...
PHP: обучение на ...
IPAddresseEdit
Программирование ...
Bitmap [для кнопок]
Binary2XMLDemo (Р...
VFW
100 компонентов о...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Вычисление НОД по ...
Безлимитный хостинг
Сердечная и несерд...
Wylkanz Fortune
К головоломке
Лотерея - доступны...
Никогда не делитес...
Ввод и вывод. Чтен...
Элемент ввода text...
Сохранить нескольк...
Все типы в С++ дел...
Как включить отобр...
Разработать прикла...
Тут приведены подр...
Чтобы Используйте ...
Структура распрост...
— закрытый ключ 80...
Изучение системы з...
Принципы обработки...
1.5. ПРИМЕР БАЗЫ Д...
Настенные кондицио...
Табулирование функ...
Онлайн играть в ка...
Формат блока YMODEM
Коды, построенные ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?