Working set
વર્કિંગ સેટ એ કોમ્પ્યુટર વિજ્ઞાનમાં એક ખ્યાલ છે જે આપેલ સમય અંતરાલમાં પ્રક્રિયાને જરૂરી મેમરીની માત્રાને વ્યાખ્યાયિત કરે છે. વ્યાખ્યા પીટર ડેનિંગ (1968) "પ્રક્રિયાના સમય અંતરાલ દરમિયાન પ્રક્રિયા દ્વારા સંદર્ભિત માહિતીના સંગ્રહને સમયે પ્રક્રિયાની માહિતીના કાર્યકારી સમૂહ" તરીકે વ્યાખ્યાયિત કરે છે. સામાન્ય રીતે પ્રશ્નમાં માહિતીના એકમોને મેમરી પૃષ્ઠો ગણવામાં આવે છે. આ પૃષ્ઠોના સમૂહનો અંદાજ હોવાનું સૂચવવામાં આવે છે કે જે પ્રક્રિયા ભવિષ્યમાં ઍક્સેસ કરશે (જેમ કે આગલા સમયના એકમો દરમિયાન), અને વધુ સ્પષ્ટ રીતે સૂચવવામાં આવે છે કે કયા પૃષ્ઠોને મુખ્ય મેમરીમાં રાખવા જોઈએ જેથી તે પ્રક્રિયાના અમલમાં સૌથી વધુ પ્રગતિ થઈ શકે. તર્કસંગત મુખ્ય મેમરીમાં કયા પૃષ્ઠો રાખવા જોઈએ તેની પસંદગીની અસર (સહાયક સંગ્રહમાં પેજ કરવા કરતાં અલગ) મહત્વપૂર્ણ છેઃ જો પ્રક્રિયાના ઘણા બધા પૃષ્ઠો મુખ્ય મેમરીમાં રાખવામાં આવે, તો અન્ય ઓછી પ્રક્રિયાઓ કોઈપણ સમયે તૈયાર થઈ શકે છે. જો પ્રક્રિયાના ખૂબ ઓછા પૃષ્ઠોને મુખ્ય મેમરીમાં રાખવામાં આવે, તો તેની પૃષ્ઠ ખામી આવર્તનમાં ઘણો વધારો થાય છે અને હાલમાં સિસ્ટમમાં કાર્યરત સક્રિય (બિન-સસ્પેન્ડેડ) પ્રક્રિયાઓની સંખ્યા શૂન્ય સુધી પહોંચે છે. વર્કિંગ સેટ મોડેલ જણાવે છે કે પ્રક્રિયા રેમમાં હોઈ શકે છે જો અને માત્ર ત્યારે જ જો તે હાલમાં ઉપયોગ કરી રહેલા તમામ પૃષ્ઠો (ઘણીવાર તાજેતરમાં ઉપયોગમાં લેવાતા પૃષ્ઠો દ્વારા અંદાજિત) રેમમાં હોઈ શકે. આ મોડેલ ઓલ અથવા નથિંગ મોડેલ છે, જેનો અર્થ થાય છે કે જો તેને જે પૃષ્ઠોનો ઉપયોગ કરવાની જરૂર છે તે વધે છે, અને રેમમાં કોઈ જગ્યા નથી, તો અન્ય પ્રક્રિયાઓનો ઉપયોગ કરવા માટે મેમરીને મુક્ત કરવા માટે પ્રક્રિયાને મેમરીમાંથી અદલાબદલી કરવામાં આવે છે. ઘણીવાર ભારે લોડ થયેલ કોમ્પ્યુટરમાં ઘણી બધી પ્રક્રિયાઓ કતારમાં હોય છે, જો બધી પ્રક્રિયાઓને એક સુનિશ્ચિત સમય સ્લાઇસ માટે ચલાવવાની મંજૂરી આપવામાં આવે, તો તેઓ રેમ કરતાં વધુ પૃષ્ઠોનો સંદર્ભ લેશે, જેના કારણે કોમ્પ્યુટર "થ્રેશ" થશે. મેમરીમાંથી કેટલીક પ્રક્રિયાઓને અદલાબદલી કરીને, પરિણામ એ આવે છે કે પ્રક્રિયાઓ-એવી પ્રક્રિયાઓ કે જે અસ્થાયી રૂપે મેમરીમાંથી દૂર કરવામાં આવી હતી-જો કોમ્પ્યુટર તે બધાને એક જ સમયે ચલાવવાનો પ્રયાસ કરે તો તેના કરતા ઘણી વહેલી પૂર્ણ થાય છે. જો કોમ્પ્યુટર એક સમયે માત્ર એક જ પ્રક્રિયા પૂર્ણ કરે તો પ્રક્રિયાઓ ખૂબ જલ્દી સમાપ્ત થાય છે કારણ કે તે અન્ય પ્રક્રિયાઓને ચલાવવાની મંજૂરી આપે છે અને તે સમય દરમિયાન પ્રગતિ કરે છે જ્યારે એક પ્રક્રિયા હાર્ડ ડ્રાઇવ અથવા અન્ય કોઈ વૈશ્વિક સ્રોત પર રાહ જોઈ રહી હોય. બીજા શબ્દોમાં કહીએ તો, કાર્યરત સેટ વ્યૂહરચના થ્રેશિંગને અટકાવે છે જ્યારે મલ્ટિપ્રોગ્રામિંગનું પ્રમાણ શક્ય તેટલું ઊંચું રાખે છે. આમ તે CPU ઉપયોગ અને થ્રુપુટને શ્રેષ્ઠ બનાવે છે. અમલીકરણ વર્કિંગ સેટ મોડેલના અમલીકરણમાં મુખ્ય અવરોધ વર્કિંગ સેટ પર નજર રાખવાનો છે. કાર્યરત સેટ વિન્ડો એક ફરતી વિન્ડો છે. દરેક સ્મૃતિ સંદર્ભ પર એક છેડે નવો સંદર્ભ દેખાય છે અને સૌથી જૂનો સંદર્ભ બીજા છેડેથી નીચે પડે છે. એક પૃષ્ઠ કાર્યકારી સેટમાં હોય છે જો તે કાર્યકારી સેટ વિંડોમાં સંદર્ભિત હોય. છેલ્લા k સંદર્ભિત પૃષ્ઠોની યાદી રાખવાના ઓવરહેડને ટાળવા માટે, કાર્યકારી સમૂહને ઘણીવાર છેલ્લા સંદર્ભના સમય t પર નજર રાખીને અમલમાં મૂકવામાં આવે છે, અને કાર્યકારી સમૂહને ચોક્કસ સમયગાળાની અંદર સંદર્ભિત તમામ પૃષ્ઠો ગણવામાં આવે છે. વર્કિંગ સેટ એ પેજ રિપ્લેસમેન્ટ અલ્ગોરિધમ નથી, પરંતુ પેજ-રિપ્લેસમેન્ટ અલ્ગોરિધમ્સ માત્ર એવા પૃષ્ઠોને દૂર કરવા માટે ડિઝાઇન કરી શકાય છે જે કોઈ ચોક્કસ પ્રક્રિયા માટે વર્કિંગ સેટમાં નથી. એક ઉદાહરણ WSClock તરીકે ઓળખાતા ઘડિયાળ અલ્ગોરિધમનો સુધારેલ સંસ્કરણ છે. વેરિયન્ટ્સ વર્કિંગ સેટને કોડ વર્કિંગ સેટ અને ડેટા વર્કિંગ સેટમાં વિભાજિત કરી શકાય છે. જ્યારે મેમરી પદાનુક્રમના સંબંધિત સ્તરે કોડ અને ડેટા અલગ હોય ત્યારે આ તફાવત મહત્વપૂર્ણ છે, જાણે કે ક્યાં તો કાર્યરત સમૂહ પદાનુક્રમના તે સ્તરમાં બંધબેસતું નથી, ત્યારે થ્રેશિંગ થશે. કોડ અને ડેટા ઉપરાંત, વર્ચ્યુઅલ મેમરી ધરાવતી સિસ્ટમો પર, પ્રક્રિયાને અસરકારક રીતે આગળ વધારવા માટે કાર્યકારી સમૂહના પૃષ્ઠોની મેમરી નકશો (વર્ચ્યુઅલ મેમરીથી ભૌતિક મેમરી) એન્ટ્રીઓને ટ્રાન્સલેશન લુકસાઇડ બફર (TLB) માં કેશ કરવી આવશ્યક છે. આ તફાવત અસ્તિત્વમાં છે કારણ કે કોડ અને ડેટા નાના બ્લોક (કેશ રેખાઓ) માં કેશ કરવામાં આવે છે, સંપૂર્ણ પૃષ્ઠો નહીં, પરંતુ સરનામાંની તપાસ પૃષ્ઠ સ્તર પર કરવામાં આવે છે. આમ જો કોડ અને ડેટા વર્કિંગ સેટ કેશમાં બંધબેસે તો પણ, જો વર્કિંગ સેટ ઘણા પૃષ્ઠોમાં વિભાજિત હોય, તો વર્ચ્યુઅલ એડ્રેસ વર્કિંગ સેટ TLBમાં બંધબેસે નહીં, જેના કારણે TLB થ્રેશિંગ થાય છે. અન્ય મર્યાદિત સંસાધનો, સૌથી નોંધપાત્ર પ્રક્રિયાઓ માટે કાર્યકારી સમૂહના એનાલોગ અસ્તિત્વ ધરાવે છે. જો પ્રક્રિયાઓના સમૂહને બહુવિધ પ્રક્રિયાઓ વચ્ચે વારંવાર ક્રિયાપ્રતિક્રિયાની જરૂર હોય, તો તેની પ્રગતિ માટે સહનિર્ધારિત હોવું આવશ્યક છેઃ જો પ્રક્રિયાઓ એક સાથે સુનિશ્ચિત ન હોય-ઉદાહરણ તરીકે, જો ત્યાં બે પ્રક્રિયાઓ હોય પરંતુ માત્ર એક જ કોર હોય જેના પર તેમને અમલમાં મૂકવી હોય-તો પછી પ્રક્રિયાઓ માત્ર સમયના ભાગ દીઠ એક ક્રિયાપ્રતિક્રિયાના દરે આગળ વધી શકે છે. અન્ય સંસાધનોમાં ફાઇલ હેન્ડલ્સ અથવા નેટવર્ક સોકેટ્સનો સમાવેશ થાય છે-ઉદાહરણ તરીકે, એક ફાઇલને બીજી ફાઇલમાં નકલ કરવી એ બે ફાઇલ હેન્ડલ્સ સાથે કરવામાં આવે છેઃ એક ઇનપુટ માટે, એક આઉટપુટ માટે, અને આમ "ફાઇલ હેન્ડલ વર્કિંગ સેટ" નું કદ બે છે. જો માત્ર એક જ ફાઇલ હેન્ડલ ઉપલબ્ધ હોય, તો નકલ હજુ પણ કરી શકાય છે, પરંતુ ઇનપુટ માટે ફાઇલ હેન્ડલ પ્રાપ્ત કરવું, તેમાંથી વાંચવું (બફરમાં કહો), તેને મુક્ત કરવું, પછી આઉટપુટ માટે ફાઇલ હેન્ડલ પ્રાપ્ત કરવું, તેને લખવું, તેને મુક્ત કરવું, પછી ઇનપુટ ફાઇલ હેન્ડલ ફરીથી પ્રાપ્ત કરવું અને પુનરાવર્તન કરવું જરૂરી છે. તેવી જ રીતે સર્વરને ઘણા સોકેટ્સની જરૂર પડી શકે છે, અને જો તે મર્યાદિત હોય તો તેને વારંવાર સોકેટ્સ છોડવાની અને ફરીથી હસ્તગત કરવાની જરૂર પડશે. થ્રેશિંગને બદલે, આ સંસાધનો સામાન્ય રીતે કાર્યક્રમ માટે જરૂરી હોય છે, અને જો તે પૂરતા સંસાધનો પ્રાપ્ત કરી શકતા નથી, તો તે ફક્ત નિષ્ફળ જાય છે. સંદર્ભ નિવાસી સમૂહ કદની સ્થાનિકતા પણ જુઓ કાર્યકારી સમૂહ કદ સંદર્ભો વધુ વાંચન તનેનબાઉમ, એન્ડ્રુ (2009). આધુનિક ઓપરેટિંગ સિસ્ટમ્સ ત્રીજી આવૃત્તિ. પીપી. 209-210 ડેનિંગ, પી. જે. (1980). કાર્ય ભૂતકાળ અને વર્તમાનને સુયોજિત કરે છે. સોફ્ટવેર એન્જિનિયરિંગ પર IEEE વ્યવહારો, 1/1980, વોલ્યુમ SE-6, pp. 64-84. સિલ્બર્સચેટ્ઝ, એ., ગેલ્વિન, પી. બી., અને ગાગ્ને, જી. (2005). ઓપરેટિંગ સિસ્ટમ કન્સેપ્ટ્સ, 7મી આવૃત્તિ. પેલેટિનોઃ વિલી. પીપી. 346. ઓપરેટિંગ સિસ્ટમ ટેકનોલોજી વર્ચ્યુઅલ મેમરી