Портал образовательно-информационных услуг «Студенческая консультация»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Багатозадачність ОС UNIX

Предмет: 
Тип работы: 
Реферат
К-во страниц: 
5
Язык: 
Українська
Оценка: 
Багатозадачність системи – це її здатність виконувати одночасно кілька програм (процесів). Наприклад, система може одночасно виконувати друк документа, кодування файлу і набір телефонного номера для підключення до Internet, у той час як користувач набирає текст у текстовому редакторі. При такій кількості фонових завдань активний текстовий редактор не повинен зависати або переходити в неробочий стан яким-небудь іншим способом. Це і є принцип багатозадачності: комп'ютер з одним процесором здатний виконувати кілька завдань паралельно. Звичайно, процесор не може виконувати одночасно кілька дій, і ефект багатозадачності досягається за рахунок швидкого перемикання з одного завдання на іншу відповідно до потреб кожного процесу.
Якщо багатозадачність добре забезпечена, то виконання декількох завдань у фоновому режимі не повинне заважати роботі користувача в текстовому редакторі. Всі процеси повинні проходити гладко, зі швидким відгуком комп'ютера.
Системи UNIX завжди забезпечували багатозадачність більш високого порядку, чим Windows. UNIX підтримує одночасне виконання декількох завдань способом, ідеальним для великих корпоративних серверів і потужних робочих станцій.
Системи UNIX підтримують багатопроцесорні комп'ютери і реально виконують кілька одночасних дій. Багатопроцесорність у поєднанні із багатозадачністю дозволяє значно збільшити кількість програм, одночасно виконуваних на одному комп'ютері.
Отже, багатозадачні ОС управляють розподілом між завданнями спільно використовуваних ресурсів. Багатозадачність буває не витісняємою (NetWare, Windows3/95/98) і витісняємою (Windows NT, OS/2, UNIX). У першому випадку активний процес по закінченню сам передає керування ОС для вибору з черги іншого процесу. У другому – рішення про перемикання процесора з одного процесу на інший приймає сама ОС.
У системі UNIX може одночасно виконуватися безліч процесів (завдань), причому їх число логічно не обмежується і може змінюватися в ході роботи системи. Завдяки спеціальному механізму керування пам'яттю кожен процес існує у власному ізольованому адресному просторі, що гарантує безпеку і незалежність від інших процесів. Різні системні операції дозволяють процесам породжувати нові процеси, завершувати процеси, синхронізувати виконання етапів процесу і керувати реакцією на настання різних подій.
Отже, в UNIX кожне завдання представляється як процес. UNIX здатний виконувати багато завдань одночасно, тому що процеси по черзі виконуються на центральному процесорі протягом дуже нетривалого проміжку часу.
Процес – це щось подібне до контейнера, що поєднує виконуваний додаток, його змінні середовища, стан потоків вводу/виводу програми і параметри процесу, які включають у себе його пріоритет і ступінь використання ресурсів системи. Рис. 1 ілюструє поняття процесу.
 
Рис. 1. Концептуальна модель процесу в UNIX
 
Можна уявити процес як незалежну державу зі своїми кордонами, ресурсами і валовим національним продуктом.
Кожен процес має свого власника. Завдання, ініційовані користувачем, наприклад, його shell і командами, звичайно належать цьому користувачеві. Системні процеси можуть належати користувачам з особливими правами або системним адміністраторам root. Наприклад, для підвищення безпеки Apache HTTP Server звичайно належить виділеному користувачеві з ім'ям www, яке надає Web-серверу тільки доступ до файлів, необхідних йому для роботи.
Власник процесу може змінюватися. В одного процесу не може бути одночасно двох власників.
Нарешті, кожен процес має привілеї, які відповідають статусу його власника в ОС. Наприклад, якщо користувач не може одержати доступ до якогось файлу через команду shell, то програми, які він запустить за допомогою цієї оболонки, успадковують те ж обмеження на доступ до цього файлу. Правило спадкування привілеїв можна обійти, тобто процес може одержати більші привілеї, ніж його власник, якщо запустити процес командою, у якій крім всіх інших дій активується спеціальний біт setuid або setgid, як показано на прикладі ls.
Біт setuid можна задати за допомогою chmod u+s. Права доступу, задані за допомогою setuid, виглядають так: $ ls -l /usr/bin/top
-rwsr-xr-x 1 root wheel 83088 Mar 20 2005 top
Біт setgid може бути заданий за допомогою chmod g+s: $ ls -l /usr/bin/top
-r-xr-sr-x 1 root tty 19388 Mar 20 2005 /usr/bin/wall
Процес setuid-, процес, що запускає наприклад, top, виконується із привілеями користувача, якому належить. Отже, якщо запустити top, то у користувача будуть привілеї адміністратора. Відповідно, процес setgid виконуватиметься із привілеями групи власників файлу.
Наприклад, в Mac OS X утиліта wall (скорочення від write all) відправляє повідомлення на кожен фізичний або віртуальний термінал, задана з setgid tty. Коли користувач зайшов у систему і вибрав термінал, з якого буде вводити команди (термінал стає стандартним каналом уведення для shell), то він стає власником термінала, а tty стає групою власників. Через те, що wall виконується з привілеями групи tty, він може відкривати і робити вивід на будь-який термінал.
Витісняєма багатозадачність, характерна для UNIX, – це вид багатозадачності, у якому операційна система сама передає керування від однієї виконуваної програми іншій у випадку завершення операцій вводу-виводу, виникнення подій в апаратурах комп'ютера, витікання таймерів і квантів часу, або ж надходжень тих або інших сигналів від однієї програми до іншої. У цьому виді багатозадачності процесор може бути переключений з виконання однієї програми на виконання іншої без урахування першої програми й буквально між будь-якими двома інструкціями в її коді. Розподіл процесорного часу здійснюється планувальником процесів. До того ж кожному завданню може бути призначений користувачем або самою операційною системою певний пріоритет, який забезпечує гнучке керування розподілом процесорного часу між завданнями (наприклад, можна знизити пріоритет ресурсомісткій програмі, знизивши тим самим швидкість її роботи, але підвищивши продуктивність фонових процесів). Цей вид багатозадачності забезпечує швидший відгук на дії користувача.
Переваги багатозадачності UNIX:
можливість повної реалізації багатозадачного вводу-виводу в ядрі ОС, коли очікування завершення вводу-виводу однією програмою дозволяє процесору тим часом виконувати іншу програму;
різке підвищення надійності системи в цілому, у поєднанні з використанням захисту пам'яті – ідеал у вигляді «жодна програма користувацького режиму не може порушити роботу ОС у цілому» стає досяжним хоча б теоретично;
можливість повного використання багатопроцесорних і багатоядерних систем.
Недоліки: необхідність особливої дисципліни при написанні коду, особливі вимоги до його реентрантности, до захисту всіма поділюваними й глобальних даних об'єктами типу критичних секцій й mutex'ов.
 
Список використаних джерел:
 
Азаров О. Д. Основи роботи та адміністрування мережних операційних систем: Навч. посіб. для студ. спец. «Комп'ютер. системи та мережі» ден. та заоч. форми навч. / О. Д. Азаров, С. М. Захарченко, Є. В. Яремчук, В. М. Дубінін; Вінниц. держ. техн. ун-т. – Вінниця, 2001. – 145 с.
Антонюк М. И. Unix. Администрирование. Файловая система / М. И. Антонюк, Я. М. Антонюк. – К. : Академпериодика, 2004. – 102 с.
Рамський Ю. С. Адміністрування комп'ютерних мереж і систем: навч. посіб. / Ю. С. Рамський, В. П. Олексюк, А. В. Балик. – Т. : Навч. кн. – Богдан, 2010. – 195 с.
Хорвиц Д. Unix-системы. От проектирования до сопротивления: Пер. с англ. / Хорвиц Джеф. – К. ; М. ; СПб. : Торг. -издат. дом DiaSoft, 2004. – 589 с.
Чернишенко С. В. Операційна система UNIX та принципи роботи з відкри-тим програмним забезпеченням: навч. посіб. для студ. ВНЗ / С. В. Чернишен-ко, М. М. Ясько, В. С. Чернишенко. – Хмельницький: ХНУ, 2012. – 159 с.
Шеховцов В. А. Операційні системи: підруч. для студ. / В. А. Шеховцов. – К. : Вид. група BHV, 2008. – 576 с.
CAPTCHA на основе изображений