JET School

Proses nədir?

Proses — əməliyyat sistemləri nəzəriyyəsində və praktikasında əsas anlayışlardan biri olub, bir proqramın icra olunmaqda olan halını və ona aid olan bütün resursları təmsil edir. Sadə dillə desək, diskin üzərində sadəcə olaraq passiv şəkildə saxlanılan proqram faylı (məsələn, .exe, .py, .sh) prosessor tərəfindən icraya başlayanda artıq "proses" adlanır. Yəni proqram passiv obyekt, proses isə onun aktiv formasıdır.

Prosesin əsas komponentləri:

  1. Proqram kodu (Text Section) – İcra olunacaq əmrlərin, yəni təlimatların kodlaşdırıldığı hissə.
  2. Proqram sayğacı (Program Counter) – Hazırda icra olunan və ya icra olunacaq növbəti əmrin ünvanını saxlayır.
  3. Yığın (Stack) – Alt proqram çağırışları (function calls), lokal dəyişənlər və geri dönüş ünvanlarını ehtiva edir.
  4. Data hissəsi (Data Section) – Statik və qlobal dəyişənlərin saxlandığı hissə.
  5. Heap (Yığın sahəsi) – Dinamik olaraq ayrılmış yaddaş sahələridir və proqram icra olunduqca dəyişə bilər.
  6. CPU registrləri və kontekst – Prosesin cari vəziyyətini təyin edən informasiya; bu kontekst, proses dayandırıldıqda saxlanılır və yenidən işə salındıqda bərpa olunur.
  7. Açıq faylların siyahısı – Hər prosesin istifadə etdiyi fayllar və fayl deskriptorları.
  8. Proses ID-si (PID) – Hər prosesə əməliyyat sistemi tərəfindən unikal identifikasiya nömrəsi verilir.
  9. Əlaqəli proseslər haqqında məlumat – Valideyn prosesi (parent process), övlad prosesi (child process) və proseslərarası əlaqələr.

Prosesin həyat dövrü (Process Lifecycle):

Prosesin müxtəlif halları mövcuddur və bu halları əməliyyat sistemi idarə edir:

  • New (Yeni) – Proses yaradılır.
  • Ready (Hazır) – Proses icra üçün hazırdır və prosessoru gözləyir.
  • Running (İcra olunur) – Proses hal-hazırda CPU-da işləyir.
  • Waiting (Gözləmə) – Proses bir hadisənin baş verməsini və ya resursun sərbəst olmasını gözləyir.
  • Terminated (Sonlanmış) – Proses tamamlanmış və yaddaşdan silinmişdir.

Proseslərin idarə olunması:

Əməliyyat sistemi hər bir prosesi planlaşdırma alqoritmləri vasitəsilə idarə edir. Planlaşdırıcı (scheduler) hansı prosesin növbəti icra olunacağını təyin edir. Burada istifadə olunan əsas planlaşdırma strategiyaları bunlardır:

  • FCFS (First Come First Serve)
  • SJF (Shortest Job First)
  • Round Robin
  • Priority Scheduling

Proseslərarası əlaqə və sinxronizasiya:

Çox vaxt bir neçə prosesin eyni vaxtda işləməsi lazım olur və bu zaman məlumat mübadiləsiresursların koordinasiyası vacib olur. Bu məqsədlə aşağıdakı üsullar istifadə olunur:

  • IPC (Inter-Process Communication) vasitələri: borular (pipes), siqnallar (signals), mesaj növbələri (message queues), paylaşılan yaddaş (shared memory), və s.
  • Sinxronizasiya mexanizmləri: semaforlar (semaphores), mutex-lər, monitorlar və s.

Proses və ipliklər (Threads):

Proseslərin daxilində çoxsaylı ipliklər (threads) ola bilər. Eyni prosesin iplikləri yaddaş və resursları paylaşa bilər, bu da daha sürətli və çevik proqramların yazılmasına imkan yaradır. Belə yanaşmaya çoxiplikli proqramlaşdırma (multithreading) deyilir. Proseslər isə bir-birilə daha sərt sərhədlərə malikdir və bir-birinin yaddaş sahəsinə daxil ola bilməzlər.

Proses və təhlükəsizlik:

Hər proses izolyasiya olunmuş mühitdə işlədiyi üçün təhlükəsizlik baxımından vacibdir. Əməliyyat sistemi prosesi digər proseslərin yaddaşına müdaxilə etməyə qoymur. Eyni zamanda prosesin hüquqları olur – məsələn, müəyyən fayllara çıxış hüququ, əməliyyatların icazəsi və s.

Nəticə:

Proses anlayışı əməliyyat sisteminin ən əsas funksiyalarından biridir. Əgər əməliyyat sistemi resursların idarə olunmasını, yaddaş bölgüsünü, istifadəçi proqramlarının icrasını təmin edirsə, bütün bu funksiyalar birbaşa proseslərlə bağlıdır. Bu səbəbdən, əməliyyat sistemini öyrənən hər kəs üçün proses anlayışını dərindən və sistemli şəkildə başa düşmək vacibdir.

Əlaqəli terminlər:

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!