
- •Лабораторна робота № 10 основи роботи з операційною системою unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Загальна характеристика ос сімейства unix
- •2.2 Архітектура unix
- •2.3 Функціонування системи unix
- •2.3.1 Ядро системи
- •2.3.2 Початок і завершення сеансу робіт
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •2.1 Основні характеристики FreeBsd
- •2.2 Історична довідка
- •2.3 Мета проекту FreeBsd
- •2.4 Вимоги до системи при інсталяції FreeBsd
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Поняття процесу
- •2.2 Компоненти процесу
- •2.2.1 Ідентифікатор процесу
- •2.2.2 Ідентифікатор батьківського процесу
- •2.2.3 Ідентифікатор користувача і групи
- •2.3 Стан процесу, "заблукалі" процеси
- •2.4 Управління процесами, команди kill та nice
- •2.4.1 Дворівнева схема керування процесами
- •2.4.2 Команда kill
- •2.4.3 Команда nice
- •2.5 Поточний контроль процесів, команди ps та top
- •2.6 Захист фонових процесів, команда nohup
- •3 Ключові запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Лабораторна робота № 13 права доступу в операційній системі unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Поняття прав доступу користувача
- •2.2 Основні біти доступу (читання/запис/виконання)
- •2.3 Додаткові біти доступу
- •2.4 Сполучення бітів доступу
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Основні поняття клієнт-серверної архітектури
- •2.2 Основи мережного програмування
- •2.3 Компіляція
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Основні комбінації клавіш і команди
- •Закінчення таблиці а2
- •Закінчення таблиці а4
- •Приклади програм для реалізації клієнт-серверної архітектури
- •Перевірка буфера
- •Зчитування запису
- •Лістинг 2 Server-сервер, котрий демонструє застосування функції readvrev
2.1 Поняття процесу
В літературі з тематики операційних систем поняття «процес» є базовим і водночас найменш точно означеним. Існує безліч означень як формального, так і неформального характеру, неоднозначність в означенні є зрозуміла. Поняття «процес» є певним різновидом абстракції, котрий по-різному використовують, а також і розтлумачують по-різному. Приміром, точки зору прикладних і системних програмістів щодо цього розходяться в деталях, у формах сприйняття й реалізації цього поняття.
Є всі підстави стверджувати, що архітектура сучасної багатопрограмної ЕОМ є багатопроцесорна. Насправді, процесор — це будь-який пристрій у складі ЕОМ, здатний автоматично виконувати припустимі для нього дії в певному обумовленому порядку, тобто за програмою, збереженою в пам’яті і безпосередньо доступною такому активному пристроєві. Тоді, окрім центрального процесора (одного чи декількох), можна назвати процесором канал та пристрій, який працює з каналом. У даному тлумаченні оператор також підпадає під означення процесора. Поміж процесорами в системі існують інформаційні й керувальні зв’язки.
Кожен процесор — це такий об’єкт у системі, яким, у загальному випадку, бажали б скористатися водночас декілька користувачів для виконання своєї програми на процесорі (йдеться не обов’язково про центральний процесор). Стосовно кожного користувача, котрий претендує на виконання програми на певному процесорі, й системи, яка розподіляє цей процесор з-посеред багатьох користувачів, впроваджується поняття «процес». У загальному випадку процес— це певна діяльність, пов’язана з виконанням програми на процесорі.
Процес – фундаментальне поняття операційних систем сімейства UNIX. За допомогою керування процесами відбувається керування ресурсами комп’ютера, використовуваними для виконання програми. Вам може здаватись, що в UNIX усе виконується одночасно, однак насправді в певну одиницю часу виконується лише один процес. Ілюзію паралельного виконання створює метод «квантування часу», за допомогою якого система через певні проміжки часу (10...20 мс) змінює поточний виконуваний процес.
Системний адміністратор може контролювати стан процесу, керувати наданням часу центрального процесора кожному процесові, припиняти й примусово завершувати виконання процесу.
2.2 Компоненти процесу
Кожен процес складається з адресного простору й набору структур даних, які містяться в ядрі системи. До найбільш важливих даних у структурах належать:
таблиця розподілу пам’яті процесу;
поточний статус процесу;
пріоритет виконання процесу;
інформація про ресурси системи, використовувані процесом;
власник процесу.
2.2.1 Ідентифікатор процесу
Кожному новому процесові привласнюється унікальний номер — PID. Фактичне значення PID особливої ролі не відіграє: номери призначаються ядром просто один за одним, розпочинаючи з 0 й завершуючи 65535. Коли номери закінчуються, ядро розпочинає знову з 0, пропускаючи процеси, які ще існують в PID.
2.2.2 Ідентифікатор батьківського процесу
Новий процес в UNIX утворюється шляхом клонування одного з існуючих процесів, після чого текст (тобто набір інструкцій для процесора) нового процесу замінюється на текст програми, котру цей процес має виконати. В UNIX вихідний процес називають батьківським, а його клон – породженим, або дочірнім.
Окрім власного ідентифікатора PID, кожен процес має атрибут свого батьківського процесу – PPID.