Data segment
કમ્પ્યુટિંગમાં, ડેટા સેગમેન્ટ (ઘણીવાર સૂચવવામાં આવે છે. ડેટા) એ ઑબ્જેક્ટ ફાઇલનો એક ભાગ અથવા પ્રોગ્રામની અનુરૂપ સરનામાંની જગ્યા છે જેમાં પ્રારંભિક સ્થિર ચલ, એટલે કે વૈશ્વિક ચલ અને સ્થિર સ્થાનિક ચલ હોય છે. આ સેગમેન્ટનું કદ પ્રોગ્રામના સ્રોત કોડમાં મૂલ્યોના કદ દ્વારા નક્કી થાય છે, અને રન ટાઇમ પર બદલાતું નથી. ડેટા સેગમેન્ટ વાંચી/લખી શકાય છે, કારણ કે ચલની કિંમતો રન ટાઇમ પર બદલી શકાય છે. આ ફક્ત-વાંચવા માટેના ડેટા સેગમેન્ટ (સેગમેન્ટ અથવા. રોડેટા) થી વિપરીત છે, જેમાં ચલને બદલે સ્થિર અચળાંકો હોય છે; તે કોડ સેગમેન્ટથી પણ વિપરીત છે, જેને ટેક્સ્ટ સેગમેન્ટ તરીકે પણ ઓળખવામાં આવે છે, જે ઘણા આર્કિટેક્ચર પર ફક્ત-વાંચવા માટે હોય છે. પ્રારંભિક માહિતી, ચલ અને અચળ બંને, તેના બદલે BSS સેગમેન્ટમાં છે. ઐતિહાસિક રીતે, આંતરિક સરનામા રજિસ્ટરના મૂળ કદ કરતાં મોટી મેમરી સરનામાંની જગ્યાઓને ટેકો આપવા માટે સક્ષમ થવા માટે, પ્રારંભિક સીપીયુએ વિભાજનની એક પદ્ધતિ અમલમાં મૂકી હતી જેમાં તેઓ ચોક્કસ ક્ષેત્રોમાં ઓફસેટ તરીકે ઉપયોગ કરવા માટે અનુક્રમણિકાના નાના સમૂહને સંગ્રહિત કરશે. સીપીયુના ઇન્ટેલ 8086 પરિવારે ચાર સેગમેન્ટ્સ પૂરા પાડ્યા હતાઃ કોડ સેગમેન્ટ, ડેટા સેગમેન્ટ, સ્ટેક સેગમેન્ટ અને એક્સ્ટ્રા સેગમેન્ટ. દરેક સેગમેન્ટને ચલાવવામાં આવતા સોફ્ટવેર દ્વારા મેમરીમાં ચોક્કસ સ્થાન પર મૂકવામાં આવ્યું હતું અને તે સેગમેન્ટમાં ડેટા પર સંચાલિત તમામ સૂચનાઓ તે સેગમેન્ટની શરૂઆતની તુલનામાં કરવામાં આવી હતી. આ 16-બીટ એડ્રેસ રજિસ્ટરને મંજૂરી આપે છે, જે સામાન્ય રીતે 64 KB મેમરી સ્પેસનો ઉપયોગ કરી શકશે, જેથી 1 MB મેમરી સ્પેસનો ઉપયોગ કરી શકાય. તે સમયની પ્રોગ્રામિંગ ભાષાઓમાં ચોક્કસ કાર્યો સાથે અલગ બ્લોકમાં મેમરી જગ્યાનું આ વિભાજન અને આ ખ્યાલ હજુ પણ આધુનિક પ્રોગ્રામિંગ ભાષાઓમાં વ્યાપકપણે ઉપયોગમાં છે. પ્રોગ્રામ મેમરી કમ્પ્યુટર પ્રોગ્રામ મેમરીને મોટા ભાગે બે વિભાગોમાં વર્ગીકૃત કરી શકાય છેઃ ફક્ત વાંચવા માટે અને વાંચવા/લખવા માટે. આ તફાવત માસ્ક રોમ, ઇ. પી. આર. ઓ. એમ., પી. આર. ઓ. એમ. અથવા ઇ. ઇ. પી. આર. ઓ. એમ. જેવી પ્રારંભિક સિસ્ટમો દ્વારા તેમના મુખ્ય પ્રોગ્રામને ફક્ત-વાંચી શકાય તેવી મેમરીમાં રાખવાથી વધ્યો હતો. જેમ જેમ સિસ્ટમો વધુ જટિલ બનતી ગઈ અને પ્રોગ્રામ્સને રોમમાંથી ચલાવવાને બદલે અન્ય માધ્યમોમાંથી રેમમાં લોડ કરવામાં આવ્યા, પ્રોગ્રામની મેમરીના કેટલાક ભાગોમાં ફેરફાર ન કરવો જોઈએ તે વિચાર જાળવી રાખવામાં આવ્યો. આ કાર્યક્રમના. ટેક્સ્ટ અને. રોડેટા વિભાગો બની ગયા હતા, અને બાકીના જે ચોક્કસ કાર્યો માટે સંખ્યાબંધ અન્ય વિભાગોમાં વિભાજિત કરવા માટે લખી શકાય છે. કોડ સેગમેન્ટ, જેને ટેક્સ્ટ સેગમેન્ટ તરીકે પણ ઓળખવામાં આવે છે, તેમાં એક્ઝેક્યુટેબલ કોડ હોય છે અને તે સામાન્ય રીતે ફક્ત વાંચવા માટે અને નિશ્ચિત કદનો હોય છે. ડેટા ડેટા સેગમેન્ટમાં પ્રારંભિક સ્થિર ચલ હોય છે, એટલે કે. વૈશ્વિક ચલ અને સ્થાનિક સ્થિર ચલ કે જે નિર્ધારિત મૂલ્ય ધરાવે છે અને તેમાં ફેરફાર કરી શકાય છે. C માં ઉદાહરણોમાં નીચેનાનો સમાવેશ થાય છેઃ પૂર્ણાંક i = 3; ચાર a [] = "હેલો વર્લ્ડ"; સ્થિર પૂર્ણાંક b = 2023;// પ્રારંભિક સ્થિર વૈશ્વિક ચલ રદબાતલ fhoo (રદબાતલ) {સ્થિર પૂર્ણાંક c = 2023;// પ્રારંભિક સ્થિર સ્થાનિક ચલ} BSS BSS સેગમેન્ટમાં બિન-પ્રારંભિક સ્થિર માહિતી છે, જે ચલ અને સ્થિરાંકો બંને છે, એટલે કે. વૈશ્વિક ચલ અને સ્થાનિક સ્થિર ચલ કે જે શૂન્યથી શરૂ થાય છે અથવા સ્રોત કોડમાં સ્પષ્ટ પ્રારંભ નથી. C માં ઉદાહરણોમાં નીચેનાનો સમાવેશ થાય છેઃ સ્ટેટિક ઇન્ટી i; સ્ટેટિક ચાર a [12]; હીપ હીપ સેગમેન્ટમાં ગતિશીલ રીતે ફાળવેલ મેમરી હોય છે, જે સામાન્ય રીતે BSS સેગમેન્ટના અંતમાં શરૂ થાય છે અને ત્યાંથી મોટા સરનામાંઓ સુધી વધે છે. તેનું સંચાલન મેલોક, કેલોક, રિયેલોક અને ફ્રી દ્વારા કરવામાં આવે છે, જે તેના કદને સમાયોજિત કરવા માટે બ્રક અને એસ. બી. આર. કે. સિસ્ટમ કોલનો ઉપયોગ કરી શકે છે (નોંધ કરો કે બ્રક/એસ. બી. આર. કે. અને સિંગલ હીપ સેગમેન્ટનો ઉપયોગ મેલોક/કેલોક/રિયેલોક/ફ્રીના કરારને પૂર્ણ કરવા માટે જરૂરી નથી; તેઓ વર્ચ્યુઅલ મેમરીના સંભવિત બિન-સંલગ્ન પ્રદેશોને 'વર્ચ્યુઅલ એડ્રેસ સ્પેસ' પ્રક્રિયામાં અનામત/અનરિઝર્વ કરવા માટે એમ. એમ. એ. પી./મુનમેપનો ઉપયોગ કરીને પણ અમલ કરી શકાય છે). હીપ સેગમેન્ટ એક પ્રક્રિયામાં તમામ થ્રેડો, વહેંચાયેલ લાઈબ્રેરીઓ અને ગતિશીલ રીતે લોડ થયેલ મોડ્યુલો દ્વારા વહેંચવામાં આવે છે. સ્ટેક સેગમેન્ટમાં કોલ સ્ટેક હોય છે, જે LIFO માળખું હોય છે, જે સામાન્ય રીતે મેમરીના ઊંચા ભાગોમાં સ્થિત હોય છે. "સ્ટૅક પોઇન્ટર" રજિસ્ટર સ્ટેકની ટોચને ટ્રેક કરે છે; જ્યારે પણ મૂલ્યને સ્ટેક પર "દબાણ" કરવામાં આવે છે ત્યારે તેને સમાયોજિત કરવામાં આવે છે. એક ફંક્શન કૉલ માટે દબાણ કરાયેલા મૂલ્યોના સમૂહને "સ્ટેક ફ્રેમ" કહેવામાં આવે છે. સ્ટૅક ફ્રેમમાં ઓછામાં ઓછું વળતરનું સરનામું હોય છે. આપોઆપ ચલ પણ માળખા પર ફાળવવામાં આવે છે. સ્ટેક સેગમેન્ટ પરંપરાગત રીતે હીપ સેગમેન્ટને અડીને જોડાયેલું હતું અને તેઓ એકબીજા તરફ વધ્યા હતા; જ્યારે સ્ટેક પોઇન્ટર હીપ પોઇન્ટરને મળ્યું, ત્યારે ફ્રી મેમરી ખતમ થઈ ગઈ હતી. મોટા સરનામાંની જગ્યાઓ અને વર્ચ્યુઅલ મેમરી તકનીકો સાથે તેઓ વધુ મુક્ત રીતે મૂકવામાં આવે છે, પરંતુ તેઓ હજુ પણ સામાન્ય રીતે કન્વર્જિંગ દિશામાં વૃદ્ધિ પામે છે. પ્રમાણભૂત પી. સી. x86 આર્કિટેક્ચર પર સ્ટૅક સરનામાં શૂન્ય તરફ વધે છે, જેનો અર્થ છે કે વધુ તાજેતરની વસ્તુઓ, કોલ ચેઇનમાં ઊંડાણમાં, આંકડાકીય રીતે નીચલા સરનામાંઓ પર હોય છે અને ઢગલાની નજીક હોય છે. કેટલાક અન્ય આર્કિટેક્ચર પર તે વિરુદ્ધ દિશામાં વધે છે. કેટલીક અર્થઘટન કરાયેલી ભાષાઓ ડેટા સેગમેન્ટ જેવી જ સુવિધા પ્રદાન કરે છે, ખાસ કરીને પર્લ અને રૂબી. આ ભાષાઓમાં, રેખા (પર્લ) અથવા (રૂબી, જૂની પર્લ) કોડ સેગમેન્ટના અંત અને ડેટા સેગમેન્ટની શરૂઆતને ચિહ્નિત કરે છે. ફક્ત આ લીટી પહેલાંની સામગ્રીઓ ચલાવવામાં આવે છે, અને આ લીટી પછી સ્રોત ફાઇલની સામગ્રીઓ ફાઇલ ઓબ્જેક્ટ તરીકે ઉપલબ્ધ છેઃ PACKAGE:: ડેટા પર્લમાં (દા. ત., મુખ્યઃ: ડેટા) અને ડેટા રૂબીમાં. આને અહીંના દસ્તાવેજનું એક સ્વરૂપ (ફાઇલ શાબ્દિક) ગણી શકાય. આ પણ જુઓ સેગમેન્ટેશન (મેમરી) સેગમેન્ટેશન ફોલ્ટ લિંકર (કમ્પ્યુટિંગ) કોડ સેગમેન્ટ. બી. એસ. એસ. યુનિનિશિઅલાઈઝ્ડ વેરિયેબલ સ્ટેક (એબ્સ્ટ્રેક્ટ ડેટા પ્રકાર) પ્રોસેસ કંટ્રોલ બ્લોક સંદર્ભો બાહ્ય લિંક્સ એક્ઝેક્યુટેબલ ફાઇલ ફોર્મેટ્સ મેમરી મેનેજમેન્ટ