Algoritmi “Grupi i punës” per zevendesimin e faqeve ne memorje

Algoritmi Grupi i punes (working set) mori këtë emër nga Denning në vitin 1980.

Pershkrim

Proçesi normalisht nis pa pasë asnjë faqe në memorie. Sapo CPU-ja përpiqet të marre instruksionin e parë, shkaktohet një gabim në faqe. Kjo bën që sistemi i shfrytëzimit të nisë punën për marrjen në memorie të faqes që i duhet instruksionit të parë. Do ketë përsëri gabime faqeje që duhen për variablat globale si dhe për procedurat.

Pas pak proçesi ka shumicën e faqeve që i duhen dhe vazhdon punën më mire, duke pasë më rrallë gabime faqesh. Kjo strategji quhet ndryshe dhe marrje sipas kërkesës ( demand paging ) dhe në këtë mënyrë faqet ngarkohen vetëm kur duhen, jo para se të nevojiten.

Bashkësia e faqeve që një proçes përdor ne një moment të caktuar quhet grup pune.

Lidhja me memorjen

Nqs i gjithë grupi i punës është ne memorie , atëherë proçesi do të ekzekutohet pa probleme, pa shkaktuar gabime faqesh.

Nqs memoria është shume e vogël për të mbajtur të gjithë grupin e punës, atëherë proçesi mund të shkaktoje shumë gabime faqesh dhe do ekzekutohet ngadalë. Kjo ndodh për faktin se ekzekutimi i një instruksioni realizohet për pak nanosekonda, kurse leximi i një faqeje nga disku kërkon 10 milisekonda. Nqs kemi shkallen një instruksion për 10 milisekonda, atëherë për një proçes do duhej vite për të mbaruar.

Një proçes i cili shkakton shpesh gabime faqesh ( një në pak instruksione ) atëherë ky proçes quhet i shkatërruar (thrashing).
Në një sistem multiprogramimi , proçeset lëvizen në disk për ti lëne hapësire proçeseve tjera të kenë në dispozicion CPU-në.

Cështja shtrohet se cfarë do ndodhë kur këto faqe do risillen në memorie. Asgjë e veçantë nuk do ndodhë, proçesi përsëri do jetë nën kushte gabimesh faqesh derisa të vijnë në memorie të gjitha faqet që kërkohen.

Problemi është të shmangim këtë përsëritje të panevojshme që shkaktohet çdo herë që një proces do rinisë punën. Për këtë shumë sisteme përpiqen të mbajnë shënim grupin e punës për çdo proçes dhe para se proçesi të nisë punën, të sigurohen se grupi i tij i punës është në memorie.

Algoritmi Grupi i Punes u projektua që të zvogëlonte ndjeshëm shkallën e gabimeve të faqeve. Ngarkimi i faqes para se të ekzekutohet proçesi quhet ndryshe dhe parafaqosja (prepaging), por mos harroni se grupi i punës ndryshon vazhdimisht.

Për të implementuar këtë model është e nevojshme që sistemi i shfrytëzimit të mbajë shënim faqet që janë në grupin e punës të një proçesi. Duke pasë këtë informacion ne mund të zhvillojmë paraprakisht një algoritëm zëvendësimi të faqeve.

Bazuar në librin Modern Operating Systems, A.Tanenbaum