Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання icon

Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання




НазваМетодичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання
Сторінка7/8
Дата конвертації10.04.2013
Розмір0.66 Mb.
ТипМетодичні вказівки
1   2   3   4   5   6   7   8
^

Завдання до виконання


  1. Завантажтеся в систему під Вашим користувацьким ім'ям.

  2. Створіть новий текстовий файл text за допомогою редактора vi. Наберіть два абзаци тексту. Текст повинен містити Ваше прізвище (наприклад, у вигляді підпису). Запишіть файли під іменами text і text1, вийдіть із редактора.

  3. Установіть на файл text1 права доступу так, щоб Ви могли тільки читати цей файл, але не модифікувати його.

  4. Завантажте файл text у редактор, скопіюйте перші 2 рядка тексту в буфер і вставте їх у кінець тексту.

  5. Запишіть файл під тим же ім'ям.

  6. Не виходячи з редактора, завантажте файл text1 і, попередньо відкривши новий shell і змінивши права доступу на файл, запишіть файл, не виходячи з редактора.

  7. Користуючись пойменованими буферами, перенесіть 3 рядки тексту з першого файлу в другий. Збережіть зміни. Вийдіть з редактора.

  8. Відкрийте у редакторі файл text і в кінець його додайте уміст файлу text1.

  9. Запишіть отриманий файл як text2 і, не виходячи з редактора, видаліть файли text і text1.
^

Лабораторна робота №5. Процеси в ОС UNIX і керування ними

Мета


Оволодіння практичними навичками роботи з процесами — створення і знищення, керування процесами і їхній аналіз
^

Завдання для самостійної підготовки

1.Вивчити:


  • поняття процесу і його характеристики;

  • вивід на екран списку процесів і його аналіз;

  • фонові й активні процеси;

  • пріоритет процесів і його зміна;

  • відправлення сигналів процесам, організація перехоплення сигналів;

  • виконання завдань у системі в заданий час і з заданою періодичністю.
^

2.Ознайомитись з такими командами UNIX:


ps, kill, fg, bg, jobs, crontab, at

Зверніть увагу на використання параметру командного рядка "&"

3.Скласти послідовність команд для виконання необхідного варіанта завдання

^

Довідковий матеріал


UNIX – багатозадачна система з розділенням часу. Це означає, що в системі одночасно виконується багато процесів. Кожний процес асоційований з певним користувачем, від імені якого цей процес діє. Для того, щоби переглянути список процесів, існує команда ps. Ця команда має багато ключів-модифікаторів, які визначають, яку саме інформацію про процеси повинна виводити команда. Слід зазначити, що в різних системах UNIX значення цих ключів може суттєво відрізнятись. Типові ключі: -a виводить інформацію про всі процеси, а не лише про процеси даного користувача, -l та -x виводять розширену інформацію про процес.

Кожний процес в системі має свій унікальний ідентифікатор – PID. За цим ідентифікатором можна звертатись до процесу. Крім того, кожний процес виникає не сам по собі – він має так званий батьківський процес, що характеризується ідентифікатором PPID (parent process ID). Таким чином утворюється ієрархія процесів, що бере початок від початкового процесу init.

Створення нового процесу у системі UNIX виконується у два етапи. Спочатку системний виклик fork() викликає “розщеплення” поточного процесу на два тотожні (різниця буде лише у тому, що процес-“нащадок” має інші PID і PPID). Далі виконується системний виклик exec(), який “підміняє” контекст поточного процесу іншим контекстом. Розглянемо типовий приклад, коли один процес має запустити на виконання інший –командна оболонка sh виконує команду ls, для чого утворює новий процес, в якому виконується програма /usr/bin/ls. Для цього програміст, який пише код sh, повинен передбачити такі кроки:

  1. Якщо під час синтаксичного аналізу командного рядка виявлено, що необхідно запустити на виконання деяку команду, то виконується виклик fork().

  2. Наступна за fork() інструкція перевіряє значення, що повернув виклик. Якщо виклик fork() був успішний, то в результаті його виконання утворюється новий процес, тотожній батьківському, і операційна система буде виконувати їх обидва (в режимі розділення часу). Для процесу-“нащадка” значення, що повертає fork(), дорівнює 0, для батьківського процесу повертається значення PID нащадка.

  3. Якщо це процес-нащадок, то виконується виклик exec(), якому в якості параметра передається ім’я файлу програми, яку необхідно запустити на виконання (в нашому прикладі – /usr/bin/ls). Якщо виклик був успішний, то на цьому виконання коду sh припиняється, і на його місце завантажується код ls.

Якщо це батьківський процес, то його дії залежать від того, які параметри були у командному рядку. Зокрема, якщо ls було запущено у пріоритетному режимі7, то виконання sh призупиняється до завершення процесу-нащадка, якщо ж ls було запущено у фоновому режимі, то sh видає необхідні повідомлення про запуск фонового процесу і продовжує свою роботу, тобто знову приймає і редагує командний рядок.

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

Користувач також може відправити процесу сигнал, для цього існує команда kill. Формат команди:

kill [-<сигнал>] <PID>


<сигнал> – це мнемонічне або числове позначення сигналу (наприклад, STOP, TERM, CONT, 9), а <PID> –ідентифікатор процесу, якому посилають сигнал. Якщо не вказати параметр <сигнал>, то буде відправлено сигнал завершення процесу TERM (15). Цей сигнал може перехоплюватись процесом, але існує сигнал KILL (9), який не перехоплюється і безумовно знищує процес (якщо у користувача є достатньо для цього прав). Таким чином можна зупинити будь-який свій процес, якщо над ним втрачене керування (або процес “завис”, що у системі UNIX трапляється дуже нечасто, або користувач не знає, яку команду процес може сприйняти). Для цього слід зайти з іншої консолі (віртуального або фізичного терміналу) і дати команду kill -9 <PID>, де <PID> можна дізнатись за допомогою попередньої команди ps.

Команда ps без аргументів дає список лише процесів даного користувача і (в деяких системах) лише пов’язаних з конкретним терміналом. При роботі в графічній оболонці, а також при роботі на персональному комп’ютері, де підтримується певна кількість так званих віртуальних терміналів, користувач може працювати в системі, використовуючи одночасно кілька терміналів (наприклад, на персональних комп’ютерах між ними можна переключатись комбінаціями клавіш Alt+F#, де F# – одна з функціональних клавіш). Однак в часи створення системи UNIX такі можливості не передбачались. Передбачалось, що користувач має доступ лише до одного терміналу. Тому було розроблено систему завдань і фонового виконання процесів, щоби користувач міг одночасно виконувати різні задачі.

Коли користувач дає команду з консолі, в системі запускається процес, або кілька процесів. Якщо в командному рядку утворюється конвеєр (наприклад, ls –l | wc –l), то всі процеси (у нашому прикладі ls і wc) запускаються одночасно. Разом вони складають так зване завдання. Завдання пов’язано з терміналом. Поки воно не завершиться, користувач не має можливості вводити наступну команду. Це так званий пріоритетний (foreground) режим виконання завдання. Щоби під час виконання завдання мати можливість запускати інше завдання, перше з них слід запустити в так званому фоновому (background) режимі. Для того, щоби запустити завдання в фоновому режимі, слід завершити рядок команди символом “&” (після пробілу). При цьому стандартний ввід за замовчанням назначається порожньому файлу /dev/null. Слід врахувати, що завдання в фоновому режимі може намагатись здійснювати вивід на екран, заважаючи при цьому виводу пріоритетного процесу (спробуйте працювати, запустивши у фоновому режимі команду ping). Тому слід подбати, щоби фонові завдання здійснювали вивід у файли (див. Лабораторну роботу №4). Завдання, що було запущено у пріоритетному режимі, можна перевести у фоновий. Для цього необхідно спочатку призупинити виконання завдання (комбінація клавіш CTRL-Z). Далі можна поновити виконання завдання у пріоритетному режимі (команда fg) або у фоновому режимі (команда bg). Завдання мають свої номери. Переглянути їх можна за допомогою команди jobs.

Важливою можливістю є запуск певних завдань за розкладом. Це реалізується за допомогою програми-демона crond, який переглядає свої файли crontab (окремі для кожного користувача) і запускає завдання згідно розкладу від імені того користувача, в файлі якого це завдання задано. Для зміни розкладу завдань треба відредагувати файл crontab і після цього перезапустити crond, що може зробити лише root та ті користувачі, яким це право надано. Останнім рекомендується для цього користуватись командою crontab, яка після редагування автоматично перезапускає crond.

Користувачу дозволено виконувати команду crontab тільки за умови, що його ім’я зустрічається в файлі cron.allow і не зустрічається в файлі cron.deny (в різних системах Unix ці файли можуть знаходитись в різних каталогах, наприклад /usr/lib/cron/ або /etc/cron.d/). Якщо обидва файли відсутні, то тільки root може користуватись командою crontab. Якщо cron.allow не існує, cron.deny існує, але не містить імен, то використовувати команду crontab дозволено усім. Файли cron.allow і cron.deny повинні містити по одному імені в рядку.

Існує спеціальна команда at, яка призначена для одноразового виконання заданої команди в будь-який заданий час. Правила дозволу і заборони користування командою at аналогічні crontab (файли at.allow і at.deny). Завдання, що задані командою at, виконуються тим же демоном crond.
1   2   3   4   5   6   7   8



Схожі:

Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання
Операційні системи. Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форми навчання. /...
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до лабораторних занять для студентів спеціальності «Комп’ютерні системи та мережі» денної та заочної форми навчання
Периферійні пристої. Методичні вказівки до лабораторних робіт для студентів спеціальності «Комп’ютерні системи та мережі» денної...
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до виконання самостійної роботи студентів спеціальності ксм денної та заочної форми навчання
Операційні системи. Методичні вказівки до виконання самостійної роботи студентів спеціальності ксм денної та заочної форми навчання....
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до виконання контрольної роботи для студентів спеціальності ксм заочної форми навчання
Периферійні пристрої. Методичні вказівки до виконання контрольної роботи для студентів спеціальності ксм заочної форми навчання.,...
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до виконання лабораторних робіт з дисципліни «мова sql» для студентів денної форми навчання спеціальності
Методичні вказівки до виконання лабораторних робіт з дисципліни «Мова sql» для студентів денної форми навчання спеціальності 050....
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconКонспект лекцій для студентів спеціальності ксм
Операційні системи. Конспект лекцій для студентів спеціальності ксм денної та заочної форми навчання. / проф. Бурчак І. Н., Здолбіцький...
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до лабораторних занять (частина 1) Microsoft Word для студентів спеціальностей
Дані методичні вказівки включають 8 лабораторних робіт, по вивченню текстового редактора Word, тематика яких охоплює частину курсу...
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні рекомендації, вказівки, розробки, над якими працюють викладачі. № п/п Тема розробки Дисципліна Прізвище, ім’я, По батькові
Методичні вказівки до лабораторних занять для студентів усіх спеціальностей денної форми навчання
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до курсового проектування для студентів денної та заочної форм навчання фаху 091501
До курсового проектування для студентів денної та заочної форм навчання фаху 091501
Методичні вказівки до лабораторних занять для студентів спеціальності ксм денної та заочної форм навчання iconМетодичні вказівки до лабораторних робіт для студентів денної форми навчання факультету інформатики та обчислювальної техніки Затверджено Методичною радою нтуу „кпі
Загальна фізика. Квантова фізика : методичні вказівки до виконання лабораторних робіт для студентів денної форми навчання факультету...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи