2.2.4 Lõimelisus

Hargtöötlus (Multithreading) on OS'i võime toetada mitmeid samaaegseid käivitusharusid ühe protsessi sees. Iga protsess koosneb vähemalt ühest lõimest. Protsess ja tema lõimed moodustavad tegumi (task). Kui protsess töötab ühelõimelisena siis on see protsess esitatud protsessi juhtploki, kasutaja aadressiruumi ja pinumälu aadressidega. Töötamise ajal kontrollib protsess protsessori registreid ja registrite seis salvestatakse kui protsess ei tööta. Hargtöötlusega keskkonnas on samuti protsessiga seotud ainult üks protsessi juhtplokk ja kasutaja aadressiruum aga lisaks on eraldi pinumälu iga lõime jaoks ja eraldi juhplokid igale lõimele, mis sisaldavad registrite väärtuseid, prioriteeti ja muud lõime seisundiga seotud infot. Seega kõik ühe protsessiga seotud lõimed jagavad selle protsessi ressursse, nad asuvad samas aadressiruumis ja omavad juurdepääsu samadele andmetele.Kui üks lõim muudab mälus andmeid siis saavad teised lõimed muudetud andmeid lugeda ja kui üks lõim avab faili lugemiseks siis saavad ka teised sama protsessi lõimed seda faili lugeda. Eelised, mida annab lõimede kasutamine:
- Lõime loomine on oluliselt kiirem kui protsessi loomine
- Lõime lõpetamine (Terminate) võtab vähem aega kui protsessi lõpetamine
- Kahe sama protsessi lõime vahel ümberlülitumine on kiirem kui erinevate protsesside ümberlülitamine
- Sama protsessi lõimede vahel on kommunikatsioon kiirem, kuna nad jagavad sama mälu ja faile ning ei vaja kernelit ühenduse pidamiseks.
Lõimedekasutamisel on oluline tagada koordineerimise mehhanismid protsessi lõimede jaoks, et oleks tagatud õige tegevuste järjekord.
Joonis 2‑8. Protsess võib koosneda mitmest lõimest (Allikas: Learning Materials for Information Technology Professionals (EUCIP-Mat))