Keskeinen ero : Kierre ja prosessi ovat kaksi läheisesti toisiinsa liittyvää termiä monisäikeilytyksessä. Tärkein ero näiden kahden termin välillä on, että langat ovat osa prosessia, eli prosessi voi sisältää yhden tai useamman säikeen, mutta lanka ei voi sisältää prosessia.
Ohjelmoinnissa on kaksi perustoimintoa: prosessit ja langat. Molemmat suorittavat sarjan ohjeita. Molemmat aloitetaan ohjelman tai käyttöjärjestelmän avulla. Tämä artikkeli auttaa erottamaan nämä kaksi yksikköä.
Prosessissa on itsenäinen suoritusympäristö. Siinä on täydellinen joukko yksityisiä peruskäyttöresursseja; erityisesti jokaisella prosessilla on oma muistitila. Prosesseja pidetään usein samanlaisina kuin muut ohjelmat tai sovellukset. Yhden hakemuksen suorittaminen voi kuitenkin olla joukko yhteistyössä toimivia prosesseja. Prosessien välisen viestinnän helpottamiseksi useimmat käyttöjärjestelmät käyttävät IP-prosesseja, kuten putkia ja pistorasioita. IPC-resursseja voidaan käyttää myös eri järjestelmien prosessien väliseen viestintään. Useimmat virtuaalikoneen sovellukset toimivat yhtenä prosessina. Se voi kuitenkin luoda lisäprosesseja prosessin rakentajan objektin avulla.
Tietokoneissa lanka voi suorittaa jopa pienimmän ohjelmoitujen ohjeiden sekvenssin, jota voidaan hallita itsenäisesti käyttöjärjestelmän avulla. Langojen ja prosessien sovellukset eroavat toisistaan käyttöjärjestelmässä. Kierteet on kuitenkin valmistettu prosessista ja ne ovat olemassa; jokaisella prosessilla on ainakin yksi. Prosessissa voi olla myös useita säikeitä ja jakaa resursseja, mikä auttaa tehokkaasti viestimään kierteiden välillä.
Yhdellä prosessorilla multitasking tapahtuu, kun prosessori vaihtaa eri kierteiden välillä; sitä kutsutaan monisäikeiseksi. Vaihto tapahtuu niin usein, että kierteet tai tehtävät koetaan samaan aikaan. Langat voivat todella olla samanaikaisia moniprosessorilla tai monisydämisessä, jolloin jokainen prosessori tai ydin suorittaa erilliset langat samanaikaisesti.
Yhteenvetona voidaan todeta, että säikeitä voidaan pitää kevyinä prosesseina, koska ne sisältävät yksinkertaisia ohjeita ja voivat toimia suuremmassa prosessissa. Tietokoneet voivat suorittaa useita säikeitä ja prosesseja samanaikaisesti.
Prosessin ja langan vertailu:
Käsitellä asiaa | Lanka | |
Määritelmä | Ohjelman suoritusesimerkkiä kutsutaan prosessiksi. | Lanka on prosessin alaryhmä. |
Käsitellä asiaa | Sillä on oma kopio vanhemman prosessin tietosegmentistä. | Sillä on suora pääsy prosessin tietosegmenttiin. |
viestintä | Prosesseissa on käytettävä prosessien välistä viestintää kommunikoimaan sisarusten kanssa. | Langat voivat kommunikoida suoraan muiden prosessien kierteiden kanssa. |
kiinteät kustannukset | Prosesseilla on huomattavia yläpuolisia kustannuksia. | Langoilla ei ole lähes ylimääräisiä. |
luominen | Uudet prosessit edellyttävät vanhemman prosessin päällekkäisyyttä. | Uusia lankoja on helppo luoda. |
ohjaus | Prosessit voivat ohjata vain lapsiprosesseja. | Langat voivat hallita huomattavasti saman prosessin kierteitä. |
muutokset | Vanhemman prosessin muutokset eivät vaikuta lasten prosesseihin. | Mahdolliset muutokset pääkierteessä voivat vaikuttaa prosessin muiden kierteiden käyttäytymiseen. |
Muisti | Suorita erillisissä muistitiloissa. | Suorita jaettuun muistitilaan. |
Tiedoston kuvaukset | Useimpia tiedoston kuvaajia ei jaeta. | Se jakaa tiedostoja. |
Tiedostojärjestelmä | Tiedostojärjestelmää ei ole jaettu. | Se jakaa tiedostojärjestelmän kontekstin. |
Signaali | Se ei jaa signaalinkäsittelyä. | Se jakaa signaalin käsittelyn. |
Hallitsee | Prosessia ohjaa käyttöjärjestelmä. | Kierroksia ohjaa ohjelmoija ohjelmassa. |
Riippuvuus | Prosessit ovat riippumattomia. | Langat ovat riippuvaisia. |