કમ્પ્યૂટર
વિકિપીડિયા થી
ઢાંચો:Pp-semi-indefઢાંચો:Pp-move-indef ઢાંચો:Otheruses1 ઢાંચો:Redirect ઢાંચો:Refimprove
કોમ્પ્યુટર એક મશીન (machine) છે જે આપવામાં આવેલી સૂચનાઓ (instructions)ની યાદી અનુસાર માહિતિ (data) અને કામ આપે છે.
આધુનિક કોમ્પ્યુટર્સને મળતા આવતા પહેલા ડિવાઇસિસ 20મી સદીની મધ્યના હતા (1940–1945), જોકે કોમ્પ્યુટરનો અભિગમ અને વિવિધ મશીન્સ અગાઉ અસ્તિત્વ ધરાવતા કોમ્પ્યુટર્સ જેવા હતા.અગાઉના ઇલેક્ટ્રોનિક કોમ્પ્યુટર્સ વિશાળ ઓરડાના કદના હતાં, અને આધુનિક સો જેટલા પર્સનલ કોમ્પ્યુટર્સ (PC (PC)) જેટલી વીજળી વાપરી નાખતા હતા.[૧]આધુનિક કોમ્પ્યુટર્સ નાની ઇન્ટિગ્રેટેડ સર્કિટ (integrated circuit) પર આધારિત છે અને માહિતિના સંગ્રહની દ્રષ્ટિએ અબજોગણા વધુ સક્ષમ છે.[૨]હાલમાં, સાદા કોમ્પ્યુટર્સ કાંડા ઘડિયાળ (wristwatch)માં સમાવી શકાય તેટલા નાના બની શકે છે અને તે ઘડિયાળની બેટરી (watch battery)થી ચલાવી શકાય છે.વિવિધ પ્રકારના પર્સનલ કોમ્પ્યુટર્સ (Personal computer) માહિતિ યુગ (Information Age)ના ઓળખ ચિન્હોરૂપ (icons) છે અને અને મોટાભાગના લોકોના કોમ્પ્યુટરના વિચારને સાર્થક કરે છે, જોકે, હાલમાં જે પ્રકાર સર્વ સામાન્ય છે તે એમ્બેડેડ કોમ્પ્યુટર (embedded computer) છે.અમ્બેડેડ કોમ્પ્યુટર્સ નાના સરળ ડિવાઇસિસ છે જેનો ઉપયોગ બીજા ડિવાઇસિસને અંકુશમાં રાખવા થાય છે-ઉદાહરણ તરીકે, લડાકુ વિમાન (fighter aircraft)થી લઇને ઔદ્યોગિક રોબોટ્સ (industrial robot), ડિજિટલ કેમેરા (digital camera) અને બાળકોના રમકડાં (children's toys)ના મશીન્સમાં જોવા મળી શકે છે.
સૂચનાઓની યાદીનો સંગ્રહ અને અમલ કરવાની ક્ષમતાને પ્રોગ્રામ્સ (programs) કહે છે જે કોમ્પ્યુટર્સને ખુબજ સર્વતોમુખી બનાવે છે અને કેલક્યુલેટર્સ (calculator)થી તેને અલગ પાડે છે.ચર્ચ ટર્નીંગ થિસીસ (Church–Turing thesis) એ આ વર્સેટિલિટીનું મેથેમેટિકલ સ્ટેટમેન્ટ છેઃ ચોક્કસ ઓછામાં ઓછ ક્ષમતા સાથેનું કોઇ પણ કોમ્પ્યુટર તે સૈદ્ધાંતિક રીતે અન્ય કોમ્પ્યુટરો જે ટાસ્ક કરે છે તે જ ટાસ્ક હાથ ધરવા સક્ષમ હોય છે. તેથી, પર્સનલ ડિજિટલ આસિસ્ટંટ (personal digital assistant) અને સુપરકોમ્પ્યુટર (supercomputer) સુધીના ક્ષમતા અને જટિલતા ધરાવતા કોમ્પ્યુટર્સ સમાન સમય અને સંગ્રહ શક્તિ સાથે એક સરખા કોમ્પ્યુટેશનલ કામ કરવા સક્ષમ હોય છે.
અનુક્રમણિકા |
[ફેરફાર કરો] કોમ્પ્યુટિંગનો ઇતિહાસ
અગાઉના સમયનાં કોમ્પ્યુટર્સનાં કોઇ એક ડિવાઇઝને ઓળખવુ પણ અઘરૂ છે કારણે સમયાંતરે "કોમ્પ્યુટર" શબ્દનો અર્થ બદલાતો જાય છે.મૂળરૂપે, "કોમ્પ્યુટર" શબ્દ એવા વ્યક્તિનો ઉલ્લેખ કરે છે જે આંકડાકીય ગણતરી કરી શકે (માનવીય કોમ્પ્યુટર (human computer)), ઘણીવાર યાંત્રિક ગણન સાધન (mechanical calculating device)ની પણ મદદ લેવાતી હોય છે.
આધુનિક કોમ્પ્યુટરનો ઇતિહાસ બે અળગ ટેક્નોલોજિસ સાથે શરૂ થાય છે - ઓટોમેટેડ કેલક્યુલેશન અને પ્રોગ્રામેબિલિટી.
અગાઉના યાંત્રિક ગણન સાધનોના ઉદાહરણમાં અબાકસ (abacus), સ્લાઇડ રૂલ (slide rule) અને નક્ષત્રમાપક યંત્ર (astrolabe) તથા એન્ટીખિથેરા મિકેનિઝમ (Antikythera mechanism)(જે 150-100 BC સમયમાં અસ્તિત્વ ધરાવતા હતા) નો સમાવેશ થાય છે.એલેક્ઝાન્ડ્રીયાનો નાયક (Hero of Alexandria) (c.10-70 AD) માં મિકેનિકલ થિયેટર બન્યું હતું જે 10 મિનિટ સુધી નાટક બતાવતું હતું અને તે દોરડાઓ તથા ડ્રમ્સની જટિલ પધ્ધતિ દ્વારા ચાલતુ હતું, મિકેનિઝમનો કયો હિસ્સો ખેલ કરશે તે નક્કી કરવા કદાચ તેની રચના કરવામાં આવી હતી.[૩]આ પ્રોગ્રામેબિલિટીનો સાર છે.
"કેસલ ક્લોક", ખગોળશાસ્ત્રને લગતી ઘડિયાળ (astronomical clock)ની શોધ અલ-જઝારી (Al-Jazari)એ 1206માં કરી હતી, તેને સૌથી પહેલુ પ્રોગ્રામ કરી શકાય તેવું (programmable) એનાલોગ કોમ્પ્યુટર (analog computer) ગણવામાં આવે છે.[૪]તે રાશિ (zodiac), સૂર્ય (solar) અને ચંદ્રની કળા (lunar orbit) બતાવતું હતું અર્ધચન્દ્રાકાર (crescent moon) પોઇન્ટર (pointer) દર કલાકે (hour) ઓટોમેટિક દરવાજા (automatic doors) ખોલીને બહાર આવે છે, અને વોટર વ્હીલ (water wheel) સાથે જોડેલા કેમ્શેફ્ટ (camshaft) દ્વારા ચાલતા લિવર (lever) દ્વારા [૫][૬]પાંચ રોબોટિક (robot) સંગીતકારો સંગીત વગાડે છે.સમગ્ર વર્ષ દરમિયાન દિવસ અને રાતની બદલતી લંબાઇ માપવા દરરોજ દિવસ (day) અને રાત (night)ની લંબાઇને ફરી પ્રોગ્રામ કરી શકાય છે.[૪]
મધ્ય યુગ (Middle Ages)ના અંતમાં યુરોપિયન મેથેમેટિક્સ અને એન્જિનિયરીંગમાં નવું જોમ જોવા મળ્યું, અને વિલ્હેલ્મ શિકાર્ડ (Wilhelm Schickard)નું 1623 ડિવાઇઝ યુરોપિયન એન્જિનીયર્સ દ્વારા બનાવવામાં આવેલા મિકેનિકલ કેલ્ક્યુલેટર્સમાં પહેલુ હતું.જોકે, તેમાનાં કોઇપણ ડિવાઇઝિસ કોમ્પ્યુટરની આધુનિક વ્યાખ્યામાં બંધ બેસતા નથી કારણ કે તેને પ્રોગ્રામ કરી શકાતા નથી.
1801માં, જોસેફ મેરી જેક્વાર્ડે (Joseph Marie Jacquard) ટેક્સટાઇલ લૂમ (textile loom)માં સુધારો લાવ્યો હતો તેમણે સાળમાં જટિલ પેટર્ન્સનું વણાટ કામ ઓટોમેટિકલી થાય તે માટે પંચ કરેલા પેપર કાર્ડસ (punched paper cards)ની શ્રેણીનો ઉપયોગ ટેમ્પલેટ તરીકે કર્યો હતો.તેના પરિણામે કોમ્પ્યુટરના વિકાસમાં જેક્વાર્ડ લૂમ મહત્વનું પગલુ બની રહ્યું કારણ કે વણાટની પેટર્ન્સ તરીકે પંચ કરેલા કાર્ડનો ઉપયોગ સૌથી પહેલો મર્યાદિત પ્રોગ્રામેબિલીટીના પ્રકાર તરીકે જોઇ શકાય.
તે ઓટોમેટિક ગણતરીનું પ્રોગ્રામેબિલીટી સાથેનું મિશ્રણ હતું તેણે પહેલુ ઓળખાવી શકાય તેવુ કોમ્પ્યુટર બનાવ્યું હતું.1837માં, એનાલિટીકલ એન્જિન (Analytical Engine) કહેવાતુ સંપૂર્ણ પ્રોગ્રામ કરી શકાય તેવા મિકેનિકલ કોમ્પ્યુટરની કલ્પના અને ડિઝાઇન આપનાર ચાલ્સ બેબેજ (Charles Babbage) પહેલો હતો.[૭]મર્યાદિત ભંડોળને કારણે, અને ડિઝાઇન સાથે બેદરકારી ન સહી સકનાર બેબેજે ખરેખર ક્યારેય એનાલિટીકલ એન્જિન બનાવી શક્યા નહોતા.
ટેબ્યુલેટિંગ મશિન (tabulating machine) દ્વારા યુએસ સેન્સસ માટે 1890 (U.S. Census in 1890)માં પંચ કાર્ડનો મોટા પાયાનો ઓટોમેટેડ ડેટા પ્રોસેસ કરવામાં આવ્યો હતો, જેની ડિઝાઇન હર્મન હોલ્લેરિથ (Herman Hollerith) દ્વારા તૈયાર કરવામાં આવી હતી અને કોમ્પ્યુટીંગ ટેબ્યુલેટીંગ રેકોર્ડીંગ કોર્પોરેશન (Computing Tabulating Recording Corporation) દ્વારા ઉત્પાદન કરવામાં આવ્યું હતું. જે બાદમાં આઇબીએમ (IBM) થયું. 19મી સદીના અંતમાં અસંખ્ય ટેકનોલોજીઓ જે બાદમાં પ્રેક્ટીકલ કોમ્પ્યુટરો દેખાવા માંડ્યા બાદ રિયલાઇજેશનમાં ઉપયોગી સાબિત થયા હતા. જેમાં પંચકાર્ડ (punched card), બૂલીન અલ્ગેબ્રા (Boolean algebra), વેક્યુમ ટ્યૂબ (vacuum tube) (થર્મીયોનિક વાલ્વ) અને ટેલિપ્રિન્ટર (teleprinter)નો સમાવેશ થાય છે.
20મી સદીના પૂર્વાધમાં સાઇન્ટિફીક કોમ્પ્યુટીંગની ઘણી જરૂરિયાત વ્યવહારદક્ષ એનાલોગ કોમ્પ્યુટર (analog computer) દ્વારા પુરી કરવામાં આવતી હતી, જે કોમ્પ્યુટેશન (computation) માટે સીધા મિકેનિકલ અથવા ઇલેક્ટ્રીકલ (electrical) મોડેલનો ઉપયોગ કરે છે.જોકે, તે પ્રોગ્રામ કરી શકાય તેવા નહોતા અને મોટેભાગે તેમાં આધુનિક ડિજિટલ કોમ્પ્યુટર્સ જેવી સંપૂર્ણતા અને ઝડપનો અભાવ છે.
ઢાંચો:Early computer characteristics
ક્રમશ વધુ શક્તિશાળી અને લવચીક કોમ્પ્યુટિંગ ડિવાઇસિસની રચના 1930 અને 1940માં થઇ હતી, ધીમે ધીમે તેમાં આધુનિક કોમ્પ્યુટર્સમાં જોવા મળતી મહત્વની લાક્ષણિકતાઓનો ઉમેરો થતો ગયો.ડિજિટલ ઇલેક્ટ્રોનિક્સ (મોટેભાગે ક્લુડ શેનન (Claude Shannon) દ્વારા 1937માં શોધાયેલું) અને વધુ લવચીક પ્રોગ્રામેબિલિટીનો ઉપયોગ આવશ્યક જરૂરી પગલા હતાં, પણ આ માર્ગ સાથે એક પોઇન્ટને પહેલુ ડિજિટલ ઇલેક્ટ્રોનિક કોમ્પ્યુટર ગણાવવું મુશ્કેલ છેઢાંચો:Ref harvard.નોંધનિય સિધ્ધિઓનો સમાવેશ કરવામાં આવ્યો છે:
- કોનરેડ ઝુસ (Konrad Zuse)નાં ઇલેક્ટ્રોમિકેનિકલ (electromechanical) "Z મશિન્સ"ધ Z3 (Z3) (1941) પહેલુ એવુ વર્કિંગ મશીન હતું જેમાં બાઇનરિ (binary) એરિથમેટિકની વિશિષ્ઠતા હતી, તેમાં ફ્લોટિંગ પોઇન્ટ એરિથમેટિક અને પ્રોગ્રામેબિલિટીનો સમાવેશ થતો હતો.1998માં Z3 ટરિંગ કમ્પલિટ (Turing complete) સાબિત થયું હતું, તેથી તે વિશ્વનું પહેલુ ઓપરેશનલ કોમ્પ્યુટર બન્યું
- પ્રોગ્રામ ન થઇ શકે તેવુ એટનાસોફ-બેરી કોમ્પ્યુટર (Atanasoff–Berry Computer)(1941) વેક્યુમ ટ્યુબ આધારિત કોમ્પ્યુટેશન (computation), બાયનરિ આંકડાઓ, અને રિજનરેટિવ કેપેસિટર મેમરી (regenerative capacitor memory)નો ઉપયોગ કરે છે.
- રહસ્યમય બ્રિટિશ કોલોસસ કોમ્પ્યુટર્સ (Colossus computer) (1943),[૮] જેની પ્રોગ્રામ ક્ષમતા મર્યાદિત હતી પણ એવુ લાગતું હતું કે આ ડિવાઇઝમાં વપરાતી હજારો ટ્યુબ્સ ભરોસાપાત્ર બની શકે અને ઇલેક્ટ્રોનિક રીતે તે ફરી પ્રોગ્રામ કરી શકાય.તેનો ઉપયોગ જર્મન યુધ્ધ સમયનાં કોડ્સ બ્રેક કરવા (breaking) માટે થતો હતો.
- હારવર્ડ માર્ક I (Harvard Mark I) (1944), લાર્જ-સ્કેલ ઇલેક્ટ્રોમિકેનિકલ કોમ્પ્યુટર જેની પ્રોગ્રામિંગ ક્ષમતા મર્યાદિત હતી.
- યુ. એસ. આર્મીની બેલિસ્ટિક્સ રિસર્ચ લેબોરેટરી (Ballistics Research Laboratory) ENIAC (ENIAC) (1946), જે દશાંશ (decimal) ગણિતનો ઉપયોગ કરતું હતું અને તેને પહેલુ સામાન્ય હેતુ માટેનું ઇલેક્ટ્રોનિક (electronic) કોમ્પ્યુટર કહી શકાય (કોનરાડ ઝુસ (Konrad Zuse)નું 1941નું Z3 (Z3) ઇલેક્ટ્રોનિક્સ (electronics)ના સ્થાને ઇલેક્ટ્રોમેગ્નેટ્સ (electromagnets)નો ઉપયોગ કરતું હતું.જોકે, શરૂઆતમાં, ENIACનું આર્કિટેક્ચર લવચીક નહોતું જેના પ્રોગ્રામિંગમાં ફેરફાર કરવા તેનું ફરી વાયરિંગ જરૂરી હતું.
ENIACના કેટલાંક વિકાસકારો તેના પ્રવાહોને ઓળખી રહ્યા હતા, અને વધુ લવચીક તથા ભવ્ય ડિઝાઇન લઇને આવ્યા, જે સ્ટોર્ડ પ્રોગ્રામ આર્કિટેક્ચર અથના વોન ન્યુમેન આર્કિટેક્ચર (von Neumann architecture) તરીકે ઓળખાતી હતી.આ ડિઝાઇનનું ઔપચારિક વર્ણન સૌથી પહેલા જ્હોન વોન ન્યુમેન (John von Neumann) દ્વારા પેપરમાં ફર્સ્ટ ડ્રાફ્ટ ઓફ અ રિપોર્ટ ઓન EDVAC (First Draft of a Report on the EDVAC), તરીકે થયું હતું, તેની વહેંચણી 1945માં થઇ હતી.આ સમયગાળામાં સ્ટોર્ડ-પ્રોગ્રામ આધારિત કોમ્પ્યુટર્સ વિકસાવવા ઘણાં પ્રોજેક્ટ્સ હાથ ધરાયા હતા, તેમાંનો પહેલો ગ્રેટ બ્રિટન (Great Britain)માં પુરો થયો હતો. માન્ચેસ્ટર સ્મોલ-સ્કેલ એક્સપેરિમેન્ટલ મશીન (Manchester Small-Scale Experimental Machine) (SSEM અથવા "Baby")ને સૌથી પહેલા કામ કરતું પ્રદર્શિત કરવામાં આવ્યું હતું, જ્યારે SSEMનાં એક વર્ષ પછી EDSAC (EDSAC) પુરો થયો હતો, તે સ્ટોર્ડ પ્રોગ્રામ ડિઝાઇનનું પહેલું પ્રેક્ટિકલ અમલીકરણ હતું.તેના થોડા સમય બાદ વોન ન્યુમેનના પેપરમાં દર્શાવાયેલુ મશીન EDVAC (EDVAC) પુરૂ થયું હતું પણ વધુ બે વર્ષ સુધી તેનો સંપૂર્ણ ઉપયોગ જોવા મળ્યો નહોતો.
લગભગ દરેક આધુનિક કોમ્પ્યુટર્સ સ્ટોર્ડ પ્રોગ્રામ આર્કિટેક્ચરના કેટલાંક પ્રકારનો ઉપયોગ કરે છે, તેને એકમાત્ર એવુ લક્ષણ બનાવે છે જેના દ્વારા હવે "કોમ્પ્યુટર" શબ્દ ઓળખાય છે.1940ના પહેલા ઇલેક્ટ્રોનિક, સામાન્ય હેતુના કોમ્પ્યુટર્સ કરતા હવે ટેક્નોલોજિસમાં ધરખમ ફેરફાર થયા હોવાછતાં, મોટેભાગે હજુ પણ ન્યુમેન આર્કિટેક્ચરનો ઉપયોગ થાય છે.
ઇલેક્ટ્રોનિક એલિમેન્ટ્સ તરીકે વેક્યુમ ટ્યુબ (vacuum tube)નો ઉપયોગ કરતા કોમ્પ્યુટર્સ 1950 સુધી વપરાતા હતા, 1960 સુધીમાં તેના સ્થાને ટ્રાન્ઝિસ્ટર (transistor) આધારિત મશીન્સ આવી ગયા, જે વધુ નાના, ઝડપી, ઉત્પાદનમાં સસ્તા, ઓછી વીજળી વાપરનારા, અને વધુ વિશ્વસનિય હતા.પહેલું ટ્રાન્ઝિસ્ટરાઇઝ્ડ કોમ્પ્યુટર યુનિવર્સિટી ઓફ માન્ચેસ્ટર (University of Manchester)માં 1953માં બતાવવામાં આવ્યું હતું.[૯]1970માં, ઇન્ટિગ્રેટેડ સર્કિટ (integrated circuit) ટેક્નોલોજી અને ત્યારબાદ તરત થયેલી ઇન્ટેલ 4004 (Intel 4004) જેવા માઇક્રોપ્રોસેસર્સ (microprocessor)ની રચનાએ, તેના કદ અને કિંમતમાં વધુ ઘટાડો કર્યો હતો તથા ઝડપ અને કોમ્પ્યુટર્સની વિશ્વસનિયતામાં વધારો કર્યો હતો.1980, સુધીમાં કોમ્પ્યુટર્સ ઘણાં નાના અને સસ્તા થઇ ગયા હતા જેથી વોશિંગ મશીન્સ (washing machines) જેવા ઘરેલુ ઉપકરણોમાં સરળ મિકેનિકલ કંટ્રોલ તરીકે મુકી શકાય.1980 હોમ કોમ્પ્યુટર (home computer)નું પણ સાક્ષી બન્યું અને હવે સર્વવ્યાપક પર્સનલ કોમ્પ્યુટર (personal computer) છે.ઇન્ટરનેટ (Internet)ની ઉત્ક્રાંતિ સાથે, પર્સનલ કોમ્પ્યુટર્સ ઘરની ટેલિવિઝન (television) અને ટેલિફોન (telephone) જેવી વસ્તુઓ જેટલા સામાન્ય બની ગયા.
આધુનિક સ્માર્ટફોન (smartphone) ટેકનિકલ રીતે સંપૂર્ણ પ્રોગ્રામ ક્ષમતાવાળા કોમ્પ્યુટર્સ છે અને 2009માં મોટાભાગે આ પ્રકારના કોમ્પ્યુટર્સ અસ્તિત્વ ધરાવે છે.
[ફેરફાર કરો] સ્ટોર્ડ પ્રોગ્રામ આર્કિટેક્ચર
બીજા બધા મશિન્સથી જુદુ પાડતું આધુનિક કોમ્પ્યુટર્સનું મુખ્ય લક્ષણ એ છે કે તે પ્રોગ્રામ (programmed) કરી શકાય છે.એવુ કહી શકાય કે કોમ્પ્યુટરને સૂચનો (instructions) (પ્રોગ્રામ (program)) ની યાદી આપી શકાય છે તે તેમાં સંગ્રહી શકાય અને ભવિષ્યમાં ગમે ત્યારે તેને બહાર લઇ જઇ શકાય છે.
મોટાભાગના કિસ્સાઓમાં, કોમ્પ્યુટર સૂચનાઓ સરળ હોય છે. બીજા નંબરમાં એક નંબર ઉમેરો, કેટલોક ડેટા એક સ્થળેથી બીજા સ્થળે ખસેડો, કોઇ એક્સટર્નલ ડિવાઇઝને સંદેશો મોકલો, વગેરે. આ સૂચનાઓ કોમ્પ્યુટરની મેમરી (memory)માંથી વાંચી શકાય છે અને જે ક્રમાંકમાં તે આપવામાં આવી હોય તે અનુસાર તેની ઉપર કામ થતું હોય(અમલમાં મુકાવું (executed)) છે.જોકે, તેમાં કેટલીક ખાસ પ્રકારની સૂચનાઓ હોય છે જે કોમ્પ્યુટરને આગળ વધવાનું કે પ્રોગ્રામમાં પાછળની કોઇ જગ્યાએ પહોચવાનું અને ત્યાંથી કામ આગળ વધારવાનું કહે છે.તેને "જમ્પ" સૂચનાઓ (અથવા બ્રાન્ચિસ (branches)) કહે છે.વધુમાં, જમ્પ સૂચનાઓ કદાચ શરત (conditionally)ને આધિન કરવામાં આવે છે જેથી સૂચનાઓની વિવિધ શ્રેણી અગાઉની કેટલીક ગણતરીઓ અથવા કોઇ એક્સટર્નલ ઇવેન્ટના પરિણામને આધારે વપરાઇ શકે.કેટલાંક કોમ્પ્યુટર્સ એવા પ્રકારના જમ્પ પુરા પાડે છે જે ક્યાંથી જમ્પ થાય છે તે સ્થળને યાદ રાખે અને જમ્પ સૂચનાઓને અનુસરવા બીજી સૂચનાઓ તરફ પાછા ફરવાનું પણ યાદ રાખે છે અને આ દ્વારા સબરૂટિન (subroutine)ને ટેકો આપે છે.
પ્રોગ્રામના અમલને પુસ્તક વાંચવા સાથે જોડી શકાય.જ્યારે કોઇ પણ વ્યક્તિ સામાન્ય રીતે દરેક શબ્દ અને લાઇન સુધી શ્રેણીમાં પહોંચે ત્યારે, ટેક્સ્ટમાં અગાઉના સ્થાન પર ફરીથી આવી જાય અથવા રસ વિનાના વિભાગોને કૂદાવી જાય. તેજ રીતે કોમ્પ્યુટર કેટલીકવાર પાછુ જાય અને જ્યા સુધી કેટલીક આંતરિક શરતો પરિપૂર્ણ ન થાય ત્યા સુધી પ્રોગ્રામની કેટલીક શરતોને વારંવાર રીપીટ કરે છે. તેને પ્રોગ્રામમાં રહેલો અંકુશનો પ્રવાહ (flow of control) કહે છે અને જેના કારણે કોમ્પ્યુટર માનવીય હસ્તક્ષેપ વગર વારંવાર કામ કરી શકે છે.
તુલનાત્મક રીતે, પોકેટ કેલ્ક્યુલેટર (pocket calculator) વાપરતી વ્યકિત સરવાળા જેવી સામાન્ય ગણતરી ફક્ત બટન દબાવીને કરી શકે છે.પણ જો એક સાથે 1 થી 1,000 આંકડા ઉમેરવાના હોય તો હજારો બટન દબાવવા પડે અને ઘણો સમય લાગે અને ભૂલ થવાની પણ શક્યતા રહે છે.મોટાભાગના કિસ્સાઓમાં કોમ્પ્યુટરઉદાહરણ તરીકે:
mov #0,sum ; set sum to 0 mov #1, num ; set num to 1 loop: add num,sum ; add num to sum add #1,num ; add 1 to num mp num,#1000 ; compare num to 1000 ble loop ; if num <= 1000, go back to 'loop' halt ; end of program. stop running
એકવાર આ પ્રોગ્રામ રન કરવાનું કહેવામાં આવે, તો કોમ્પ્યુટર માનવીય હસ્તક્ષેપ વગર વધારાનું કામ વારંવાર કરશે.તે ક્યારેય ભૂલ કરતુ નથી અને આધુનિક પીસી મિલિયન સેકન્ડ[૧૦]માં કામ પૂરૂ કરી શકે છે.
જોકે, કોમ્પ્યુટરો પોતાની જાતે “વિચારી” શકતા નથી, તેઓ ફકત જે રીતે પ્રોગ્રામ હોય તે રીતે જ સમસ્યા ઉકેલી શકે છે. બુદ્ધિશાળી વ્યક્તિ વધુ પડતા એડીશન ટાસ્કની મુશ્કેલી અનુભવતો હોય છે, જે તરત જ તેવો અનુભવ કરશે કે દરેક નંબરો ઉમેરો કરવાને બદલે જે તે વ્યક્ત સરળ રીતે સમીકરણનો ઉપયોગ કરી શકે છે.
અને નાના કામ દ્વારા સાચા જવાબ (500,500)સુધી આવી પહોંચે છે. [૧૧] અન્ય શબ્દોમાં કહીએ તો ઉપરના ઉદાહરણ અનુસાર એક પછી એક નંબરો ઉમેરો કરવા માટે જે કોમ્પ્યુટરમાં પ્રોગ્રામ કરવામાં આવ્યો હોય તો તે કાર્યક્ષમતા અથવા વૈકલ્પિક ઉકેલની ચિંતા કર્યા વિના યોગ્ય રીતે જ કામ કરશે.
[ફેરફાર કરો] પ્રોગ્રામ્સ
કોમ્પ્યુટર પ્રોગ્રામ (computer program), વર્ડ પ્રોસેસર (word processor) અથવા વેબ બ્રાઉઝર (web browser) માટેના પ્રોગ્રામોની જેમ થોડી સુચનાઓથી લઇને અસંખ્ય સુચનાઓને અનુસરી શકે છે. વિશિષ્ટ આધુનિક કોમ્પ્યુટર સેકંડદીઠ (ગીગાહર્ટઝ અથવા જીએચઝેડ (gigahertz or GHz))ની અબજો સુચનાઓને અનુસરી શકે છે અને ભાગ્યે જ ઓપરેશનના અનેક વર્ષો સુધી ભૂલ કરી શકે છે. મોટા કોમ્પ્યુટર વિવિધ હજ્જારો સુચનાઓનો સમાવેશ કરતા હોય છે અને તે લખવા માટે અનેક પ્રોગ્રામો (programmers)ની સહાય લઇ શકે છે, આમ ભૂલ વિના સમગ્ર પ્રોગ્રામ લખાઇ જવાની સંભાવના અત્યંત ઓછી છે.
કોમ્પ્યુટર પ્રોગ્રામમા આવતી ભૂલોને “બગ્સ (bugs)” કહેવાય છે. બગ્સ સારા હોઇ શકે છે અને પ્રોગ્રામની ઉપયોગિતાને અસર કરતા નથી અથવા નજીવી અસર હોઇ શકે છે. પરંતુ કેટલાક કિસ્સામાં તે પ્રોગ્રામને “હેન્ગ (hang)” કરી શકે છે-માઉસ (mouse) ક્લિક્સ અથવા કીસ્ટ્રોક્સનો પ્રતિભાવ આપતું નથી અથવા સંપૂર્ણપણે નિષ્ફળ અથવા “ક્રેશ (crash)” થઇ જાય છે. અલબત્ત સારા બગ્સ કેટલીકવાર ખરાબ ઇરાદા સાથે “એક્સપ્લોઇટ (exploit)”લખતા ખરાબ યૂઝર દ્વારા નુકસાન પહોંચાડી શકે છે- બગ અને પ્રોગ્રામનો યોગ્ય અમલ ખોરવવા માટે કોડ (code) તૈયાર કરવામાં આવ્યા છે. બગ્સ એ મોટેભાગે કોમ્પ્યુટરની ખામીને લીધે આવતા નથી.કોમ્પ્યુટરો તેમને આપવામાં આવતી સુચનાઓને જ અનુસરતા હોવાથી બગ્સ મોટે ભાગે પ્રોગ્રામરની ભૂલનું પરિણામ અથવા પ્રોગ્રામની ડિઝાઇનમાં કરેલ ભૂલનું પરિણામ હોય છે. [૧૨]
મોટા ભાગના કોમ્પ્યુટરોમાં, વ્યક્તિગત સુચનાઓને મશિન કોડ (machine code) તરીકે સ્ટોર કરવામાં આવે છે, જેમાં દરેક સુચનાઓને વિશિષ્ટ નંબર(તેના ઓપરેશન કોડ અથવા ટૂંકાણ માટે ઓપકોડ (opcode)) આપવામાં આવે છે. બે નંબર ઉમેરવા માટેના કમાન્ડને એક ઓપકોડ હશે, તેમને મલ્ટીપ્લાય કરવા માટેના કમાન્ડને વિવિધ ઓપકોડ અને તે રીતે હશે. સરળ કોમ્પ્યુટરો થોડી વિવિધ સુચનાઓને અનુસરવા સક્ષમ હશે; જ્યારે વધુ જટિલ કોમ્પ્યુટરો પાસે વિશિષ્ટ ન્યૂમરિકલ કોડ સાથે હજ્જારોમાંથી પસંદગી કરવાની રહેશે. કોમ્પ્યુટરની મેમરી નંબરો સ્ટોર કરવા સક્ષમ હોવાથી તે સુચના કોડ્સ પણ સ્ટોર કરી શકે છે. તેના કારણે એક અગત્યની હકીકત એવી થાય છે કે સમગ્ર પ્રોગ્રામ (કે જે ફક્ત સુચનાઓની યાદી છે)ને નંબરોની યાદી તરીકે પ્રદર્શિત કરી શકાય છે અને તે જો ન્યૂમરિક ડેટા હોય તો કોમ્પ્યુટરની અંદર તેમની રીતે ખોટા આંક દર્શાવી શકે છે. તેઓ જે ઓપરેટ કરે છે તે ડેટાની સાથે કોમ્પ્યુટરની મેમરીમાં પ્રોગ્રામ સ્ટોર કરવાનો મૂળ ખ્યાલ એ છે કે વોન ન્યમનનો ક્રક્સ અથવા સ્ટોર થયેલા આર્કિટેક્ચર પ્રોગ્રામ છે. કેટલાક કિસ્સાઓમાં કોમ્પ્યુટર કેટલોક ડેટા સાવ શકે છે અથવા તે ઓપરેટ કરે છે તે ડેટામાંથી અલગ મૂકાયેલા સમગ્ર પ્રોગ્રામને મેમરીમાં સમાવ શકે છે. તેને હાર્વર્ડ માર્ક I (Harvard Mark I) કોમ્પ્યુટર બાદ હાર્વર્ડ આર્કિટેક્ચર (Harvard architecture) તરીકે કહેવાય છે. આધુનિક વોન ન્યૂમન કોમ્પ્યુટર તેમની ડિઝાઇનમાં હાર્વર્ડ આર્કિટેક્ચરના કેટલાક લક્ષણો જેમ કે સીપીયુ કેચ (CPU cache) ડિસ્પ્લે કરે છે.
મશિન ભાષા (machine language)ના લાંબા નંબરોની યાદીની જેમ કોમ્પ્યુટર પ્રોગ્રામ લખવો શક્ય છે અને આ તરકીબનો ઉપયોગ અગાઉના કોમ્પ્યુટરો[૧૩]માં કરવામાં આવતો હતો, જે વ્યવહારમાં આવી રીતે, ખાસ કરીને જટિલ પ્રોગ્રામ માટે કરવું અત્યંત કંટાળાજનક છે. તેના બદલે તેના ફંકશનનો નિર્દેશ કરતી હોય તેવી ટૂંકા નામવાળી દરેક મૂળ સુચનાઓ આપી શકાય અને તે નેમોનિક (mnemonic)ને યાદ રાખવી સરળ છે જેમ કે એડીડી, સબ, મલ્ટ અથવા જંપ. આ નેમોનિક્સ સામુહિક રીતે કોમ્પ્યુટરની એસેમ્બલી ભાષા (assembly language) તરીકે ઓળખાય છે. કોમ્પ્યુટર ખરેખર સમજી શકે (મશિન ભાષા)તેવી એસેમ્બલી ભાષામાં લખેલા પ્રોગ્રામોને રૂપાંતર કરવાનું એસેમ્બ્લર તરીકે ઓળખાતા કોમ્પ્યુટર પ્રોગ્રામ દ્વારા કરવામાં આવે છે. મશિન ભાષાઓ અને એસેમ્બલી ભાષાઓ તેમને (સામૂહિક રીતે લો લેવલ પ્રોગ્રામીંગ લેંગ્વેજી (low-level programming language)સ તરીકે ઓળખાય છે)તરીકે છતી કરે છે અને તે ખાસ પ્રકારના કોમ્પ્યુટર તરીકે વિશિષ્ટ બનવા લાયક છે. ઉદાહરણ તરીકે એઆરએમ આર્કિટેક્ચર (ARM architecture) કોમ્પ્યુટર (જેમ કે પીડીએ (PDA) અથવા હેન્ડ હેલ્ડ વિડીયોગેમ (hand-held videogame)) ઇન્ટેલ પેન્ટિયમ (Intel Pentium) અથવા એએમડી એથલોન 64 (AMD Athlon 64), જે કદાચ પીસી (PC)માં હોઇ શકે છે, કોમ્પ્યુટરની મશિન ભાષા સમજી શકે નહી. [૧૪]
મશિન ભાષા કરતા નોંધપાત્ર રીતે સરળ હોવા છતાં એસેમ્બલી પ્રોગ્રામમાં લાંબા પ્રોગ્રામો લખવા ઘણી વાર મુશ્કેલ અને ભૂલ થઇ શકે તેવા હોય છે. તેથી, મોટા ભાગના જટિલ પ્રોગ્રામો વધુ સંક્ષિપ્ત હાઇ લેવલ પ્રોગ્રામીંગ ભાષા (high-level programming language)માં લખેલા હોય છે, જે કોમ્પ્યુટર પ્રોગ્રામર (computer programmer)ની જરૂરિયાતોને વધુ સરળ (અને તેથી પ્રોગ્રામરને ઓછ ભૂલો કરવા સહાય કરે છે) રીતે છતી કરવા સક્ષમ હોય છે.હાઇ લેવલ ભાષાઓ સામાન્ય રીતે કંપાઇલર (compiler) નામના અન્ય કોમ્પ્યુટર પ્રોગ્રામનો ઉપયોગ કરીને સામાન્ય રીતે મશિન ભાષામાં (અથવા કેટલીકવાર એસેમ્બલી ભાષા અને ત્યાર બાદ મશિન ભાષામાં)‘’ભાષાંતરીત’’ હોય છે. [૧૫] હાઇ લેવલ ભાષાઓ એસેમ્બલી ભાષાઓ કરતા વધુ સંક્ષિપ્ત હોવાથી, વિવિધ પ્રકારના કોમ્પ્યુટરની મશિન ભાષામાં સમાન પ્રકારની હાઇ લેવલ ભાષા ભાષાંતર કરવી કરવા માટે અલગ કંપાઇલરોનો ઉપયોગ કરવો શક્ય છે. વિવિધ પ્રકારના કોમ્પ્યુટર આર્કિટેક્ચર જેમ કે પર્સોનલ કોમ્પ્યુટર્સ અને અલગ અલગ વીડીયો ગેઇમ કોન્સોલ (video game console) માટે વીડીયો ગેઇમ ઉપલબ્ધ કરાવી શકાય તે માટેના સોફ્ટવેરના અનેક ઉપોયોગોનો એક ભાગ છે.
મોટી સોફ્ટવેર (software) સિસ્ટમ્સ વિકસાવવાનું કાર્ય પુષ્કળ પરસ્પર પ્રયત્ન છે. ધારણાયુકત શિડ્યૂલ અને બજેટ પર સ્વીકાર્ય. ઊંચી વિશ્વસનીયતા સાથે સોફ્ટવેરના ઉત્પાદને ઐતિહાસિક રીતે ભારે પડકાર ફેંક્યો છે; સોફ્ટવેર એન્જિનીયરીંગ (software engineering)ની શૈક્ષણિક અને વ્યાવસાયિક શિસ્ત ખાસ કરીને આ સમસ્યા પર ધ્યાન કેન્દ્રિત કરે છે.
[ફેરફાર કરો] ઉદાહરણ
જો કોમ્પ્યુટરને બે શેરીઓ વચ્ચેના આંતરિક ભાગમાં ટ્રાફિક સિગ્નલ (traffic signal) આપવા માટે કામે લગાવવામાં આવ્યું છે તેવું માનો. કોમ્પ્યુટર પાસે નીચે જણાવેલી ત્રણ મૂળ સુચનાઓ છે.
- ઓન (શેરીનું નામ, રંગ)ચોક્કસ રંગ સાથ શેરીના નામ પર પ્રકાશ ફેંકે છે.
- ઓફ (શેરીનું નામ, રંગ)ચોક્કસ રંગ નહી દર્શાવીને શેરીના નામ પર પ્રકાશ ફેંકે છે.
- વેઇટ (સેકંડ)થોડી ક્ષણો માટે ઊભા રહેવાનું કહે છે.
- START પ્રોગ્રામ શરૂ કરવા માટે
- રીપીટ જે લૂપમાં પ્રોગ્રામના ચોક્કસ ભાગને ફરીથી કરવાનું કોમ્પ્યુટરને કહે છે.
સૂચનાઓ ડાબી તરફ // ના ચિન્હ્ સાથે હોય છે. શેરીનું નામ બ્રોડવે અને મેઇન છે તેવું માનો.
START
//લેટ બ્રોડવે ટ્રાફિક ગો
OFF(બ્રોડવે, રેડ)
ON(બ્રોડવે, ગ્રીન)
WAIT(60 સેકન્ડ્સ)
//સ્ટોપ બ્રોડવે ટ્રાફિક
OFF(બ્રોડવે, ગ્રીન)
ON(બ્રોડવે, યલો)
WAIT (3 સેકન્ડ્સ)
OFF (બ્રોડવે, યલો)
ON(બ્રોડવે, રેડ)
//લેટ મેઇન ટ્રાફિક ગો
OFF(મેઇન, રેડ)
ON(મેઇન, ગ્રીન)
WAIT(60 સેકન્ડ્સ)
//સ્ટોપ મેઇન ટ્રાફિક
OFF(મેઇન, ગ્રીન)
ON(મેઇન, યલો)
WAIT (3 સેકન્ડ્સ)
OFF(મેઇન, યલો)
ON(મેઇન, રેડ)
//ટેલ કોમ્પ્યુટર ટુ કન્ટીન્યુઅસ્લી રિપિટ ધ પ્રોગ્રામ.
REPEAT ALL
આ સૂચનાઓ સાથે, કોમ્પ્યુટર બન્ને શેરીઓમાં લાલ, લીલી, પીળી અને ફરી લાલનું વર્તુળ ચાલુ રાખશે.
જોકે, કોમ્પ્યુટર સાથે ઓન/ઓફની સાદી સ્વીચ (switch) જોડાયેલી હોય તો, તેનો અર્થ એ કે જ્યારે કોઇ િભાવ કાર્ય ચાલુ હોય ત્યારે ફ્લેશ રેડ પ્રકાશ કરવા માટે ઉપયોગમાં લેવાની હોય છે. ત્યારબાદ પ્રોગ્રામ કોમ્પ્યુટરને નીચે પ્રમાણે સૂચના આપશે:
START
જો સ્વીચ ==ઓફ હોય તોઃ //નોર્મલ ટ્રાફિક સિગ્નલ ઓપરેશન
{
//લેટ બ્રોડવે ટ્રાફિક ગો
OFF(બ્રોડવે, રેડ)
ON(બ્રોડવે, ગ્રીન)
WAIT(60 સેકન્ડ્સ)
//સ્ટોપ બ્રોડવે ટ્રાફિક
OFF(બ્રોડવે, ગ્રીન)
ON(બ્રોડવે, યલો)
WAIT (3 સેકન્ડ્સ)
OFF (બ્રોડવે, યલો)
ON(બ્રોડવે, રેડ)
//લેટ મેઇન ટ્રાફિક ગો
OFF(મેઇન, રેડ)
ON(મેઇન, ગ્રીન)
WAIT(60 સેકન્ડ્સ)
//સ્ટોપ મેઇન ટ્રાફિક
OFF(મેઇન, ગ્રીન)
ON(મેઇન, યલો)
WAIT(3 સેકન્ડ્સ)
OFF(મેઇન, યલો)
ON(મેઇન, રેડ)
//ટેલ ધ કોમ્પ્યુટર ટુ રિપિટ ધીસ સેક્શન કન્ટીન્યુઅસ્લી.
REPEAT THIS SECTION
}
જો સ્વીચ ==ઓફ હોય તોઃ //મેઇન્ટેનન્સ મોડ
{
//ટર્ન ધ રેડ લાઇટ્સ ઓન એન્ડ વેઇટ 1 સેકન્ડ.
ON(બ્રોડ વે, રેડ)
ON(મેઇન, રેડ)
WAIT(1 સેકન્ડ)
//ટર્ન ધ રેડ લાઇટ્સ ઓફ એન્ડ વેઇટ 1 સેકન્ડ.
OFF(બ્રોડવે, રેડ)
OFF(મેઇન, રેડ)
WAIT(1 સેકન્ડ)
//આ સેકશનમાં સ્ટેટેમેન્ટ ફરીથી કરવા માટે કોમ્પ્યુટરને કહો.
REPEAT THIS SECTION
}
આ રીતે, જ્યારે સ્વીચ ઓન હોય ત્યારે ટ્રાફિક સિગ્નલ ફ્લેશ રેડ પ્રોગ્રામ રન કરશે અને જ્યારે સ્વીચ ઓફ હોય ત્યારે સાધારણ પ્રોગ્રામ રન કરશે. આ બન્ને પ્રોગ્રામના ઉદાહરણો કોમ્પ્યુટર પ્રોગ્રામના સરળ, પરિચિત ટ્રાફિક સિગ્નલ સંદર્ભમાં દર્શાવે છે. કોઇપણ અનુભવી પ્રાગ્રામર પ્રોગ્રામમાં અસંખ્ય સોફ્ટવેર બગ્સ (software bugs) સ્પોટ કર શકે છે, ઉદા. તરીકે જ્યારે સ્વીચ ફલેશ રેડ પ્રકાશ પાડતી હોય ત્યારે લીલી લાઇટ ઓફ હોય તેની ચકાસણી કરતી નથી. જોકે, તમામ શક્ય બગ્સ દૂર કરવાથી આ પ્રોગ્રામને વધુ પડતો લાંબો અને જટિલ બનાવશે અને ટેકનિકલ સિવાયના વાંચકોને મૂંઝવશેઃ આ ઉદાહરણનો ઉદ્દેશ કોમ્પ્યુટરની સુચનાઓ કેવ રીતે લાદવામાં આવી છે તેનું સરળ નિદર્શન છે.
[ફેરફાર કરો] કોમ્પ્યુટર્સ કેવી રીતે કામ કરે છે
બહોળા હેતુ વાળા કોમ્પ્યુટરમાં ચાર વિભાગો હોય છેઃ એરિથમેટિક અને લોજિક યુનિટ (arithmetic and logic unit) (એએલયુ), કંટ્રોલ યુનિટ (control unit), મેમરી (memory) અને ઇનપુટ અને આઉટપુટ ડિવાઇસ (સામૂહિક રીતે I/0 તરીકે ઓળખાય છે) આ હિસ્સાઓ બસો (busses) દ્વારા આંતરિક રીતે જોડાયેલા હોય છે, ઘણીવાર તે વાયર્સ (wire)ના જથ્થા દ્વારા બનેલા હોય છે.
કંટ્રોલ યુનિટ, એએલયુ રજિસ્ટર કરે છે અને બેઝિક I/O (અને ઘણીવાર તેની સાથે ગાઢ રીતે સંકળાયેલા અન્ય હાર્ડવેર)સામૂહિક રીતે સેન્ટ્રલ પ્રોસેસીંગ યુનિટ (central processing unit) (સીપીયુ) તરીકે ઓળખાય છે. પ્રારંભના સીપીયુ અસંખ્ય સ્વતંત્ર કોમ્પોનન્ટનું મિશ્રણ હતા પરંતુ, 1970ના મધ્યથી સીપીયુને ખાસ રીતે માઇક્રોપ્રોસેસર (microprocessor) તરીકે ઓળખાતી એક જ ઇન્ટીગ્રેટેડ સર્કિટ (integrated circuit) પર ઊભા કરવામાં આવ્યા હતા.
[ફેરફાર કરો] કંટ્રોલ યુનિટ
કંટ્રોલ યુનિટ (ઘણી વાર કંટ્રોલ સિસ્ટમ અથવા સેન્ટ્રલ કંટ્રોલર તરીકે ઓળખાય છે)કોમ્પ્યુટરના વિવિધ કોમ્પોનન્ટને આદેશ આપે છે. તે પ્રોગ્રામમાં એક પછી એક સુચનાઓ વાંચે છે અને દૂભાષિત (ડિકોડસ)કરે છે. કંટ્રોલ સિસ્ટમ દરેક સુચનાઓને ડિકોડ કરે છે અને તેને અસંખ્ય કંટ્રોલ સિગ્નલોમાં રૂપાંતર કરે છે જે કોમ્પ્યુટરના અન્ય ભાગને ઓપરેટ કરે છે. [૧૬] એડવાન્સડ કોમ્પ્યુટમાં કંટ્રોલ સિસ્ટમ કામગીરીમાં સુધારો લાવવા માટે કેટલીક સુચનાઓના ક્રમમાં ફેરફાર કરી શકે છે.
દરેક સીપીયુમાં અગત્યનો કોમ્પોનન્ટ એટલે કે પ્રોગ્રામ કાઉન્ટર (program counter) સર્વસામાન્ય હોય છે, ખાસ મેમરી સેલ (રજિસ્ટર (register))જે, હવે પછીની સુચના મેમરીના ક્યા લોકેશનમાં વાંચવામાં આવશે તેનું ધ્યાન રાખે છે. [૧૭]
એમઆઇપીએસ આર્કિટેક્ચર (MIPS architecture) સુચનાઓ કેટલી ચોક્કસ છે તે દર્શાવતો
કંટ્રોલ સિસ્ટમનું ફંકશન નીચે દર્શાવેલી નોંધ પ્રમાણે છે, જેમ કે આ એક સરળ વર્ણન છે અને આમાના કેટલાક પગલાંઓ એકી સમયે અથવા તો સીપીયુના પ્રકારના આધારે વિવિધ રીતે અનુસરવામાં આવશે.
- પ્રોગ્રામ કાઉન્ટર દ્વારા દર્શાવવામાં આવેલા સેલમાંથી પછીની સુચના માટે કોડ વાંચો.
- દરેક સિસ્ટમ્સ માટે કમાન્ડ અને સિગ્નલ્સના કમાન્ડના સેટમાં સુચના માટે ન્યૂમરિક કોડને ડિકોડ કરો.
- પ્રોગ્રામ કાઉન્ટરમાં વઘારો કરો, જેથી પછીની સુચનાને અનુસરે.
- મેમરી(અથવા કદાચ ઇનપુટ ડિવાઇસ)માં રહેલા સેલમાંથી જરૂરી સુચનાનો જેતે ડેટા વાંચો. આ જરૂરી ડેટાનું લોકેશન ખાસ કરીને ઇન્સ્ટ્રક્શન કોડમાં સ્ટોર થયેલું હોય છે.
- એએલયુ અથવા રજિસ્ટરને જરૂરી ડેટા પૂરો પાડો.
- જો સુચનાઓ એએલયુ અથવા ખાસ હાર્ડવેરને પૂર્ણ કરવા માટે જરૂરી હોય તો, વિનંત કરાયેલ કામગીરી હાથ ધરવા માટે હાર્ડવેરને સુચના આપો.
- એએલયુ બેક ટુ મેમર લોકેશન અથવા તો રજિસ્ટર અથોવા કદાચ આઉટપુટ ડિવાઇસમાંથી પરિણામ લખો.
- (1) સ્ટેપ પર પાછા આવો.
પ્રોગ્રામ કાઉન્ટર (સરળ રીતે)માત્ર મેમરી સેલ્સનો સેટ હોવાથી, તેને એએલયુમાં ગણતરી દ્વારા ફેરવી શકાય છે. પ્રોગ્રામ કાઉન્ટરમાં 100 ઉમેરતા વધુ ડાઉન પ્રોગ્રામ માટે 100 લોકેશનમાંથી તે પછીની સુચના વાંચવમાં પરિણમશે. જે પ્રોગ્રામ કાઉન્ટરને સુધારે છે તે સુચનાઓને ઘણી વખત “જંપ્સ” તરીકે ઓળખવામાં આવે છે અને લૂપ્સની મંજૂરી આપે છે (કોમ્પ્યુટર દ્વારા વારંવાર કરવામાં આવતી સુચનાઓ)અને ઘણી વખત શરતી સુચનાત્મક અમલ (કંટ્રોલ ફ્લો (control flow)ના બન્ને ઉદાહરણો)કરે છે.
એવું નોંધી શકાય છે કે પ્રોસેસ દ્વારા કંટ્રોલ યુનિટ જે શ્રેણીબંધ કામગીરી કરે છે તે સુચના તેની રીતે ટૂંકા કોમ્પ્યુટર પ્રોગ્રામ જેવી જ હોય છે અને ખરેખર, કેટલાક વધુ જટિલ સીપીયુ ડિઝાઇન્સમાં અન્ય એક વધુ નાનુ કોમ્પ્યુટર હોય છે જે માઇક્રોસિક્વન્સર (microsequencer) તરીકે ઓળખાય છે, જે માઇક્રોકોડ (microcode) પ્રોગ્રામ રન કરે છે, જે આ તા ઘટનાઓના નિર્માણ માટે કારણભૂત હોય છે.
[ફેરફાર કરો] એરિથમેટિક/લોજિક યુનિટ (ALU)
એએલયુ કામગીરીના બે પ્રકાર માટે સક્ષમ હોય છેઃ એરિથમેટિક અને લોજિક.
ખાસ એએલયુ ટેકો પૂરો પાડે છે તેવી એરિથમેટિક કામગીરીનો સેટ કદાચ ઉમેરણ કે બાદબાકી માટે મર્યાદિત હોય અથવા તો ગુણાકાર અથવા ભાગાકાર, ટ્રિગોનોમેટ્રી (trigonometry) ફંકશન્સ (સાઇન, કોસન વગેરે)અને વર્ગમૂળ (square root)નો સમાવેશ કરતી હોય. કેટલાક લોકો સંપૂર્ણ ક્રમાંકો (ઇન્ટેગર (integer)) ઓપરેટ કરી શકતા હોય, જ્યારે અન્યો મર્યાદિત પ્રિસિશન છતા વાસ્તવિક આંકડા (real number)ઓ છતા કરવા માટે ફ્લોટીંગ પોઇન્ટ (floating point)નો ઉપયોગ કરે છે. જોકે, અન્ય કોઇ પણ કોમ્પ્યુટર કે જે ફક્ત સરળમાં સરળ ઓપરેશન હાથ ધરવા સક્ષમ હોય તેને તે કામ કરી શકે તેવા સરળ પગલાંઓમાં વધુ જટિલ ઓપરેશનો તોડી પાડવામાં પ્રોગ્રામ કરી શકાય. તેથી, કોઇપણ કોમ્પ્યુટરને કોઇ પણ એરિથમેટિક પ્રોગ્રામ હાથ ધરવા માટે પ્રોગ્રામ કરી શકાય, જોકે, તેનું એએલયુ જો ઓપરેશનને સીધો ટેકો પૂરો પાડતું ન હોય તો તે વધુ સમય લેશે. એએલયુ પણ ક્રમાંકોની તુલના કરી શકે છે અને એક એકની સમાન, અન્ય કરતા વધુ કે ઓછા (“શુ 64 65 કરતા મોટા છે?”)તેના આધારે બૂલીન ટ્રૂથ વેલ્યુ (boolean truth values) (સાચી કે ખોટી)પરત આપી શકે છે.
લોજિક એપરેશન્સમાં બૂલીન લોજિક (Boolean logic): એએનડી (AND), ઓઆર (OR), એક્સઓઆર (XOR) અને એનઓટી (NOT)નો સમાવેશ થાય છે. આ જટિલ કંડીશનલ સ્ટેટમેન્ટ (conditional statement) અને પ્રોસેસીંગ બૂલીન લોજિક (boolean logic)એમ બન્ને માટે ઉપયોગી થઇ શકે છે.
સુપરસ્કેલર્સ કોમ્પ્યુટર્સ (Superscalar)માં એક કરતા વધુ એએલયુનો સમાવેશ થાય છે, જેથી એક જ સમયે વિવિધ સુચનાઓની પ્રોસેસ કરી શકે. એસઆઇએમડી (SIMD) અને એમઆઇએમડી (MIMD) લાક્ષણિકતાઓ સાથેના ગ્રાફિક્સ કોમ્પ્યુટર (Graphics processors) પ્રોસેસર્સ ઘણી વખત એવા એએલયુ પૂરા પાડે છે જે વેક્ટર્સ (vectors) અને મેટ્રિસેસ (matrices) પર એરિથમેટિક હાથ ધરી શકે છે.
[ફેરફાર કરો] મેમરી
સેલની યાદી તરીકે કોમ્પ્યુટરની મેમરીને જોઇ શકાય છે, જેમાં ક્રમાકો મૂકી શકાય છે અથવા વાંચી શકાય છે. દરેક સેલને ક્રમાંકિત “એડ્રેસ” હોય છે અને તેને એક જ ક્રમાંકમાં સ્ટોર કરી શકાય છે. કોમ્પ્યુટરને “સેલ ક્રમાકિત 1357માં 123 ક્રમાંક મૂકવા કહી શકાય છે” અથવા “સેલ 1357થી સેલ 2468 સુધીમાં ક્રમાંક ઉમેરવા અને સેલ 1595માં જવાબ મૂકવા” સુચના આપી શકાય છે. મેમરીમાં સ્ટોર થયેલ માહિતી વ્યવહારીક રીતે કંઇ પણ પ્રદર્શિત કરી શકે છેઅક્ષરો, ક્રમાંકો અને કોમ્પ્યુટર સુચનાઓ પણ સમાન ક્રમમાં મૂકી શકાય છે. વિવિધ પ્રકારની માહિતી વચ્ચે સીપીયુ અલગ નહી પડતા હોવાથી મેમરી ક્રમાંકની શ્રેણી સિવાય બીજુ કશું જ જોતી નથી તેને અગત્યતા આપવાનો આધાર સોફ્ટવેર પર છે.
મોટે ભાગે દરેક આધુનિક કોમ્પ્યુટરોમાં આઠ બીટ (bit)ના જૂથમાં (જે બાયટ (byte) તરીકે ઓળખાય છે) બાયનરી નંબર (binary number) સ્ટોર કરવા માટે દરેક મેમરી સેલ નાખવામાં આવેલો હોય છે. દરેક બાયટ 256 વિવિધ નંબરો પ્રદર્શિત કરવા સક્ષમ હોય છે; ક્યાં તો 0થી 255 અથવા -128થી +127 સુધી. મોટા નંબરો સ્ટોર કરવા માટે, વિવિધ પરિણમતા બાયટ્સનો ઉપયોગ કરી શકાય (ખાસ કરીને બે, ચાર અથવા આઠ).જ્યારે નકારાત્ક નંબરની જરૂરિયાત હોય ત્યારે, તેને સામાન્ય રીતે ટુઝ કોમ્પ્લીમેન્ટ (two's complement) નોટેશનમાં સ્ટોર કરવામાં આવે છે. અન્ય વ્યવસ્થાઓ શક્ય છે, પરંતુ ખાસ પ્રકારની એપ્લીકેશનો અથવા ઐતિહાસિક સંદર્ભોની બહાર સામાન્ય રીતે જોવા મળતી નથી. કોમ્પ્યુટર જ્યાં સુધી નંબરના સ્વરૂપમાં પ્રદર્શિત થતી હોય ત્યાં સુધી કોઇ પણ પ્રકારની માહિતીને મેમરીમાં સ્ટોર કરી શકે છે. આધુનિક કોમ્પ્યુટરો અબજો અથવા ટ્રીલીયન બાયટ્સ મેમરી પણ ધરાવે છે.
સીપીયુ મેમરી સેલ્સનો ખાસ સેટ ધરાવે છે જે રજિસ્ટર્સ (registers) તરીકે ઓળખાય છે, જે મેઇમ મેમરી એરિયા કરતા વધુ ઝડપથી વાંચી કે લખી શકાય છે. બે અથવા એકસો રજિસ્ટર્સની વચ્ચે સીપીયુના પ્રકારના આધારે ટિપીકલી હોય છે. જરૂર હોય તેવા દરેક સમયે મેઇન મેમરીમાં પ્રવેશવાનું દૂર કરવા માટે વારંવાર જરૂર પડતા ડેટા માટે રજિસ્ટર્સ ઉપયોગમાં લેવામાં આવે છે. ડેટા સતત આગળ વધતા હોવાથી, મેઇમ મેમરી(જે ઘણી વખત એએલયુ અને કંટ્રોલ યુનિટની તુલનામાં ઘણી વખત ધીમુ હોય છે)માં પ્રવેશવાની જરૂરીયાતમાં ઘટાડો કરે છે, અને તેના લીધે કોમ્પ્યુટરની સ્પીડમાં ભારે વધારો કરે છે.
કોમ્પ્યુટર મેઇમ મેમરી બે મુખ્ય જાતોમાં આવે છેઃ રેન્ડમ એક્સેસ મેમરી (random access memory) અથવા રેમ અને રીડ ઓન્લી મેમરી (read-only memory) અથવા આરઓએમ. સીપીયુ કમાન્ડ આપે તેમ રેમ કોઇ પણ સમયે વંચ અને લખી શકે છે, પરંતુ આરઓએમ ડેટા અને સોફ્ટવેર સાથે પ્રિ લોડેડ હોય છે, જેમાં કદ ફેરફાર થતો નથી, તેથી સીપીયુ તેની પરથી જ વાંચી શકે છે. આરઓએમ ખાસ કરીને કોમ્પ્યુટરના પ્રારંભિક સ્ટાર્ટ અપ સુચનાઓને સ્ટોર કરવા માટે ઉપયોગમાં લેવામાં આવે છે. સામાન્ય રીતે, આરઓએમ નિઃશંકપણે તેનો ડેટા પુનઃપ્રાપ્ત કરે ત્યારે કોમ્પ્યુટરનો પાવર ઓફ કરતી વખતે આરએએમની યાદી ભૂંસાઇ જાય છે. પીસીમાં, બાયોસ (BIOS) તરીકે ઓળખાતા ખાસ પ્રોગ્રામનો આરઓએમમાં સમાવેશ થાય છે, જે કોમ્પ્યુટર ચાલુ કરવામાં અથવા રિસેટ કરવામાં આવે ત્યારે હાર્ડ ડિસ્ક ડ્રાઇવ પરથી આરએએમમાં કોમ્પ્યુટરની ઓપરેટિંગ સિસ્ટમ (operating system) લોડીંગ કરવાનો આદેશ આપે છે. જેમાં ડિસ્ક ડ્રાઇવ ન હોય તેવા એમબેડેડ કોમ્પ્યુટર્સ (embedded computer)માં તમામ સોફ્ટવેરને આરઓએમમાં સમાવિષ્ટ ટાસ્ક કરવાની જરૂર પડે છે. આરઓએમમાં સમાવિષ્ટ સોફ્ટવેર ફર્મવેર (firmware) તરીકે ઓળખાય છે, કેમ કે તે સોફ્ટવેર કરતા હાર્ડવેર જેમ વધુ કાલ્પનિક હોય છે. ટર્ન ઓફ હોય ત્યારે ડેટા પ્રાપ્ત કરીને આરઓએમ અને આરએએમ વચ્ચે ફ્લેશ મેમરી (Flash memory) તફાવત પાડે છે, પરંતુ આરએમએમ જેમ પુનઃલખી શકાય તેમ હોય છે. જોકે, ફ્લેશ મેમરી પરંપરાગત આરઓએમ અને આરએએમની તુલનામાં ઘણું ધીમુ હોય છે, તેથી જ્યારે હાઇ સ્પીડ જરૂર ન હોય ત્યારે એપ્લીકેશનો મર્યાદિત કરવામાં તેનો ઉપયોગ થાય છે. [૧૮]
અત્યંત આધુનિક કોમ્પ્યુટર્સમાં એક કે તેનાથી વધુ આરએએમ કેચ મેમરી (cache memories) હોય છે, જે રજિસ્ટર્સ કરતા ધીમી હોય છે પરંતુ મેઇન મેમરી કરતા ઝડપી હોય છે. વિવિધ પ્રકારેની કેચ સાથેના કોમ્પ્યુટરોને સામાન્ય રીતે કેચમાં આપોઆપ રીતે જ સતત જરૂરી ડેટા ખસેડવા માટે તૈયાર કરવામાં આવ્યા હોય છે, જેમાં ઘણી વખત પ્રોગ્રામરને ભાગ્યે જ દરમિયાનગીરી કરવાનો વખત આવે છે.
[ફેરફાર કરો] ઇનપુટ/આઉટપુટ (I/O)
I/O એટલે કે કોમ્પ્યુટર બહારની દુનિયામાંથી માહિતી મેળવે છે અને તેના પરિણામો પરત મોકલે છે. કોમ્પ્યુટરને ઇનપુટ કે આઉટપુટ પૂરા પાડતા ડિવાઇસને પેરિફેરલ (peripheral) તરીકે ઓળખવામાં આવે છે. વિશિષ્ટ પ્રકારના પર્સોનલ કોમ્પ્યુટર (personal computer)ના પેરિફેરલ્સમાં ઇનપુટ ડિવાઇસીસ જેમ કે કી બોર્ડ અને માઉસ (mouse) અને આઉટપુટ ડિવાઇસીસ જેમ કે ડિસ્પ્લે (display) અન પ્રિન્ટર (printer)નો સમાવેશ થાય છે. હાર્ડ ડિસ્ક ડ્રાઇવ (Hard disk drive), ફ્લોપી ડિસ્ક ડ્રાઇવ (floppy disk drive) અને ઓપ્ટીકલ ડિસ્ક ડ્રાઇવ (optical disc drive) ઇનપુટ અને આઉટપુટ ડિવાઇસ એમ બન્ને રીતે ઉપયોગી છે. કોમ્પ્યુટર નેટવર્કિંગ (Computer networking) I/O નો બીજો એક પ્રકાર છે.
ઘણી વખત I/O ડિવાઇસીસ તેમના પોતાના સીપીયુ અને મેમરી સાથે તેમના પોતાના હક્ક અંતર્ગત કોમ્પ્લેક્સ કોમ્પ્યુટર્સ છે. ગ્રાફિક્સ પ્રોસેસીંગ યુનિટ (graphics processing unit)માં પચાસ અથવા વધુ નાજુક કોમ્પ્યુટર્સનો કદાચ સમાવેશ થઇ શકે છે, જે 3ડી ગ્રાફિક્ ડિસ્પ્લે (3D graphics)(સંદર્ભ આપો)
કરવા માટે જરૂરી ગણતરીઓ હાથ ધરે છે. આધુનિક ડેસ્કટોપ કોમ્પ્યુટર (desktop computer)માં નાના કોમ્પ્યુટરોનો સમાવેશ થાય છે, જે મેઇન સીપીયુને I/O હાથ ધરવામાં મદદ કરે છે.
[ફેરફાર કરો] મલ્ટીટાસ્કીંગ
કોમ્પ્યુટરને તેની મેઇન મેમરીમાં સમાવિષ્ટ એક મહાકાય પ્રોગ્રામ રન કરે છે તે રીતે જ કદાચ જોઇ શકાય છે, ત્યારે કેટલીક સિસ્ટમ વિવિધ પ્રોગ્રામો એકી સાથે ચલાવી શકે તેવો દેખાવ આપે તે જરૂરી છે. વારાફરતી દરેક પ્રોગ્રામો રન કરવા ઝડપથી કોમ્પ્યુટર સ્વીચ ફેરવતા આ હાંસલ કરી શકાયું છે. કેટલાક લોકો એવું માને છે કે ઇન્ટરપ્ટ (interrupt) તરીકે કહેવાતા ખાસ પ્રકારના સિગ્નલ સાથે આ પૂરું થઇ ગયું છે, જે સામયિક ધોરણે કોમ્પ્યુટરને સુચનાઓનો જ્યાં તે હોય અને તેના બદલે કંઇ બીજુ કરવાના અમલ કરવાથી અટકાવી દે છે. ઇન્ટરપ્ટ પહેલા તે અમલ કરતું હતું તે યાદ કરતી વેળાએ કોમ્પ્યુટર ટાસ્કમાં બાદમાં પરત ફરી શકે છે. જો વિવિધ પ્રોગ્રામો “એક જ સમયે ચાલતા હોય” ત્યારે, ઇન્ટરપ્ટની ઉત્પત્તિ દર સેકંડે વિવિધ હજ્જારો ઇન્ટરપ્સના ઉદભવમાં પરિણમે છે, જે દરેક પ્રોગ્રામ સ્વીચ માટે કારણભૂત બને છે. માનવીય દ્રષ્ટિકોણ કરતા ઝડપી મેગ્નીટ્યૂડના વિવિધ ઓર્ડરોની આધુનિક કોમ્પ્યુટરો વિશિષ્ટ રીતે સુચનાઓનો અમલ કરે છે, ત્યારે કદાચ, પ્રસ્તુત ઉદાહરણમાં ફક્ત એક જ અમલ કરતું હોવા છતાં ઘણા પ્રોગ્રામો એક સમયે ચાલતા હોય તેવું દેખાય છે. આ મલ્ટીટાસ્કીંગની પદ્ધતિને ઘણી વખત “ટાઇમ શેરીંગ”તરીકે ઓળખવામાં આવે છે, કેમ કે દરેક પ્રોગ્રામને વારફરતી સમયની “સ્લાઇસ” ફાળવવામાં આવી હોય છે.
સસ્તા કોમ્પ્યુટર્સના યુગ પહેલા, મલ્ટીટાસ્કીંગ માટેનો મુખ્ય ઉપયોગ સમાન કોમ્પ્યુટરની વહેંચણી માટે ઘણા લોકોને મંજૂરી આપવાનો હતો.
મલ્ટીટાસ્કીંગ કોમ્પ્યુટરને તે કેટલા પ્રોગ્રામો ચલાવે છે તેના સીધા પ્રમાણમાં વિવિધ પ્રોગ્રામો રન કરવાની વચ્ચે વધુ ધીમી રીતે કામ કરવાની ફરજ પાડશે તેવું લાગે છે. જોકે, મોટા ભાગના પ્રોગ્રામો પોતાના ટાસ્ક પૂરા કરવામાં સ્લો ઇનપુટ/આઉટપુટ ડિવાઇસ માટે રાહ જોવામાં પોતાના મોટા ભાગનો સમય ખર્ચી નાખે છે. જો પ્રોગ્રામ, યૂઝર માઉસ પર ક્લિક કરે અથવા તો કીબોર્ડ પરની કી દબાવે તેની રાહ જોતો હોય તો, તે જે ઘટના થવાની રાહ જુએ છે તે ન થાય ત્યાં સુધી “ટાઇમ સ્લાઇસ” લેશે નહી. આ ક્રિયા અન્ય પ્રોગ્રામોને અમલ માટે મુક્ત કરે છે, જેથી ઘણા પ્રોગ્રામો અસ્વીકાર્ય સ્પીડ લોસ વિના એકી સમયે ચાલી શકે.
[ફેરફાર કરો] મલ્ટીપ્રોસેસિંગ
કેટલાક કોમ્પ્યુટરો મલ્ટીપ્રોસેસીંગ સંચરનાનું સર્જન કરીને એક કે તેનાથી વધુ સીપીયુ વચ્ચે પોતાનું કામ વહેંચી શકે છે. પરંપરાગત રીતે, આ તરકીબ મોટા અને શક્તિશાળી કોમ્પ્યુટરો જેમ કે સુપરકોમ્પ્યુટર (supercomputer), મેઇનફ્રેમ કોમ્પ્યુટર (mainframe computer) અને સર્વર્સ (servers)માં વપરાશમાં લેવામાં આવી હતી. જોકે, મલ્ટીપ્રોસેસર અને મલ્ટી કોર (multi-core) (સીંગલ ઇન્ટીગ્રેટેડ સર્કિટ પર મલ્ટીપલ સીપીયુ)પર્સોનલ અને લેપ્ટોપ કોમ્પ્યુટર્સ વ્યાપક પ્રમાણમાં ઉપલબ્ધ બન્યા છે અને પરિણામ સ્વરૂપે લોઅર એન્ડ બજારોમાં વધુ પડતા વપરાશના પ્રારંભ થઇ રહ્યો છે.
સુપરકોમ્પ્યુટર વિશિષ્ટ રીતે ઘી વખત વિશિષ્ટ આર્કિટેક્ચર ધરાવતા હોય છે, જે બેઝિક સ્ટોર કરેલા પ્રોગ્રામ આર્કિટેક્ચર અને સામાન્ય હેતુ વાળા કોમ્પ્યુટર્સથી નોંધપાત્ર રીતે અલગ પડે છે.[૧૯] તે ઘણી વખત હજ્જારો સીપીયુ, કસ્ટમાઇઝ્ડ હાઇ સ્પીડ ઇન્ટરકનેક્ટસ અને ખાસ કોમ્પ્યુટીંગ હાર્ડવેર ધરાવે છે. મોટા ભાગના પ્રોગ્રામ ઓર્ગેનાઇઝેશનોને એક સમયે મોટા ભાગના ઉપલબ્ધ સ્ત્રોતોનો સફળતાપૂર્વક ઉપયોગ કરવાની જરૂરિયાત હોવાને કારણે આ પ્રકારની ડિઝાઇનો ફક્ત ખાસ ટાસ્ક માટે ઉપયોગી બની શકે તેમ છે. સુપરકોમ્પ્યુટર્સ સામાન્ય રીતે મોટા પાયાના સિમ્યુલેશન (simulation), ગ્રાફિક્સ રેન્ડરીંગ (graphics rendering) અને ક્રિપ્ટોગ્રાફી (cryptography) એપ્લીકેશનમાં તેમજ કહેવાતા “એમ્બ્રેસીંગ પેરેલલ (embarrassingly parallel)” ટાસ્કમાં ઉપયોગમાં આવે છે.
[ફેરફાર કરો] નેટવર્કિંગ અને ઇન્ટરનેટ
ઇન્ટરનેટ પર રુટ્સ (routes)ના પોર્શનનું
કોમ્પ્યુટરોનો 1950થી મલ્ટીપલ લોકેશન્સ વચ્ચેની માહિતી સંકલન માટે ઉપયોગ થતો આવ્યો છે. અમેરિકાની મિલીટરીના સાગે (SAGE) એ આ પ્રકારની સિસ્ટમનું સૌપ્રથમ મોટા પાયાનું ઉદાહરણ છે, જે અસંખ્ય ખાસ હેતુ વાળી વ્યાપારી સિસ્ટમો જેમ કે સાબરે (Sabre)માં પરિણમી હતી.
1970માં અમેરિકાની સંશોધન સંસ્થાઓ ખાતેના કોમ્પ્યુટર એન્જિનીયરોએ ટેલિકોમ્યુનિકેશન ટેકનોલોજીના ઉપયોગ વડે પોતાના કોમ્પ્યુટરોને સાંકળવાનો પ્રારંભ કર્યો હતો. આ પ્રયત્નને એઆરપીએ (હવે ડીએઆરપીએ (DARPA))અને કોમ્પ્યુટર નેટવર્ક (computer network) દ્વારા ભંડોળ પૂરું પાડવામાં આવ્યું હતું કે જેણે એઆરપીએએનઇટી (ARPANET) (અર્પાનેટ)નું ઉત્પાદન કર્યું હતું. ટેકનોલોજીએ અર્પાનેટને શક્ય ફેલાવા અને વિકાસ માટે શક્ય બનાવી હતી. દરમિયાનમાં નેટવર્ક શૈક્ષણિક અને મિલીટરી સંસ્થાઓથી પણ આગળ ફેલાયું હતું અને ઇન્ટરનેટ (Internet) તરીકે જાણીતુ બન્યુ. નેટવર્કીંગના ઉદભવમાં કુદરતની પુનઃવ્યખ્યા અને કોમ્પ્યુટરની સરહદોનો સમાવેશ થાય છે. વ્યક્તિગત કોમ્પ્યુટરના સ્ત્રોતોના વિસ્તરણ તરીકે નેટવર્ક પરના અન્ય કોમ્પ્યુટરના સ્ત્રોતો જેમ કે પેરિફેરલ ડિવાઇસ, સંગ્રહીત માહિતી અને તેવા પ્રકારોને વ્યાખ્યાયિત કરવામાં અને એક્સેસ કરવાની ક્ષમતાનો સમાવેશ કરવા માટે કોમ્પ્યુટર ઓપરેટિંગ સિસ્ટમ્સ અને એપ્લીકેશનોને સુધારવામાં આવી હતી. પ્રારંભમાં આ સવલત જે લોકો હાઇ ટેક પર્યાવરણોમાં કામ કરતા હતા તેમને ઉપલબ્ધ હતી, પરંતુ 1990માં એપ્લીકેશનો જેમ કે ઇમેલ (e-mail) અને વર્લ્ડ વાઇડ વેબ (World Wide Web)ની સાથે સસ્તી ઝડપી નેટવર્કીંગ ટેકનોલોજી જેમ કે ઇધરનેટ (Ethernet) અને એડીએસએલ (ADSL)ના ફેલાવા સાથે કોમ્પ્યુટર નેટવર્કીંગ લગભગ તમામ સ્થળે ઉપલબ્ધિ તરીકે ઉભરી આવી હતી. હકીકતમાં નેટવર્ક થયેલા કોમ્પ્યુટરોની સંખ્યા મોટી માત્રામાં વધતી જાય છે. પર્સોનલ કોમ્પ્યુટરો (personal computers)નો મોટો ભાગ માહિતીની આપ-લેમાં નિયમિતપણે ઇન્ટરનેટ (Internet) સાથે જોડાયેલો છે. “વાયરલેસ” નેટવર્કીંગ ઘણી વખત મોબાઇલ ફોન (mobile phone) નેટવર્કનો ઉપયોગ કરે છે, તેનો અર્થ એ કે મોબાઇલ કોમ્પ્યુટીંગ પર્યાવરણમાં પણ નેટવર્કીંગનો સર્વસ્વ ઉપલબ્ધિનો વ્યાપ વધતો જાય છે. ઢાંચો:-
[ફેરફાર કરો] આગળના વિષયો
[ફેરફાર કરો] હાર્ડવેર
હાર્ડવેર શબ્દ તમામ પ્રકારના કોમ્પ્યુટરના ભાગ કે જે સ્થાયી પદાર્થ હોય તેને આવરી લે છે. સર્કિટ, ડિસ્પ્લે, પાવર સપ્લાય, કેબલ્સ, કી બોર્ડ, પ્રિન્ટર્સ અને માઇસ (માઉસીસ)એ હાર્ડવેર છે.
| પેરિફેરલ ડિવાઇઝ (Peripheral device) (ઇનપુટ/આઉટપુટ (Input/output)) | ઇનપુટ | માઉસ (Mouse), કીબોર્ડ (Keyboard), જોયસ્ટિક (Joystick), ઇમેજ સ્કેનર (Image scanner) |
| આઉટપુટ | મોનિટર (Monitor), પ્રિન્ટર (Printer) | |
| બન્ને | ફ્લોપી ડિસ્ક ડ્રાઇવ (Floppy disk drive), હાર્ડ ડિસ્ક (Hard disk), ઓપ્ટિકલ ડિસ્ક ડ્રાઇવ (Optical disc), ટેલિપ્રિન્ટર (Teleprinter) | |
| કોમ્પ્યુટર બસો (Computer bus) | ટૂંકી રેન્જ | RS-232 (RS-232), SCSI (SCSI), PCI (PCI), USB (USB) |
| લાંબી રેન્જ (કોમ્પ્યુટર નેટવર્કિંગ (Computer networking)) | એથરનેટ (Ethernet), ATM (ATM), FDDI (FDDI) |
[ફેરફાર કરો] સોફ્ટવેર
સોફ્ટવેર કોમ્પ્યુટરના એવા ભાગોનો ઉલ્લેખ કરે છે, જે મટીરીયલ સ્વરૂપમાં નથી, જેમ કે પ્રોગ્રામ્સ, ડેટા, પ્રોટોકોલ્સ વગેરે. જ્યારે હાર્ડવેરમાં સોફ્ટવેર સ્ટોર કરવામાં આવ્યો હોય ત્યારે, તેને સરળ રીતે સુધારી શકાતું નથી (જેમ કે આઇબીએમ પીસી કોમ્પેટીબલ (IBM PC compatible)માં બાયોસ (BIOS), આરઓએમ (ROM)),તે હાર્ડવેર અને સોફ્ટવેર વચ્ચે કોઇક સ્થળે અચોક્કસ વિસ્તારમાં આવે છે તે નિર્દેશ કરવા માટે તેને ઘણી વખત “ફર્મવેર” કહેવાય છે.
[ફેરફાર કરો] પ્રોગ્રામિંગ ભાષાઓ
પ્રોગ્રામીંગ ભાષા કોમ્પ્યુટરને રન કરવા માટે પ્રોગ્રામ નિર્દેશના વિવિધ માર્ગો પૂરા પાડે છે કુદરતી ભાષા સિવાય (natural language), પ્રોગ્રામીંગ ભાષાઓ અસ્પષ્ટ નહી અને ટૂંકાણમાં મંજૂરી આપવા માટે તૈયાર કરવામાં આવી છે. તે શુદ્ધ રીતે લખાયેલી ભાષા છે અને ઘણી વખત મોટેથી વાંચવામાં પણ મુશ્કેલ છે તે ક્યાંતો મશિન ભાષા (machine language)માં ભાષાંતરકાર (compiler) દ્વારા અથવા એસેમ્બ્લર (assembler) દ્વારા રન કરતા પહેલા ભાષાંતરીત હોય છે અથવા દૂભાષીયા (interpreter) દ્વારા રન સમય વખતે સીધી જ ભાષાંતર કરવામાં આવે છે. કેટલીક વખત બે ટેકનીકની હાઇબ્રીડ પદ્ધતિ દ્વારા પ્રોગ્રામ હાથ ધરવામાં આવે છે. હજ્જારો વિવિધ પ્રોગ્રામીંગ ભાષાઓ છે-જેમાંની કેટલીક સામાન્ય હેતુ માટેની હતી, જ્યારે અન્ય હાઇલી સ્પેશિયલાઇઝ્ડ માટે જ ઉપયોગી હતી.
| પ્રોગ્રામિંગ ભાષાઓની યાદી | પ્રોગ્રામિંગ ભાષાઓની સમયરેખા (Timeline of programming languages), પ્રોગ્રામિંગ ભાષાઓની શ્રેણીગત યાદી (Categorical list of programming languages), પ્રોગ્રામિંગ ભાષાઓની વારસાગત યાદી (Generational list of programming languages), પ્રોગ્રામિંગ ભાષાઓની મૂળાક્ષરો મુજબની યાદી (Alphabetical list of programming languages), બિન-અંગ્રેજી આધારિત પ્રોગ્રામિંગ ભાષાઓ (Non-English-based programming languages) |
| સામાન્યરીતે વપરાતી એસેમ્બ્લી ભાષાઓ (Assembly language) | ARM (ARM), MIPS (MIPS), x86 (x86) |
| સામાન્યરીતે વપરાતી ઉંચા સ્તરની ભાષાઓ (High level language) | Ada (Ada), BASIC (BASIC), C (C), C++ (C++), C# (C#), COBOL (COBOL), ફોર્ટન (Fortran), જાવા (Java), લિસ્પ (Lisp), પાસ્કલ (Pascal), ઓબ્જેક્ટ પાસ્કલ (Object Pascal) |
| સામાન્યરીતે વપરાતી સ્ક્રીપ્ટીંગ ભાષા (Scripting language)ઓ | બોર્ને સ્ક્રીપ્ટ (Bourne script), જાવાસ્ક્રીપ્ટ (JavaScript), પાયથન (Python), રૂબી (Ruby), PHP (PHP), પર્લ (Perl) |
[ફેરફાર કરો] વ્યવસાયો અને સંગઠનો
કોમ્પ્યુટરનો ઉપયોગ સમાજ આખામાં ફેલાયો હોવાથી કોમ્પ્યુટર સાવિષ્ટ કારકીર્દીઓની સંખ્યામાં વધારો થયો છે. હાર્ડવેર, સોફ્ટવેર અને ફર્મવેરની થીમ આધારિત જે લોકો ઉદ્યોગમાં કામ કર છે તેવા લોકોના મગજ કેટલીકવખત બિનસંબંધિત રીતે વેટવેર અથવા “મીટવેર” તરીકે જાણીતા છે.
સાથે મળીને કામ કરવા માટે કોમ્પ્યુટરની જરૂરિયાત અને માહિતીની આપલે કરવા માટે સક્ષમતા હાંસલ કરવા માટેની સ્થિતિએ ઔપચારીક અને બિનઔપચારીક રીતે ઘણા સ્ટાન્ડર્ડ ઓર્ગેનાઇઝેશનો, ક્લબો અને સોસાયટીઓને વિસ્તરવાની જરૂરિયાત ઊભી કરી છે.
| સ્ટાન્ડર્ડ્સ ગ્રુપ્સ | ANSI (ANSI), IEC (IEC), IEEE (IEEE), IETF (IETF), ISO (ISO), W3C (W3C) |
| પ્રોફેશનલ સોસાયટીસ | ACM (ACM), ACM સ્પેશ્યલ ઇન્ટરેસ્ટ ગ્રૂપ્સ, IET (IET), IFIP (IFIP) |
| ફ્રી (Free)/ઓપન-સોર્સ (Open source) સોફ્ટવેર ગ્રૂપ્સ | ફ્રી સોફ્ટવેર ફાઉન્ડેશન (Free Software Foundation), મોઝીલા ફાઉન્ડેશન (Mozilla Foundation), અપાચે સોફ્ટવેર ફાઉન્ડેશન (Apache Software Foundation) |
[ફેરફાર કરો] ત્યાં પણ જૂઓ
- કોમ્પ્યુટેબિલિટી થિયરી (Computability theory)
- કોમ્પ્યુટર વિજ્ઞાન (Computer science)
- કોમ્પ્યુટિંગ (Computing)
- કથાઓમાં કોમ્પ્યુટર્સ (Computers in fiction)
- કોમ્પ્યુટર સુરક્ષા (Computer security) અને કોમ્પ્યુટર અસુરક્ષા (Computer insecurity)
- ઇલેક્ટ્રોનિક કચરો (Electronic waste)
- કોમ્પ્યુટર ટર્મ એટિમૉલજિસની યાદી (List of computer term etymologies)
- વિઝ્યુઅલાઇઝેશન (Virtualization)
[ફેરફાર કરો] એક્સટર્નલ લિંક્સ
[ફેરફાર કરો] નોંધ
- ↑ વર્ષ 1946માં ENIA (ENIAC)C એ લગભગ 174 kW નો ઉપયોગ કર્યો હતો. તેની સરખામણીમાં સામાન્ય પર્સનલ કોમ્પ્યુટર લગભગ 400 W નો ઉપયોગ કરે છે જે 400 ગણો ઓછો છે.ઢાંચો:Ref harvard
- ↑ કલૉસસ (Colossus) અને ENIAC (ENIAC) જેવા અગાઉના કોમ્પ્યુટર્સ એક સેકન્ડમાં 5 થી 100 કામની પ્રક્રિયા કરવા સક્ષમ હતા. આધુનિક "કોમોડિટી" માઇક્રોપ્રોસેસર(2007નું) એક સેકન્ડમાં અબજો ઓપરેશન્સ હાથ ધરી શકે છે, અને આ ઓપરેશન્સમાંથી ઘણાં અગાઉના કોમ્પ્યુટર ઓપરેશન્સ કરતા વધુ જટીલ અને ઉપયોગી હોય છે.
- ↑ "Heron of Alexandria". http://www.mlahanas.de/Greeks/HeronAlexandria2.htm. Retrieved on 2008-01-15.
- ↑ ૪.૦ ૪.૧ ઢાંચો:Citation
- ↑ હાવર્ડ આર. ટર્નર (1997), સાયન્સ ઇન મિડિએવલ ઇસ્લામ સ્પષ્ટ પરિચય, p.184, યુનિવર્સિટી ઓફ ટેક્સાસ પ્રેસ (University of Texas Press), ISBN 0292781490
- ↑ ડોનાલ્ડ રટલેજ હીલ (Donald Routledge Hill), મિકેનિકલ એન્જિનિયરીંગ ઇન ધ મિડિયેવલ નિયર ઇસ્ટ, સાઇન્ટીફિક અમેરિકન, મે 1991, pp. 64-9 (cf. (cf.)ડોનાલ્ડ રૂટલેજ હિલ (Donald Routledge Hill), મિકેનિકલ એન્જિન્યીંગ)
- ↑ એનાલિટીકલ એન્જિનની ભેળસેળ બેબેજના ડિફરન્સ એન્જિન (difference engine) સાથે ન થવી જોઇએ, જે પ્રોગ્રામ ન કરી શકાય તેવું યાંત્રિક ગણનયંત્ર હતું.
- ↑ બી. જેક કોપલેન્ડ, ઇડી., કોલોસસ: બ્લેચલી પાર્કના કોડબ્રેક્રિંગ કોમ્પ્યુર્સના રહસ્યો, ઓક્સફોર્ડ યુનિવર્સિટી પ્રેસ, 2006
- ↑ Lavington 1998, p. 37
- ↑ આ પ્રોગ્રામ આજ રીતે PDP-11 (PDP-11) માઇક્રોકોમ્પ્યુટર (minicomputer) માટે પણ લખાયો હતો અને કેટલીક ખાસ વસ્તુઓ બતાવે છે જે કોમ્પ્યુટર કરી શકે.સેમિકોલન્સ પછીની બધીજ ટેક્સ્ટ માનવીય વાંચકોના હીત માટેની સૂચનાઓ (comments) છે.કોમ્પ્યુટરમાં તેનું કોઇ મહત્વ નથી અને તે ઉપેક્ષિત છે.ઢાંચો:Ref harvard
- ↑ કોમ્પ્યુટરની મૂળભૂત મર્યાદિતતાનો ઉકેલ લાવી શકે તેવો પ્રોગ્રામ તૈયાર કરવા ઘણી વાર પ્રયત્ન કરવામાં આવ્યો છે. સોફ્ટવેર જે શીખવાની નકલ અને અપનાવે છે તે કૃત્રિમ બુદ્ધિ (artificial intelligence)નો એક ભાગ છે.
- ↑ પ્રોગ્રામરની બેદરકારીના લીધે જ બગ્સ હોય છે તે સનાત સત્ય નથી. કોમ્પ્યુટર હાર્ડવેર કદાચ નિષ્ફળ જઇ શકે છે અથવા તો ફંડામેન્ટલ મુશ્કેલી હોઇ શકે તેમ છે, જે ચોક્કસ પરિસ્થિતિઓમાં અણધાર્યા પરિણામો ઉત્પન્ન કરે છેઉદા. તરીકે 1990ના પ્રારંભમાં ચોક્કસ ફ્લોટીંગ પોઇન્ટ (floating point) ડિવીઝન ઓપરેશન માટે અયોગ્ય પરિણામો ઉત્પન્ન કરવા માટે પેન્ટીયમ એફડીટીવી બગે (Pentium FDIV bug) ઇન્ટેલ (Intel) માઇક્રોપ્રોસેસર (microprocessor) પર અસર કરી હતી. માઇક્રોપ્રોસેસરમાં ડિઝાઇનમાં ખરાબીના કારણે આમ થયું હતું અને અસરગ્રસ્ત ડિવાઇસના થોડા રિકોલમાં પરિણમી હતી.
- ↑ ત્યાર પછીના કેટલાક કોમ્પ્યુટરોમાં મશિન કોડમાં સીધી રીતે જ પ્રોગ્રામ કરવામાં આવ્યો હતો. કેટલાક મીનીકોમ્પ્યુટર (minicomputer) જેમ કે ડીઇસી (DEC) પીડીપી-8 (PDP-8)ને સ્વીચની પેનલો પરથી સીધી રીતે જ પ્રોગ્રામ કરી શકાયા હોત. જોકે, આ પદ્ધતિ સામાન્ય રીતે બૂટીંગ (booting) પ્રોસેસના ભાગરૂપે જ વાપરવામાં આવે છે. અત્યંત આધુનિક કોમ્પ્યુટરો કેટલીક નોન વોલેટાઇલ મેમરી (non-volatile memory)માંથી બૂટ પ્રોગ્રામ વાંચીને આપોઆપ જ સમગ્ર બૂટ કરે છે.
- ↑ જોકે કેટલીકવાર વિવિધ કોમ્પ્યુટર વચ્ચે મશિન ભાષાની સ્પર્ધાત્મકતાનું સ્વરૂપ હોય છે. X86-64 (x86-64) કોમ્પેટીબલ માઇક્રોપ્રોસેસર જેમ કે એએમડી (AMD) એથલોન 64 (Athlon 64), ઇન્ટેલ કોર 2 (Intel Core 2) માઇક્રોપ્રોસેસર ચલાવે છે તે સમાન પ્રકારના પ્રોગ્રામ ચલાવી શકે છે, તેમજ ઇન્ટેલ પેન્ટિયમ (Pentium) અને ઇન્ટેલ 80486 (Intel 80486) જેવા અગાઉના માઇક્રોપ્રોસેસર માટે તૈયાર કરવામાં આવેલા પ્રોગ્રામ્સ પણ ચલાવી શકે છે. આ અત્યંત પ્રારંભિક વ્યાપારી કોમ્પ્યુટર્સથી અલગ પડે છે, જે ઘણી વાર એક જ વાર બનાવવામાં આવ્યા હતા અને અન્ય કોમ્પ્યુટરની તુલનામાં બિનસ્પર્ધાત્મક હતા.
- ↑ પ્રોગ્રામીંગ ભાષાંતર કરતા ઉચ્ચ કક્ષાની ભાષાઓ અમુકવાર ઇન્ટરપ્રિટેડ (interpreted) હોય છે. ઇન્ટરપ્રિટર (interpreter) તરીકે જાણીતા અન્ય પ્રોગ્રામ દ્વારા મશિન કોડમાં ઇન્ટપ્રિટેડ ભાષાઓ ભાષાંતર થતી હોય છે.
- ↑ સુચનાઓના દૂભાષીકરણમાં કંટ્રોલ યુનિટના નિયમો ભૂતકાળમાં અલગ પડ્યા હતા અત્યંત આધુનિક કોમ્પ્યુટરોમાં સુચનાઓના દૂભાષીકરણ માટે જ કંટ્રોલ યુનિટ જવાબદાર હોવાથી આ બાબત હંમેશા આગવી રહેશે નહી. ઘણા કોમ્પ્યુટરોમાં કેટલીક સુચનાઓનો સમાવેશ થાય છે, જે થોડા ઘણા અંશે કંટ્રોલ સિસ્ટમ દ્વારા અને થોડા ઘણા અંશે અન્ય ઘટક દ્વારા દૂભાષીકરણ થાય છે. ખાસ કરીને ખાસ પ્રકારના કોમ્પ્યુટીંગ હાર્ડવેર કે જે થોડા અંશે સ્વ સમાવિષ્ટ હોય છે તેમાં જ લાગુ પડે છે. ઉદા. તરીકે ઇડીવીએસી (EDVAC), જેમાં કંટ્રોલ યુનિટ કે જેણે ચાર સુચનાઓનું દૂભાષીકર કર્યું હતું તેનો ઉપયોગ વડે સૌપ્રથમ આધુનિક પ્રોગ્રામ કોમ્પ્યુટર ડિઝાઇન કરવામાં આવશે.તમામ એરિથમેટિક (અંકગણિત)સંબધિત સુચનાઓ તેના એરિથમેટિક યુનિટ સમક્ષ પાસ કરવામાં આવી હતી અને વધુમાં તેને ત્યાં ડિકોડેડ કરવામાં આવી હતી.
- ↑ એડવાન્સડ કોમ્પ્યુટમાં કંટ્રોલ સિસ્ટમ કામગીરીમાં સુધારો લાવવા માટે કેટલીક સુચનાઓના ક્રમમાં ફેરફાર કરી શકે છે.
- ↑ ફ્લેશ મેમરી પણ ખતમ થતા પહેલા મર્યાદિત ગણા સુધી પુનઃ લખી શકાય છે, જે તેને હેવી રેન્ડમ એક્સેસ યુસેઝ માટે ઓછું ઉપયોગી બનાવે છે. ઢાંચો:Ref harvard
- ↑ જોકે, સસ્તી કોમોડિટી હાર્ડવેરના અસંખ્ય ટુકાડાઓમાંથી સુપરકોમ્પ્યુટરની રચના કરવી તે અત્યંત સર્વસામાન્ય છે; સામાન્ય રીતે વ્યક્તિગત કોમ્પ્યુટરો નેટવર્ક દ્વારા જોડાયેલા હોય છે. ભારે લોકપ્રિય કોમ્પ્યુટર ક્લસ્ટર (computer cluster) ઘણી વખત સર્વસામાન્ય ડિઝાઇનો કરતા વધુ નીચી કિંમતે સુપરકોમ્પ્યુટરની કામગીરી પૂરી પાડી શકે છે. ભારે શક્તિશાળી સુપરકોમ્પ્યુટર્સ માટે હજુ પણ કસ્ટમ આર્કિટેક્ચરનો ઉપયોગ થતો હોવાથી તાજેતરના વર્ષોમાં ક્લસ્ટર કોમ્પ્યુટર્સનો ઝડપી ફેલાવો થયો છે.ઢાંચો:Ref harvard
- ↑ અત્યંત મોટા 64 બીટ ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચર (instruction set architecture) એ અગાઉની ડિઝાઇનું વિસ્તરણ છે. આલ્ફા સિવાયના આ ટેબલમાં આપેલ તમામ પ્રકારના આર્કિટેક્ચર તેમનું 64 બીટ પુનઃરજૂઆત કરવામાં આવી તે પહેલા 32 બીટ ફોર્મ્સમાં સમાવિષ્ટ હતા.
[ફેરફાર કરો] સંદર્ભો
- ઢાંચો:Note label ઢાંચો:Cite paper
- ઢાંચો:Note label Phillips, Tony (2000). "The Antikythera Mechanism I". American Mathematical Society. http://www.math.sunysb.edu/~tony/whatsnew/column/antikytheraI-0400/kyth1.html. Retrieved on 2006-04-05.
- ઢાંચો:Note label ઢાંચો:Cite paper
- ઢાંચો:Note label Digital Equipment Corporation (1972). PDP-11/40 Processor Handbook (PDF), Maynard, MA: Digital Equipment Corporation.
- ઢાંચો:Note label ઢાંચો:Cite paper
- ઢાંચો:Note label Meuer, Hans; Strohmaier, Erich; Simon, Horst; Dongarra, Jack (2006-11-13). "Architectures Share Over Time". TOP500. http://www.top500.org/lists/2006/11/overtime/Architectures. Retrieved on 2006-11-27.
- ઢાંચો:Citation
- Stokes, Jon (2007). Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture. San Francisco: No Starch Press. ISBN 978-1-59327-104-6.
