Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Мультиплексування

Застосування в серверних програмах

Подійно-орієнтоване програмування застосовується в серверних програмах для вирішення проблеми масштабування на велику кількість одночасних з'єднань.

У серверах, побудованих за моделлю «один потік на з'єднання», проблеми з масштабованістю виникають з наступних причин:

- занадто великі накладні витрати на структури даних операційної системи, необхідні для опису однієї задачі;

- занадто великі накладні витрати на перемикання контекстів.

Серверний застосунок при подійно-орієнтованому програмуванні реалізується на системному виклику, який отримує повідомлення події одночасно від багатьох дескрипторів (мультиплексування). При обробці подій використовуються виключно неблокуючі операції введення/виведення, щоб жоден з дескрипторів не перешкоджав обробці подій від інших дескрипторів.

 

Для мультиплексування сполук можуть бути використані наступні засоби операційної системи:

- Select (більшість UNIX систем);

- Poll і epoll (Linux);

- Kqueue (FreeBSD);

- /Dev/poll ( Solaris);

- IO completion port (Windows);

 

Приклади реалізацій

- Веб-сервериNgix та Lighthttpd;

- Проксі-сервер Squid.

4 Застосування в настільних програмах

У сучасних мовах програмування події та обробники подій є центральною ланкою реалізації графічного інтерфейсу користувача. Розглянемо, наприклад, взаємодію програми з подіями від миші. Натискання правої клавіші миші викликає системне переривання, що запускає певну процедуру всередині операційної системи. У цій процедурі відбувається пошук вікна, що знаходиться під курсором миші. Якщо вікно знайдено, то дана подія надсилається в чергу обробки повідомлень цього вікна. Далі, у залежності від типу вікна, можуть генеруватися додаткові події. Наприклад, якщо вікно є кнопкою, то додатково генерується подія натискання на кнопку. Відмінність останньої події в тому, що вона більш абстрактна, а саме, не містить координат курсору, іговорить просто про те, що було вироблено натискання на цю кнопку.

Обробник події може виглядати наступним чином:

 

private void button1_Click (object sender, EventArgs e)

{

MessageBox.Show ("Була натиснута кнопка");

}

 

Тут обробник події являє собою процедуру, в яку передається параметр sender, який, як правило, містить покажчик на джерело події. Це дозволяє використовувати одну й ту ж процедуру для обробки подій від декількох кнопок, розрізняючи їх за цим параметром.

Різні мови програмування підтримують СОП у різному ступені. Найбільш повну підтримку подій представляють такі з них (неповний список):

- Perl;

- Java;

- C#.

Інші мови, у більшості з них, підтримують події як обробку виключних ситуацій.


 

Тема 5 Типи даних. Перетворення типів


Читайте також:

  1. Мал. 7.4. Операції мультиплексування і демультиплексування потоків при комутації.
  2. Мультиплексування і демультиплексування




Переглядів: 885

<== попередня сторінка | наступна сторінка ==>
Сфера застосування | Види приведення даних

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.018 сек.