En arbetsuppsättning är ett begrepp inom datavetenskap som bestämmer mängden minne som krävs av en process under ett givet tidsintervall.
Med andra ord är arbetsuppsättningen för en process den uppsättning sidor i processens virtuella adressutrymme som för närvarande finns i fysiskt minne [1] (mappade till processens adressutrymme).
Peter Denning (1968) definierar "arbetsuppsättningen av informationför en process vid en tidpunktsom den uppsättning information som refereras av en process under ett tidsintervall" [2] . Vanligtvis tas en minnessida som en informationsenhet . Det föreslås att man tänker på arbetsuppsättningen som en grov uppskattning av den uppsättning sidor som processen kommer att komma åt i framtiden (till exempel inom de kommandetidsenheterna), och, ännu viktigare, som en indikator på vilka sidor som bör lagras i huvudminnet för att processen ska gå snabbare.
För prestanda spelar det roll vilka sidor som finns kvar i huvudminnet (i motsats till sidor som söks ut till extraminnet): om du lämnar för många sidor som ägs av en process i huvudminnet minskar antalet processer som kan köras samtidigt. Om för få processsidor finns kvar i huvudminnet kommer sidfelsfrekvensen att skjuta i höjden och antalet aktiva processer som för närvarande körs tenderar till noll.
Enligt arbetsuppsättningsmodellen kan en process vara i RAM -minne om och bara om uppsättningen av alla dess för närvarande använda sidor (eller uppsättningen av senast använda sidor, som ofta används som en approximation) kan finnas i RAM. Modellen fungerar enligt "allt eller ingenting"-principen, det vill säga om antalet minnessidor som behövs för processen växer och det inte finns något ledigt utrymme i RAM-minnet, så laddas processen bort från minnet helt för att frigöra minne för användning av andra processer.
Ofta kan en tungt belastad dator ha så många processer i kön att, om de tillåts köra i samma tidssegment , kommer mängden minne de refererar till att överstiga mängden RAM, vilket resulterar i att virtuellt minne slår ut .
Avlastning av vissa processer från minnet gör att exekveringen av alla processer, även tillfälligt urladdade från minnet, slutförs mycket tidigare än när man försöker starta alla processer samtidigt. Processexekveringen kommer att slutföras mycket tidigare än att köra varje process en i taget, eftersom samtidighet gör att en process kan köras medan andra väntar på att få tillgång till hårddisken eller andra globala resurser att slutföra. Med andra ord förhindrar arbetsuppsättningsstrategin att det virtuella minnet slås ut samtidigt som en hög grad av multiprogrammering bibehålls . Således optimerar denna strategi CPU-användning och bandbredd.
Den största svårigheten med att implementera den beskrivna modellen är att hålla reda på arbetsuppsättningen. För att göra detta, från hela strömmen av processåtkomster till minnessidor, spåras de senaste åtkomsterna under ett tidsintervall som kallas arbetsuppsättningsfönstret. Med varje minnesåtkomst läggs en ny länk till sidan till i början av fönstret, och den äldsta länken är utanför den. En sida anses tillhöra arbetsuppsättningen om det finns en länk till den i arbetsuppsättningsfönstret [3] .
För att undvika omkostnader som är förknippade med lagring av ett stort antal minnessidareferenser, implementeras arbetsuppsättningsberäkning ofta genom att hålla reda på senast en minnessida öppnades. En sida anses tillhöra arbetsuppsättningen om skillnaden mellan den aktuella tiden och den senaste åtkomsttiden inte överstiger storleken på arbetsuppsättningsfönstret. Om denna skillnad överstiger fönsterstorleken kan sidan tas bort.
Arbetsuppsättningsstrategin är inte en sidbytesalgoritm , men sidersättningsalgoritmer kan ta hänsyn till arbetsuppsättningen för en process och inte ta bort sidorna som den äger. Det finns till exempel en modifierad version av klockalgoritmen som kallas WSClock.
av operativsystem | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Kärna |
| ||||
Processledning _ |
| ||||
Minneshantering och adressering | |||||
Ladda och initieringsverktyg | |||||
skal | |||||
Övrig | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |