Моделювання станів процесів в Linux засобами мови програмування С.

Матеріал з Вікі ЦДУ
Версія від 21:27, 7 січня 2013; Малашкевич Олексій (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Вступ

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

Написання, компіляція та запуск С програм в Linux

Для компіляції С програм було використано GNU Compiler Collection (GCC) який є набором компіляторів для різних мов програмування, розроблений в рамках проекту GNU. GCC використовується як стандартний компілятор для вільних UNIX-подібних операційних систем.

Першим этапом створення програми є безпосередньо написання програмного коду, набирати код програми можна в будь-якому текстовому редакторі, наприклад Gedit після чого потрібно зберегти файл з відповідним розширенням, яке покаже компілятору GCC на якій саме мові програмування було написано програму, для мови С використовується розширення .с. Для того щоб скомпілювати програму потрібно перейти в термінал, та запустити команду gcc program.c -o program

Де program.c назва текстового файлу з кодом програми, program – назва виконуваного файлу, опція -o відповідно задає ім'я виконуваного файлу. Після того як програма була скомпільована, та був створений виконуваний файл, його можна запустити наступною командою ./program

Моделювання cтану виконання (R)

Виконання це єдиний активний стан процесу, в даному стані процес займає процесор. Стан виконання можна легко моделювати за допомогою звичайного циклу (Лістинг 1).

#include <stdio.h>
int main(void)
{
while(1==1)
printf("Running\n");
return 0;
}

Лістинг 1. Стан виконання.

Головним елементом програми є безкінечний цикл while який виводить на термінал слово Running. Цього цілком достатньо для того щоб процес завжди знаходився в стані виконання.

Моделювання cтану чекання що переривається (S)

Чекання що переривається – стан блокування при якому процес чекає появи деякої події, наприклад операцію вводу виводу (Лістинг 2).

#include <stdio.h>
int main(void)
{
char a;
printf("Wait\n");
scanf("%c",&a);
return 0; }

Лістинг 2. Стан чекання що переривається.

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