Proces (računarstvo)

Izgled htop aplicije koja prikazuje spisak procesa (Linux)

U računarstvu, proces je instanca računarskog programa koja se izvršava u jednoj ili više niti. Sadrži programski kod i svu njegovu aktivnost. Ovisno o operativnom sistemu (OS), proces se može sastojati od više niti koji istovremeno izvršavaju zadatke.[1][2] Dok je računarski program pasivni skup instrukcija, proces je taj koji vrši stvarno izvršavanje tih instrukcija.

Multitasking je metoda koja omogućava višestrukim procesima da dijele procesor druge sistemske resurse. Svaka procesorska jezgra izvršava jedan zadatak u isto vrijeme. Multitasking dozvoljava svakom procesoru da se prebacuje između zadataka koji se izvršavaju bez čekanja na završetak svakog zadatka. Ovisno od operativnog sistema, prebacivanja se mogu izvesti kada zadaci izvode operacije ulaza/izlaza, kada zadatak pokazuje da se može prebaciti, ili na hardversko upravljanje prekidom.

Prezentacija

[uredi | uredi izvor]
A process table as displayed by KDE System Guard
Tabela procesa koju prikazuje KDE System Guard

Najčešće, proces računarskog sistema se sastoji od sljedećih resursa:

  • Slika izvršnog mašinskog koda pridruženog programu.
  • Memorija (obično neka oblast virtualne memorije); koja uključuje izvršni kod, podatke specifične za proces (ulaz i izlaz), praćenje aktivnih podrutina i/ili drugih događaja)
  • Sistemski opis resursa koji su dodijeljeni procesu, kao što su deskriptori datoteka (Unix terminologija) ili handles (Windows), te izvori podataka i odvodi.
  • Sigurnosni atributi, kao što su vlasnik procesa i skup dozvola za rad (dozvoljene operacije).
  • Stanje procesora, kao što je sadržaj registara i adresiranje fizičke memorije.

Multitasking i upravljanje procesima

[uredi | uredi izvor]

Multitasking operativni sistem može se samo prebacivati između procesa kako bi djelovao kao da ih izvršava istovremeno (to jest, paralelno), iako praktično samo jedan proces može biti izvršen u bilo kojem trenutku na jednom CPU-u (osim ako CPU ima više jezgara), onda se mogu koristiti višenitne (multithreading) ili druge slične tehnologije).

Procesna stanja

[uredi | uredi izvor]
Različita stanja procesa, prikazana u dijagramu. Strelicama se ukazuje na moguće prelaze između stanja.

Kernel operativnog sistema koji omogućava multitasking zahtjeva procese da imaju određena stanja. Imena za ova stanja nisu standardizirana, ali imaju sličnu funkcionalnost.[1]

  • Prvo, proces je "stvoren" tako što se učitava iz neke vrste uređaja za pohranu (hard disk, CD-ROM, itd.) u glavnu memoriju. Nakon toga procesni planer (eng. scheduler) mu dodjeljuje stanje "čekanja".
  • Dok proces "čeka", on očekuje od planera da uradi takozvani <i>context switch</i> i učita proces u procesor. Stanje procesa tada postaje "pokrenut", a procesor izvršava procesne instrukcije.
  • Ako proces treba da čeka na resurs (na primjer da sačeka korisnički unos), dodjeljuje se "blokirano" stanje. Stanje procesa se mijenja natrag na "čekanje" kada proces više ne treba čekati (u blokiranom stanju).
  • Kada proces izvrši svoj zadatak, ili ga sam operativni sistem završi, više nije potreban. Proces se trenutno uklanja ili se premješta u stanje "prekinuto". Kada se ukloni, on se čeka da bude uklonjen iz glavne memorije.[1][3]

Također pogledajte

[uredi | uredi izvor]

Reference

[uredi | uredi izvor]
  1. ^ a b c Silberschatz, Abraham; Cagne, Greg; Galvin, Peter Baer (2004). "Chapter 4. Processes". Operating system concepts with Java (Sixth izd.). John Wiley & Sons. ISBN 0-471-48905-0.
  2. ^ Vahalia, Uresh (1996). "Chapter 2. The Process and the Kernel". UNIX Internals: The New Frontiers. Prentice-Hall Inc. ISBN 0-13-101908-2.
  3. ^ Stallings, William (2005). Operating Systems: internals and design principles (5th izd.). Prentice Hall. ISBN 0-13-127837-1. (particularly chapter 3, section 3.2, "process states", including figure 3.9 "process state transition with suspend states")

Dalje čitanje

[uredi | uredi izvor]