Linux operatsioonisüsteem kasutab lukku

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 1. juuli 2026, kell 22:54 kasutajalt Imre (arutelu | kaastöö) (→‎Tööpõhimõte)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

TODO

Mõisted

  • Giant Lock
  • Big Kernel Lock (BKL)
  • mutex - mutual exclusive

Tööpõhimõte

Väited

  • lukustamine lahendab moel või teisel ühiskasutuseks mõeldud ressursi kasutamise probleemi - nt lubab korraga kasutada ressurssi ühel actoril (mutex) või max näidatud arvul actoritel (semaphore)
  • kui maailmas olid ühe protsessoriga arvutid oli elu nö lihtsam - arvutil töötas üks kernel ja üks protsessor ja mälus oli üks komplekt nö struktuure
  • kui maailma tekkisid mitme protsessoriga arvutid muutus elu keerulisemaks - arvutil töötas jätkuvalt üks kernel, aga nüüd konkureerisid mälu-struktuuride muutmisel mitu protsessorit ja midagi tuli ette võtta konfliktide ärahoidmiseks
  • konfliktid olid vähem aktuaalsed user space'is ja kasu mitmest protsessorist oli kiiresti olemas user space'is - nt arvutusi nagu andmete järjestamised sai teha mitme protsessori peal samaaegselt kõrvuti
  • konfliktid olid reljeefsemad kernel space'is ja kõige otsekohesem ja ebaefektiivsem oli neid ära hoida kasutades nn giant lock moodi lähenemist - st kui süsteemi mõni protsessor läks kernel space'i siis kõik muud protsessorid olid ootel enne kui said ka midagi teha kernel spece'is (user space'is said nad toimetada edasi)
  • targa süsteemi programmeerimise tulemusena on 2026 aastaks suuresti olemas targemad lahendused - kernel space tegevusi saab ka teha paralleelselt mitme protsessori peal (nt võrguliiklusega tegeleda)

Misc

  • mutex - mutul exclusive puhul üks execution proovib kasutada ühist ressurssi ja kui ei saab läheb nö magama
  • spinlock - istub cpu otsas ja ilma magamata ootab - tundub kallis, aga vahel lühike spin on otstarbekam ressursikasutuse seisukohalt kui lühike sleep
  • semaphore - nt
  • rwlock
  • lock-free

Kasulikud lisamaterjalid