Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Черги повідомлень




Черги утілюють модель взаємодії процесів "багато відправників - один одержувач". Цю модель часто називають поштовою скринькою (mailbox) із-за схожості з поштовою скринькою, що висить на дверях кожної квартири. Процес-одержувач є власником черги, він створює чергу, а решта процесів дістає до неї доступ, "відкриваючи" її. Черга зазвичай має зовнішнє ім'я. Передача даних в черзі відбувається завжди повідомленнями, причому кожне повідомлення має заголовок і тіло. Заголовок завжди має фіксований для даної системи формат. У нього обов'язково входить довжина повідомлення, а інша інформація залежить від специфікацій конкретної системи: це може бути пріоритет повідомлення, тип повідомлення, ідентифікатор процесу, що послав повідомлення і тому подібне Тіло повідомлення інтерпретується по правилах, що встановлюються самими процесами - відправником і одержувачем. Заголовок і тіло є істотно різними структурами даних і розташовуються в різних місцях в пам'яті. Власне черга (найчастіше - лінійний список) ОС складає із заголовків повідомлень. У елементи черги включаються покажчики на тіла повідомлень, розташовані в пам'яті системи або процесів. Як правило, можливості процесу-одержувача повідомлень не обмежуються читанням по дисципліні FIFO, йому надається багатший вибір дисциплін: LIFO, по пріоритету, по типах, по ідентифікаторах відправника і тому подібне У розпорядженні власника є також засоби визначення розміру черги, а можливо, і проглядання черги - неруйнуючого читання з неї. У розпорядженні процесу-відправника є тільки виклик типу sendMessage - посилки повідомлення в чергу. Якщо при спробі процесу послати повідомлення виявляється, що черга заповнена, процес-відправник блокується. Це, втім, досить окремий випадок, оскільки системні обмеження на розмір черг ніколи не бувають дуже жорсткими. Процес-одержувач блокується при спробі читати повідомлення, коли черга порожня. Істотним питанням при конструюванні механізму черг є питання про включення або невімкнення в ОС системної буферизації повідомлень. При включенні такого засобу (рис.9.2) тіло посиланого повідомлення копіюється в системну область пам'яті, а при читанні - копіюється з неї в адресний простір процесу-одержувача. За відсутності системної буферизації тіла повідомлень зберігаються в загальній для відправника і одержувача пам'яті, а передається тільки покажчик на тіло повідомлення (рис.9.3). У першому випадку виконуються додаткові пересилки, витрачається додаткова пам'ять і вводяться жорсткіші обмеження на об'єм повідомлень, але досягається надійність передачі і значно більш простій інтерфейс процесів. У другому випадку значно економиться пам'ять, але самі процеси повинні піклуватися про управління спільно використовуваною пам'яттю і про збереження повідомлень в ній. За відсутності системної буферизації повідомлень застосовуються зазвичай два методи передачі тіла повідомлення: або процес-відправник поміщає тіло повідомлення в окремий сегмент, що розділяється, отримує у ОС маніпулятор цього сегменту для процесу-одержувача і передає цей маніпулятор у складі повідомлення; або для всіх повідомлень виділяється одна загальна область пам'яті із загальним маніпулятором, і для розміщення повідомлення в нім використовуються системні виклики виділення пам'яті в купі.

Ріс.9.2. Розміщення повідомлень в адресному просторі ядра
Ріс.9.3. Розміщення повідомлень в адресному просторі процесу-відправника

 

 

Література

 

1. Вакал Є.С., Карпенко С.Г., Тригуб О.С. Практикум з операційних систем Windows: метод вказівки. - К., 2004.- 245с.

2. Грайворонський М.В. Операційні системи. Лабораторний практикум. – Київ: КПІ, 2005.- 52с.

3. Олифер В., Олифер Н. Сетевые операционные системы: Учебник для вузов, 2-е изд. – СПб: Питер, 2008. - 672с.

4. Таненбаум Э. С. Современные операционные системы. 2-е изд. – СПб: Питер, 2007. - 1040с.

5. Третяк В.Ф., Голубничий Д.Ю., Кавун С.В. Основи операційних систем. - Х.: Видавництво ХНЕУ, 2005.

6. Харт, Джонсон, М. Системное программирование в среде Win32,:Пер. с англ.: - М.: Издательский дом "Вильямс", 2001.

7. Системное программное обеспечение./ А.В.Гордеев, А.Ю.Молчанов: - СПб.: Питер, 2001.

8. Соломон Д., Руссинович М. Внутреннее устройство Microsoft Windows 2000. Мастер-класс. /Пер. с англ. – СПб.: Питер; М.: Издательско-торговый дом "Русская редакция", 2001.

Негус К. Red Hat Linux 7. Библия пользователя.: пер. с англ. – М.: Издательский дом "Вильямс", 2002.

 

 

 
 




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 425; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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