На головну

поняття процесу

  1.  A. Поняття дії в класичній механіці
  2.  B. Чи мислення окремим випадком інформаційного процесу?
  3.  C) Еволюція статевого процесу у рослин
  4.  C. Неадекватність вихідної методологічної установки теоретико-інформаційного процесу феномену цілісності мислення
  5.  Event-менеджмент - поняття, основні методи.
  6.  I. Поняття конфлікту
  7.  I. Територіальна і соціальна диференціація мови. Поняття загальнонародного і національної мови. Літературна мова.

У першій частині книги ми, пояснюючи поняття "операційна система" і описуючи способи побудови операційних систем, часто застосовували слова "програма" і "завдання". Ми писали: обчислювальна система виконує одну або кілька програм, операційна система планує завдання, програми можуть обмінюватися даними і т. Д. Ми використовували ці терміни в деякому загальновживаним, життєвому сенсі, припускаючи, що всі читають однаково уявляють собі, що власне мається на увазі під ними в кожному конкретному випадку. При цьому одні й ті ж слова позначали і об'єкти в статичному стані, і не виконує жодних обчислювальної системою (наприклад, сукупність файлів на диску), і об'єкти в динамічному стані, що знаходяться в процесі виконання. Такий підхід був справедливим, поки ми говорили про загальні властивості операційних систем, не вдаючись у подробиці їх внутрішньої поведінки, або про роботу обчислювальних систем першого-другого поколінь, які не могли обробляти більше однієї програми або одного завдання одночасно, по суті справи, не маючи операційних систем. Як тільки ми починаємо знайомитися з деталями функціонування сучасних комп'ютерних систем, нам потрібне уточнення термінології.

Розглянемо наступний приклад. Припустимо, що на жорсткому диску нашої обчислювальної системи знаходиться підготовлена ??до виконання програма обчислення квадратного кореня з натуральних чисел, і що два студента одночасно використовують її для обробки результатів лабораторних робіт. Одному з них потрібно витягти корінь квадратний з 1, а другого - з 4. З точки зору студентів, вони працюють з одним і тим же об'єктом, запускаючи на виконання одну і ту ж програму. З точки ж зору комп'ютерної системи, вона має справу з двома різними обчислювальними процесами. Різні вихідні дані обумовлюють різні послідовності обчислень і призводять до різних результатів, які повинні бути доставлені різним користувачам, можливо, на різні пристрої введення-виведення. Було б дивним, якби студент, який видобуває квадратний корінь з 1, отримав в результаті значення 2, а студент, який видобуває квадратний корінь з 4 - значення 1. Отже, ми не можемо використовувати термін "програма" в призначеному для користувача сенсі цього слова для опису того , що відбувається всередині обчислювальної системи.

Коли ми говорили про системах пакетної обробки, ми ввели поняття "завдання" як сукупності програми, набору команд мови управління завданнями, необхідних для її виконання, і вхідних даних. З точки зору студентів, вони, підставивши різні вихідні дані, сформували два різних завдання. Може бути, термін "завдання" підійде нам для опису внутрішнього функціонування комп'ютерних систем? Щоб з'ясувати це, давайте розглянемо ще один приклад. Нехай обидва студента намагаються витягти корінь квадратний з 1, тобто, нехай вони сформували ідентичні завдання, але завантажили їх в обчислювальну систему із зсувом за часом. У той час як одне з виконуваних завдань приступило до друку отриманого значення і чекає закінчення операції введення-виведення, друге тільки починає виконуватися. Чи можемо ми сказати про ідентичність завдань всередині обчислювальної системи в даний момент часу? Ні, тому що стан процесу їх виконання по-різному. Отже, і слово "завдання" в призначеному для користувача сенсі не може бути використано для опису того, що відбувається в системі автоматичного.

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

У ряді навчальних посібників і монографій для простоти пропонується думати про процес як про абстракції, що характеризує поточну програму. З точки зору авторів, ця рекомендація є не зовсім коректною. Поняття процесу характеризує деяку сукупність набору виконуються команд, асоційованих з ним ресурсів (виділена для виконання пам'ять або адресний простір, Стеки, використовувані файли і пристрої введення-виведення і т. Д.) І поточного моменту його виконання (значення регістрів, програмного лічильника, стан стека і значення змінних), що знаходиться під управлінням операційної системи. Не існує взаємно однозначної відповідності між процесами і програмами, що обробляються обчислювальними системами. Як буде показано в подальшому, в деяких операційних системах для роботи певних програм може організовуватися більше одного процесу або один і той же процес може виконувати послідовно кілька різних програм. Більш того, навіть у разі обробки тільки однієї програми в рамках одного процесу, не можна вважати, що процес є просто динамічний опис коду виконуваного файлу, даних і виділених для них ресурсів. Процес знаходиться під управлінням операційної системи і тому в ньому може виконуватися частина коду її ядра (що не знаходиться в файлі,!), Як у випадках, спеціально запланованих авторами програми (наприклад, при використанні системних викликів), так і в непередбачених ними ситуаціях (наприклад , при обробці зовнішніх переривань).




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

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