Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PGP_Avtosokhranennyy2.docx
Скачиваний:
0
Добавлен:
17.09.2019
Размер:
454.52 Кб
Скачать

Зміст

РОЗДІЛ 1. Теоретичні відомості 3

1.1 Вхід в систему 3

1.2 Отримання інформації про процеси в системі 4

1.3 Неіменовані і іменовані канали 6

1.4 Засоби міжпроцесной комунікації (IPC) 7

1.5 Процеси в операційній системі 9

РОЗДІЛ 2. Постановка задачі із індивідуальним завданням. 11

2.1 Завдання 1 11

2.2 Завдання 2 11

2.3 Завдання 3 11

2.4 Завдання 4 12

2.5 Завдання 5 12

2.6 Завдання 6 12

2.7 Завдання 7 12

2.8 Завдання 8 12

2.9 Завдання 9 13

РОЗДІЛ 3. Результати розрахунково-графічної роботи 13

3.1 Результат виконання завдання 1 13

3.2 Результат виконання завдання 2 16

3.3 Результат виконання завдання 3 18

3.4 Результат виконання завдання 4 23

3.5 Результат виконання завдання 5 26

3.6 Результат виконання завдання 6 26

3.7 Результат виконання завдання 7 26

3.8 Результат виконання завдання 8 27

3.9. Результат виконання завдання 9 27

ВИСНОВКИ 28

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 29

Розділ 1. Теоретичні відомості

    1. Вхід в систему

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

Максимально можлива кількість віртуальних терміналів дорівнює 12, за замовчуванням встановлена система являє 6 віртуальних символьних терміналів і один графічний. Перемикання між терміналами здійснюється комбінацією клавіш Alt - F1 - перший термінал, Alt-F2 - другий термінал і т.д. Перемикання з графічного терміналу в символьний здійснюється поєднанням трьох функціональних клавіш Ctrl Alt F #, де # - номер символьного терміналу.

При вході в систему на конкретному терміналі користувач бачить запрошення hostname login, де hostname - ім'я машини на якій реєструється користувач.

Після успішного введення імені користувача і пароля система виводить запрошення до введення команди.

# - Для суперкористувача root

$ - Для всіх інших користувачів

Система готова до введення команди і користувач може запустити утиліту mc, яка є зручною оболонкою роботи з файловою системою.

$ mc

Часто при першому вході в систему користувача потрібно поміняти пароль, призначений користувачеві адміністратором - використовуйте команду passwd.

$ Passwd

Вихід з терміналу здійснюється по команді exit

$ Exit

Для входу віддаленим користувачем в систему Unix використовується утиліта ssh (security shell)

Для доступу до інших Unix систем з Unix машини:

$ Ssh-l <Ім'я користувача> <IP адреса віддаленої машіни>

Користувач можете набрати команду:

$ Ssh-l <Ім'я користувача> localhost

для доступу по ssh до «своєї» (локальної) машині.

Для організації файлового доступу до Unix використовується протокол ftp і однойменна утиліта, яка входить в усі системи використовують стек протоколів tcp / ip.Для отримання інформації по всім командам Unix, в тому числі і по ftp використовуйте команду man.

man - універсальна довідкова система в Unix

$ Man ftp - отримання довідки по ftp

$ Man ssh

Користувач може скористатися вбудованою довідкою ftp, для цього він повинен запустити команду ftp і ввести команду help

$ Ftp

> Help

Командний інтерпретатор в середовищі UNIX виконує дві основні функції:

- представляє інтерактивний інтерфейс з користувачем, тобто видає запрошення, і обробляє вводяться користувачем команди;

- обробляє і виконує текстові файли, що містять команди інтерпретатора;

В останньому випадку, операційна система дозволяє розглядати командні файли як різновид виконуваних файлів. Відповідно розрізняють два режими роботи інтерпретатора: інтерактивний і командний.

1.2 Отримання інформації про процеси в системі

Для отримання інформації про процеси в системі найбільш часто використовуються утиліти ps і top. У Linux вся інформація про динаміку виконання системи відбивається в каталозі / proc, утиліти ps і top збирають дані про запущені процеси на підставі інформації знаходиться в цьому каталозі.

У командному рядку наберіть: # Ps-AfH | more і ви отримаєте список всіх процесів виконуються в системі

Формат команди наступний: ps [PID] [options]

Повний опис команди ви можете дізнатися - man ps.

Для перегляду ієрархії (дерева) процесів можна скористатися командою tree.

Опція A - забезпечить виведення всіх процесів, f - повну інформацію про процес, ключ H покаже ієрархію процесів. "| More" або "| less" забезпечить 'форматований' вивід на екран.

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

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

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

Програмно породження процесів здійснюється з використанням системного виклику fork () - після виконання цього виклику в системі з'являється процес, який є точною копією процесу, який видав цей системний виклик. Але для запуску програм одного виклику fork () не достатньо - необхідний механізм дозволяє завантажити бінарний код програми в оперативну пам'ять. Такий механізм надає функції групи execl (execl, execlp, execle, execv, execvp). Функція цієї групи здійснює підміну коду процесу її викликав бінарним кодом завантажується програмо.

Коли ви в командному інтерпретаторі набираєте команду Наприклад $ ps - фрагмент коду програми запускає дану команду буде виглядати приблизно так:

Приклад 1.1 Запуск команди ps в командному інтерпретаторі

main ()

int st;

...

if (fork () == 0)

execlp ("ps", "ps", 0);

wait (& st);

Процес, який ініціював системний виклик fork (), прийнято називати батьківським процесом (parent process).

Знову породжений процес прийнято називати процесом нащадком (child process).

Процес нащадок є майже повною копією батьківського процесу

Процес батько і процес нащадок розділяють один і той же кодовий сегмент. Системний виклик fork () в разі успіху повертає батьківського процесу ідентифікатор нащадка, а нащадку 0. У ситуації, коли процес не може бути створений функція fork () повертає -1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]