Process (computing)
કમ્પ્યુટિંગમાં, પ્રક્રિયા એ કમ્પ્યુટર પ્રોગ્રામનું ઉદાહરણ છે જે એક અથવા ઘણા થ્રેડો દ્વારા ચલાવવામાં આવે છે. ઘણા જુદા જુદા પ્રક્રિયા નમૂનાઓ છે, જેમાંથી કેટલાક ઓછા વજનના હોય છે, પરંતુ લગભગ તમામ પ્રક્રિયાઓ (સંપૂર્ણ વર્ચ્યુઅલ મશીનો પણ) ઓપરેટિંગ સિસ્ટમ (ઓએસ) પ્રક્રિયામાં મૂળ ધરાવે છે જેમાં પ્રોગ્રામ કોડ, સોંપાયેલ સિસ્ટમ સંસાધનો, ભૌતિક અને તાર્કિક ઍક્સેસ પરવાનગીઓ અને અમલીકરણ પ્રવૃત્તિને શરૂ કરવા, નિયંત્રિત કરવા અને સંકલન કરવા માટે ડેટા સ્ટ્રક્ચર્સનો સમાવેશ થાય છે. ઓએસ પર આધાર રાખીને, પ્રક્રિયા અમલના બહુવિધ થ્રેડોથી બનેલી હોઈ શકે છે જે સૂચનાઓને એક સાથે અમલમાં મૂકે છે. જ્યારે કમ્પ્યુટર પ્રોગ્રામ એ સૂચનાઓનો નિષ્ક્રિય સંગ્રહ છે જે સામાન્ય રીતે ડિસ્ક પર ફાઇલમાં સંગ્રહિત હોય છે, ત્યારે પ્રક્રિયા એ ડિસ્કમાંથી મેમરીમાં લોડ થયા પછી તે સૂચનાઓનો અમલ છે. ઘણી પ્રક્રિયાઓ એક જ પ્રોગ્રામ સાથે સંકળાયેલી હોઈ શકે છે; ઉદાહરણ તરીકે, એક જ પ્રોગ્રામના ઘણા ઉદાહરણો ખોલવાથી ઘણીવાર એકથી વધુ પ્રક્રિયાઓ ચલાવવામાં આવે છે. મલ્ટીટાસ્કીંગ એ પ્રોસેસર્સ (CPU) અને અન્ય સિસ્ટમ સંસાધનોને વહેંચવા માટે બહુવિધ પ્રક્રિયાઓને મંજૂરી આપવાની એક પદ્ધતિ છે. દરેક CPU (કોર) એક સમયે એક જ પ્રક્રિયા ચલાવે છે. જો કે, મલ્ટીટાસ્કીંગ દરેક પ્રોસેસરને દરેક કાર્ય પૂર્ણ થવાની રાહ જોયા વિના (પ્રિએમ્પશન) ચલાવવામાં આવતા કાર્યો વચ્ચે સ્વિચ કરવાની મંજૂરી આપે છે. ઓપરેટિંગ સિસ્ટમના અમલીકરણના આધારે, જ્યારે કાર્યો શરૂ થાય છે અને ઇનપુટ/આઉટપુટ કામગીરી પૂર્ણ થવાની રાહ જુએ છે ત્યારે સ્વીચો કરી શકાય છે, જ્યારે કોઈ કાર્ય સ્વેચ્છાએ CPU આપે છે, ત્યારે હાર્ડવેર વિક્ષેપો પર, અને જ્યારે ઓપરેટિંગ સિસ્ટમ શેડ્યૂલર નક્કી કરે છે કે પ્રક્રિયાએ CPU સમયનો તેનો યોગ્ય હિસ્સો સમાપ્ત કરી દીધો છે (દા. ત., લિનક્સ કર્નલના કમ્પ્લીટલી ફેર શેડ્યૂલર દ્વારા). મલ્ટીટાસ્કીંગનું એક સામાન્ય સ્વરૂપ CPUના ટાઇમ-શેરિંગ દ્વારા પ્રદાન કરવામાં આવે છે જે વપરાશકર્તાઓની પ્રક્રિયાઓ અને થ્રેડો અને સ્વતંત્ર કર્નલ કાર્યોના અમલીકરણને એકબીજા સાથે જોડવાની એક પદ્ધતિ છે-જોકે બાદમાંનું લક્ષણ ફક્ત લિનક્સ જેવા પ્રિએમ્પ્ટિવ કર્નલમાં જ શક્ય છે. ઇન્ટરેક્ટિવ પ્રક્રિયાઓ માટે પ્રિએમ્પશનની મહત્વપૂર્ણ આડઅસર છે જેને CPU બાઉન્ડ પ્રક્રિયાઓના સંદર્ભમાં ઉચ્ચ પ્રાથમિકતા આપવામાં આવે છે, તેથી વપરાશકર્તાઓને કીના સરળ દબાવીને અથવા માઉસ ખસેડતી વખતે તરત જ કમ્પ્યુટિંગ સંસાધનો સોંપવામાં આવે છે. વધુમાં, વિડિયો અને સંગીત પુનઃઉત્પાદન જેવી એપ્લિકેશનોને અમુક પ્રકારની વાસ્તવિક-સમયની પ્રાથમિકતા આપવામાં આવે છે, જે અન્ય કોઈપણ ઓછી અગ્રતા પ્રક્રિયાને પૂર્વવત્ કરે છે. સમય વહેંચણી પ્રણાલીઓમાં, સંદર્ભ સ્વીચો ઝડપથી કરવામાં આવે છે, જેનાથી એવું લાગે છે કે એક જ પ્રોસેસર પર એક સાથે બહુવિધ પ્રક્રિયાઓ ચલાવવામાં આવી રહી છે. બહુવિધ પ્રક્રિયાઓના આ દેખીતી રીતે એક સાથે અમલને સમવર્તી કહેવામાં આવે છે. સુરક્ષા અને વિશ્વસનીયતા માટે, મોટાભાગની આધુનિક ઓપરેટિંગ સિસ્ટમ્સ સ્વતંત્ર પ્રક્રિયાઓ વચ્ચે સીધા સંચારને અટકાવે છે, જે સખત મધ્યસ્થી અને નિયંત્રિત આંતર-પ્રક્રિયા સંચાર પ્રદાન કરે છે. પ્રતિનિધિત્વ સામાન્ય રીતે, કમ્પ્યુટર સિસ્ટમ પ્રક્રિયામાં નીચેના સંસાધનોનો સમાવેશ થાય છે (અથવા તેની માલિકી હોવાનું કહેવાય છે): પ્રોગ્રામ સાથે સંકળાયેલ એક્ઝેક્યુટેબલ મશીન કોડની છબી. મેમરી (સામાન્ય રીતે વર્ચ્યુઅલ મેમરીનો અમુક વિસ્તાર); જેમાં એક્ઝેક્યુટેબલ કોડ, પ્રક્રિયા-વિશિષ્ટ ડેટા (ઇનપુટ અને આઉટપુટ), કોલ સ્ટેક (સક્રિય સબરૂટિન અને/અથવા અન્ય ઘટનાઓનો ટ્રેક રાખવા માટે), અને રન ટાઇમ દરમિયાન પેદા થયેલ મધ્યવર્તી ગણતરી ડેટાને રાખવા માટે એક ઢગલાનો સમાવેશ થાય છે. પ્રક્રિયા માટે ફાળવવામાં આવેલા સંસાધનોના ઓપરેટિંગ સિસ્ટમ વર્ણનકર્તાઓ, જેમ કે ફાઇલ વર્ણનકર્તાઓ (યુનિક્સ પરિભાષા) અથવા હેન્ડલ્સ (વિન્ડોઝ), અને ડેટા સ્ત્રોતો અને સિંક. સુરક્ષા લક્ષણો, જેમ કે પ્રક્રિયાના માલિક અને પ્રક્રિયાની પરવાનગીઓનો સમૂહ (સ્વીકાર્ય કામગીરીઓ). પ્રોસેસર સ્થિતિ (સંદર્ભ), જેમ કે રજિસ્ટરની સામગ્રી અને ભૌતિક મેમરી સંબોધન. સ્થિતિ સામાન્ય રીતે કમ્પ્યુટર રજિસ્ટરમાં સંગ્રહિત થાય છે જ્યારે પ્રક્રિયા ચલાવવામાં આવે છે, અને અન્યથા મેમરીમાં. ઓપરેટિંગ સિસ્ટમ પ્રક્રિયા નિયંત્રણ બ્લોક તરીકે ઓળખાતી માહિતી માળખામાં સક્રિય પ્રક્રિયાઓ વિશેની મોટાભાગની માહિતી ધરાવે છે. સંસાધનોનો કોઈપણ સબસેટ, સામાન્ય રીતે ઓછામાં ઓછું પ્રોસેસર સ્ટેટ, ઓપરેટિંગ સિસ્ટમ્સમાં દરેક પ્રક્રિયાના થ્રેડો સાથે સંકળાયેલ હોઈ શકે છે જે થ્રેડો અથવા બાળ પ્રક્રિયાઓને ટેકો આપે છે. ઓપરેટિંગ સિસ્ટમ તેની પ્રક્રિયાઓને અલગ રાખે છે અને તેમને જરૂરી સંસાધનો ફાળવે છે, જેથી તેઓ એકબીજા સાથે દખલ કરે અને સિસ્ટમની નિષ્ફળતાનું કારણ બને (દા. ત., ડેડલોક અથવા થ્રેશિંગ). ઓપરેટિંગ સિસ્ટમ પ્રક્રિયાઓને સલામત અને અનુમાનિત રીતે ક્રિયાપ્રતિક્રિયા કરવા માટે સક્ષમ કરવા માટે આંતર-પ્રક્રિયા સંચાર માટે પદ્ધતિઓ પણ પ્રદાન કરી શકે છે. મલ્ટીટાસ્કીંગ અને પ્રોસેસ મેનેજમેન્ટ એક મલ્ટીટાસ્કીંગ ઓપરેટિંગ સિસ્ટમ એક સાથે ચલાવવામાં આવતી ઘણી પ્રક્રિયાઓનો દેખાવ આપવા માટે પ્રક્રિયાઓ વચ્ચે ફેરબદલી કરી શકે છે (એટલે કે, સમાંતર), જો કે હકીકતમાં એક જ CPU પર કોઈપણ એક સમયે માત્ર એક જ પ્રક્રિયા ચલાવી શકાય છે (જ્યાં સુધી CPU પાસે બહુવિધ કોર ન હોય, તો પછી મલ્ટીથ્રેડિંગ અથવા અન્ય સમાન તકનીકોનો ઉપયોગ કરી શકાય છે). એક જ પ્રક્રિયાને મુખ્ય કાર્યક્રમ સાથે સાંકળવી સામાન્ય બાબત છે, અને કોઈપણ સ્પિન-ઓફ, સમાંતર પ્રક્રિયાઓ સાથે બાળ પ્રક્રિયાઓ, જે અસિંક્રોનસ સબરૂટિનની જેમ વર્તે છે. એક પ્રક્રિયાને પોતાના સંસાધનો હોવાનું કહેવાય છે, જેમાંથી તેના કાર્યક્રમની છબી (સ્મૃતિમાં) આવા એક સંસાધન છે. જો કે, મલ્ટીપ્રોસેસિંગ પ્રણાલીઓમાં ઘણી પ્રક્રિયાઓ મેમરીમાં સમાન સ્થાન પર સમાન પુનઃપ્રવેશક પ્રોગ્રામને બંધ કરી શકે છે અથવા શેર કરી શકે છે, પરંતુ દરેક પ્રક્રિયા પ્રોગ્રામની પોતાની છબી ધરાવે છે. એમ્બેડેડ ઓપરેટિંગ સિસ્ટમ્સમાં પ્રક્રિયાઓને ઘણીવાર "કાર્યો" કહેવામાં આવે છે. "પ્રક્રિયા" (અથવા કાર્ય) નો અર્થ "એવી વસ્તુ છે જે સમય લે છે", જે "મેમરી" થી વિપરીત છે, જે "એવી વસ્તુ છે જે જગ્યા લે છે". ઉપરોક્ત વર્ણન ઓપરેટિંગ સિસ્ટમ દ્વારા સંચાલિત પ્રક્રિયાઓ અને પ્રક્રિયા ગણતરી દ્વારા વ્યાખ્યાયિત પ્રક્રિયાઓ બંનેને લાગુ પડે છે. જો કોઈ પ્રક્રિયા એવી કોઈ વસ્તુની વિનંતી કરે છે જેના માટે તેણે રાહ જોવી પડશે, તો તેને અવરોધિત કરવામાં આવશે. જ્યારે પ્રક્રિયા અવરોધિત સ્થિતિમાં હોય, ત્યારે તે ડિસ્કમાં અદલાબદલી કરવા માટે પાત્ર હોય છે, પરંતુ આ વર્ચ્યુઅલ મેમરી સિસ્ટમમાં પારદર્શક હોય છે, જ્યાં પ્રક્રિયાની મેમરીના પ્રદેશો ખરેખર ડિસ્ક પર હોઈ શકે છે અને કોઈપણ સમયે મુખ્ય મેમરીમાં નહીં. સક્રિય પ્રક્રિયાઓ/કાર્યો (કાર્યક્રમો ચલાવવા) ના ભાગો પણ ડિસ્કમાં અદલાબદલી માટે પાત્ર છે, જો ભાગોનો તાજેતરમાં ઉપયોગ કરવામાં આવ્યો નથી. સંકળાયેલ પ્રક્રિયા સક્રિય રહેવા માટે એક્ઝિક્યુટિવ પ્રોગ્રામના તમામ ભાગો અને તેનો ડેટા ભૌતિક મેમરીમાં હોવો જરૂરી નથી. પ્રક્રિયા જણાવે છે કે ઓપરેટિંગ સિસ્ટમ કર્નલ જે મલ્ટીટાસ્કીંગ જરૂરિયાતોની પ્રક્રિયાઓને ચોક્કસ સ્થિતિઓ રાખવાની મંજૂરી આપે છે. આ રાજ્યોના નામો પ્રમાણિત નથી, પરંતુ તેમની કાર્યક્ષમતા સમાન છે. પ્રથમ, પ્રક્રિયા ગૌણ સંગ્રહ ઉપકરણ (હાર્ડ ડિસ્ક ડ્રાઇવ, સીડી-રોમ, વગેરે) માંથી લોડ કરીને "બનાવવામાં આવે છે". મુખ્ય સ્મૃતિમાં. તે પછી પ્રોસેસ શેડ્યૂલર તેને "વેઇટિંગ" સ્થિતિ સોંપે છે. જ્યારે પ્રક્રિયા "રાહ જોઈ રહી છે", ત્યારે તે શેડ્યૂલર દ્વારા કહેવાતા સંદર્ભ પરિવર્તનની રાહ જુએ છે. સંદર્ભ સ્વીચ પ્રક્રિયાને પ્રોસેસરમાં લોડ કરે છે અને સ્થિતિને "રનિંગ" માં બદલે છે જ્યારે અગાઉની "રનિંગ" પ્રક્રિયા "વેઇટિંગ" સ્થિતિમાં સંગ્રહિત થાય છે. જો "ચાલી રહેલી" સ્થિતિમાં કોઈ પ્રક્રિયાને સંસાધનની રાહ જોવી પડે (ઉદાહરણ તરીકે, વપરાશકર્તા ઇનપુટ અથવા ફાઇલ ખોલવા માટે રાહ જુઓ), તો તેને "અવરોધિત" સ્થિતિ સોંપવામાં આવે છે. જ્યારે પ્રક્રિયાને હવે રાહ જોવાની જરૂર નથી (અવરોધિત સ્થિતિમાં) ત્યારે પ્રક્રિયા સ્થિતિને "રાહ જોવી" માં બદલવામાં આવે છે. એકવાર પ્રક્રિયા અમલ પૂર્ણ કરે, અથવા ઓપરેટિંગ સિસ્ટમ દ્વારા સમાપ્ત થાય, તે હવે જરૂરી નથી. પ્રક્રિયા તરત જ દૂર કરવામાં આવે છે અથવા "સમાપ્ત" સ્થિતિમાં ખસેડવામાં આવે છે. જ્યારે તેને દૂર કરવામાં આવે છે, ત્યારે તે મુખ્ય મેમરીમાંથી દૂર થવાની રાહ જુએ છે. આંતર-પ્રક્રિયા સંચાર જ્યારે પ્રક્રિયાઓને એકબીજા સાથે વાતચીત કરવાની જરૂર હોય ત્યારે તેઓએ તેમના સરનામાના ભાગોને વહેંચવા જોઈએ અથવા આંતર-પ્રક્રિયા સંચાર (આઈ. પી. સી.) ના અન્ય સ્વરૂપોનો ઉપયોગ કરવો જોઈએ. દાખલા તરીકે શેલ પાઇપલાઇનમાં, પ્રથમ પ્રક્રિયાના આઉટપુટને બીજા પર પસાર કરવાની જરૂર છે, અને તેથી વધુ; બીજું ઉદાહરણ એક કાર્ય છે જે સહકારી પરંતુ આંશિક રીતે સ્વતંત્ર પ્રક્રિયાઓમાં વિઘટિત થઈ શકે છે જે એક જ સમયે ચાલી શકે છે (એટલે કે, સમવર્તી અથવા સાચા સમાંતરતાનો ઉપયોગ કરીને-પછીનું મોડેલ સહવર્તી અમલનો એક ચોક્કસ કેસ છે અને જ્યારે પણ ચલાવવા માટે તૈયાર હોય તેવી તમામ પ્રક્રિયાઓ માટે પૂરતા CPU કોર ઉપલબ્ધ હોય ત્યારે તે શક્ય છે). બે અથવા વધુ પ્રક્રિયાઓ માટે વિવિધ મશીનો પર ચાલવું પણ શક્ય છે જે વિવિધ ઓપરેટિંગ સિસ્ટમ (OS) ચલાવી શકે છે, તેથી સંદેશાવ્યવહાર અને સુમેળ માટે કેટલીક પદ્ધતિઓ (જેને ડિસ્ટ્રિબ્યુટેડ કમ્પ્યુટિંગ માટે સંચાર પ્રોટોકોલ કહેવાય છે) જરૂરી છે (દા. ત., મેસેજ પાસિંગ ઇન્ટરફેસ, જેને ઘણીવાર ફક્ત MPI કહેવામાં આવે છે). 1960ના દાયકાની શરૂઆત સુધીમાં, કમ્પ્યુટર નિયંત્રણ સોફ્ટવેર મોનિટર નિયંત્રણ સોફ્ટવેરમાંથી, ઉદાહરણ તરીકે આઇ. બી. એસ. વાય. એસ. થી એક્ઝિક્યુટિવ કંટ્રોલ સોફ્ટવેરમાં વિકસ્યું હતું. સમય જતાં, કોમ્પ્યુટર ઝડપી બન્યું જ્યારે કોમ્પ્યુટરનો સમય ન તો સસ્તો હતો અને ન તો સંપૂર્ણ રીતે ઉપયોગમાં લેવાતો હતો; આવા વાતાવરણને કારણે બહુ-પ્રોગ્રામિંગ શક્ય અને જરૂરી બન્યું હતું. બહુવિધ પ્રોગ્રામિંગનો અર્થ એ છે કે ઘણા કાર્યક્રમો એક સાથે ચાલે છે. શરૂઆતમાં, એક કરતા વધુ પ્રોગ્રામ એક જ પ્રોસેસર પર ચાલતા હતા, અંતર્ગત યુનિપ્રોસેસર કમ્પ્યુટર આર્કિટેક્ચરના પરિણામે, અને તેઓ દુર્લભ અને મર્યાદિત હાર્ડવેર સંસાધનો વહેંચે છે; પરિણામે, સમવર્તી શ્રેણીબદ્ધ પ્રકૃતિનું હતું. બહુવિધ પ્રોસેસરો સાથેની પછીની સિસ્ટમો પર, બહુવિધ પ્રોગ્રામ્સ સમાંતર રીતે વારાફરતી ચાલી શકે છે. પ્રોગ્રામ્સમાં પ્રોસેસરો માટેની સૂચનાઓના ક્રમનો સમાવેશ થાય છે. એક જ પ્રોસેસર એક સમયે માત્ર એક જ સૂચના ચલાવી શકે છેઃ એક જ સમયે વધુ પ્રોગ્રામ્સ ચલાવવાનું અશક્ય છે. પ્રોગ્રામને કેટલાક સંસાધનોની જરૂર પડી શકે છે, જેમ કે ઇનપુટ ઉપકરણ, જેમાં મોટો વિલંબ હોય છે, અથવા પ્રોગ્રામ કેટલીક ધીમી કામગીરી શરૂ કરી શકે છે, જેમ કે પ્રિન્ટરને આઉટપુટ મોકલવું. આ પ્રોસેસર "નિષ્ક્રિય" (બિનઉપયોગી) થવા તરફ દોરી જશે. પ્રોસેસરને દરેક સમયે વ્યસ્ત રાખવા માટે, આવા પ્રોગ્રામનો અમલ અટકાવવામાં આવે છે અને ઓપરેટિંગ સિસ્ટમ પ્રોસેસરને અન્ય પ્રોગ્રામ ચલાવવા માટે ફેરવે છે. વપરાશકર્તાને, તે દેખાશે કે પ્રોગ્રામ્સ એક જ સમયે ચાલે છે (તેથી શબ્દ "સમાંતર"). ત્યારબાદ ટૂંક સમયમાં, "પ્રોગ્રામ" ની કલ્પનાને "એક્ઝિક્યુટિંગ પ્રોગ્રામ અને તેના સંદર્ભ" ની કલ્પના સુધી વિસ્તૃત કરવામાં આવી હતી. પ્રક્રિયાની વિભાવનાનો જન્મ થયો હતો, જે રી-એન્ટ્રન્ટ કોડની શોધ સાથે પણ જરૂરી બની હતી. થ્રેડો થોડા સમય પછી આવ્યા. જો કે, સમય વહેંચણી, કમ્પ્યુટર નેટવર્ક્સ અને બહુવિધ-CPU વહેંચાયેલ મેમરી કમ્પ્યુટર્સ જેવી વિભાવનાઓના આગમન સાથે, જૂના "મલ્ટીપ્રોગ્રામિંગ" એ સાચા મલ્ટીટાસ્કીંગ, મલ્ટીપ્રોસેસિંગ અને પછીથી, મલ્ટીથ્રેડિંગને માર્ગ આપ્યો. પૃષ્ઠભૂમિ પ્રક્રિયા પણ જુઓ બાળ પ્રક્રિયા બહાર નીકળો કાંટો હળવા વજનની પ્રક્રિયા અનાથ પ્રક્રિયા પિતૃ પ્રક્રિયા પ્રક્રિયા જૂથ રાહ જુઓ કાર્યકારી નિર્દેશિકા ઝોમ્બી પ્રક્રિયા નોંધો સંદર્ભો વધુ વાંચન રેમઝી એચ. આર્પાસી-ડુસો અને એન્ડ્રીયા સી. આર્પાસી-ડુસો (2014). "ઓપરેટિંગ સિસ્ટમોઃ ત્રણ સરળ ટુકડાઓ". આર્પાસી-ડુસો બુક્સ. સંબંધિત પ્રકરણોઃ એબ્સ્ટ્રેક્શનઃ ધ પ્રોસેસ API ગેરી ડી. નોટ (1974) ચોક્કસ પ્રક્રિયા વ્યવસ્થાપન અને આંતરસંવાદ આદિમ ACM SIGOPS ઓપરેટિંગ સિસ્ટમ્સ સમીક્ષા માટેની દરખાસ્ત. ભાગ 8, અંક 4 (ઓક્ટોબર 1974). પીપી. 7-44 બાહ્ય લિંક્સ પ્રક્રિયા માહિતી માટે ઓનલાઇન સંસાધનો પ્રક્રિયા સર્જન અને સમાપ્તિ પદ્ધતિઓ સાથે કમ્પ્યુટર પ્રક્રિયા માહિતી ડેટાબેઝ અને ફોરમ પ્રક્રિયા નમૂનાઓ સમવર્તી કમ્પ્યુટિંગ ઓપરેટિંગ સિસ્ટમ ટેકનોલોજી