Головна

Блокуються, що не блокуються і асинхронні системні виклики.

  1.  АРХІТЕКТУРНІ СИСТЕМНІ патерни
  2.  Асинхронні RS-тригери з інверсними входами
  3.  Асинхронні паралельні процеси.
  4.  Компонентний склад операційних систем. Системні виклики
  5.  Опитування пристроїв і переривання. Виняткові ситуації і системні виклики
  6.  Підстави виділення частин мови і їх системні відносини

Всі системні виклики, пов'язані із здійсненням операцій введення-виведення, можна розбити на три групи за способами реалізації взаємодії процесу і пристрої введення-виведення.

§ До першої, найбільш звичної для більшості програмістів, групи належать блокуються системні виклики. Як випливає із самої назви, застосування такого виклику призводить до блокування ініціював його процесу, тобто процес переводиться операційною системою зі стану виконання в стан очікування. Завершивши виконання всіх операцій введення-виведення, запропонованих системним викликом, операційна система переводить процес зі стану очікування в стан готовність. Після того, як процес буде знову обраний для виконання, В ньому відбудеться остаточний повернення з системного виклику. Типовим випадком для застосування такого системного виклику є випадок, коли процесу потрібно отримати від пристрою строго певна кількість даних, без яких він не може виконувати роботу далі.

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

§ До третьої групи відносяться асинхронні системні виклики. Процес, котрий використовував асинхронний системний виклик, ніколи в ньому не блокується. Системний виклик ініціює виконання необхідних операцій введення-виведення і негайно повертається, після чого процес продовжує виконувати свою регулярну діяльність. Про закінчення завершення операції введення-виведення операційна система згодом інформує процес зміною значень деяких змінних, передачею йому сигналу або повідомлення, або яким-небудь ще способом. Необхідно чітко розуміти різницю між не блокують і асинхронними викликами. Чи не блокується системний виклик для виконання операції read повернеться негайно, але може прочитати запитане кількість байт, менша кількість або взагалі нічого. Асинхронний системний виклик для цієї операції також повернеться негайно, але необхідну кількість байт рано чи пізно буде прочитано в повному обсязі.




 Структура обчислювальної системи |  Що таке ОС |  Коротка історія еволюції обчислювальних систем |  Системні виклики |  виняткові ситуації |  Монолітне ядро |  Листкові системи (Layered systems) |  Віртуальні машини |  Мікроядерна архітектура. |  змішані системи |

© um.co.ua - учбові матеріали та реферати