Theory
Lab Manager નો વિકાસ
કલ્પના કરો કે દર વખતે જ્યારે તમે આપણા વહેંચેલા college server, LabOne, પર એક C program ચલાવવા માંગો, તમારે તમારો code physical punch cards પર print કરવો પડતો, એમને બીજા students ના assignments સાથે bundle કરવો પડતો, અને એમને એક operator ને સોંપવો પડતો જે એ બધાને આખી રાત એક એકલા batch માં ચલાવતો. તમને તમારા compile errors બીજી સવારે મળતા! આજે, તમે એક terminal ખોલો છો, run click કરો છો, અને તરત results જુઓ છો જ્યારે એક rocket launch system microsecond deadlines માંગે છે. એક જ કદ બધા માટે કેમ fit થતું નથી?
Theory
Factory Assembly Lines થી Emergency Wards સુધી
અલગ OS પ્રકારોને અલગ સંગઠનાત્મક systems ની જેમ વિચારો. એક batch OS એક કપડાં factory ની જેમ છે જે shirts ને setup time બચાવવા એકસરખા sizes ના વિશાળ bundles માં process કરે છે. એક multi-tasking OS એક વ્યસ્ત office worker ની જેમ છે જે એક email type કરતાં સંગીત સાંભળે અને text messages નો જવાબ આપે છે. એક real-time OS એક hospital emergency room ની જેમ છે જ્યાં એક એકલા second ના વિલંબથી એક પ્રતિભાવનો અર્થ એક સંપૂર્ણ system failure છે. દરેક એક ખાસ ટકી રહેવાની બાધા માટે બનાવાયું છે.
Theory
Operating System Family Tree
અલગ computational જરૂરિયાતો પૂરી કરવા, computer scientists એ ખાસ architectures વિકસાવ્યા. એક Batch Operating System CPU ને વ્યસ્ત રાખવા user વાતચીત વગર મળતા આવતા jobs એક સાથે group કરે છે. એક Multi-Tasking Operating System સક્રિય users માટે અનેક jobs એક સાથે execute કરવા high speed CPU time slicing વાપરે છે. એક Distributed Operating System એક network પર સ્વાયત્ત computers જોડે છે જેથી એક એકલી machine ની જેમ દેખાય. એક Real-Time Operating System સખ્ત processing deadlines ની guarantee આપે છે, અને એક Mobile Operating System power efficiency અને touch interfaces ને પ્રાધાન્ય આપે છે.
At a glance
design બાધાઓ અને target use cases થી વર્ગીકૃત operating systems નો વૈવિધ્યસભર પરિવાર.
| OS પ્રકાર | મૂળ ઉદ્દેશ્ય | પ્રાથમિક ઉદાહરણ | મુખ્ય Performance Metric |
|---|---|---|---|
| Batch OS | static tasks group કરીને CPU usage મહત્તમ કરવો | IBM OS/360 | Throughput |
| Multi-Tasking OS | interactive, ઝડપી multi app execution આપવું | LabOne પર Linux | Response Time |
| Distributed OS | સ્વતંત્ર nodes માં computing load વહેંચવો | MOSIX કે LOCUS | Resource Transparency |
| Real-Time OS | સંપૂર્ણ, અનુમાનિત execution time ની guarantee આપવી | VxWorks કે QNX | Deterministic Latency |
| Mobile OS | power, memory, અને touch controls optimize કરવા | Android કે iOS | Battery અને Fluidity |
Think first
સાચું OS Architecture પસંદ કરવું
એક university exam scenario નું વિશ્લેષણ કરીએ: 'college ને ત્રણ systems deploy કરવા છે: માસિક stipends process કરતું એક payroll system, LabOne માટે એક student lab terminal setup, અને college bus માટે એક automated braking system.' તમે દરેક એક માટે સાચું OS કેવી રીતે પસંદ કરો છો? tap કરતાં પહેલાં જરૂરિયાતોનું મનમાં વિશ્લેષણ કરો.
Show the answer
Step 1: payroll system મહિનામાં એક વાર વિશાળ, non-interactive workloads ચલાવે છે. આ એક Batch OS દૃષ્ટિકોણ સાથે fit થાય છે, જ્યાં બધી student timesheets group કરાય અને efficiency મહત્તમ કરવા એક સાથે ચલાવાય છે.
Step 2: student lab terminal (LabOne) ને 30 students ની સેવા કરવી પડશે જે એક સાથે text editors અને compilers સાથે વાતચીત કરી રહ્યા છે. આ CPU time slots સરળતાથી વહેંચવા એક Multi-Tasking OS માંગે છે.
Step 3: campus bus braking system ને કોઈ વિલંબ વગર તાત્કાલિક, split second હસ્તક્ષેપ જોઈએ. એક મોડી ગણતરીનો અર્થ એક અકસ્માત છે. એને બિલકુલ એક Hard Real-Time OS જોઈએ.
Quiz
જો એક university 50 જૂના dual-core desktop computers ને એક local area network પર big data research માટે એક એકલા, શક્તિશાળી computational cluster તરીકે સાથે મળીને કામ કરવા જોડે, કયો OS architecture પ્રકાર વપરાઈ રહ્યો છે?
- Batch Operating System
- Distributed Operating System
- Real-Time Operating System
- Mobile Operating System
Show the answer
Distributed Operating System
એક Distributed Operating System એક network થી જોડાયેલા અનેક સ્વતંત્ર physical computers ને સંકલિત કરે છે, એમને user ને એક એકલા એકીકૃત system તરીકે રજૂ કરતાં જેથી વિશાળ workloads વહેંચે.
Watch out
Speed નો ફાંદો: Multi-Tasking વિરુદ્ધ Real-Time
students ઘણી વાર લખે છે કે એક Real-Time OS બસ એક 'ખૂબ ઝડપી multi-tasking OS' છે. આ એક classic exam ભૂલ છે! LabOne પર Linux જેવો એક multi-tasking OS high throughput અને સરેરાશ નિષ્પક્ષતા માટે બન્યો છે: એ બધી apps ને સરળ રાખવાનો પ્રયાસ કરે છે પણ એક ભારે load માં થોડી વાર lag કરી શકે. એક Real-Time OS જરૂરી નથી કે ઝડપી હોય, પણ એ deterministic છે. એ guarantee આપે છે કે એક મહત્ત્વનું task એક સખ્ત, અનુમાનિત window ની અંદર પૂરું થશે, load ગમે તેટલો ભારે કેમ ન હોય.
Quiz
શરૂઆતના mainframe computers એ users ને આજે LabOne પર જેમ interactively code type કરવા દેવાને બદલે Batch Operating Systems કેમ વાપર્યા?
- શરૂઆતના monitors લાંબા user interaction માટે બહુ ચમકીલા હતા.
- Computer hardware ખૂબ મોંઘું હતું, અને interactive typing CPU ને નકામું બેઠું અને વેડફાયેલું છોડતું.
- Batch systems network malware અને computer viruses સામે સ્વાભાવિક રીતે સુરક્ષિત હતા.
- Punch cards માત્ર midnight schedules દરમિયાન process કરી શકાતા.
Show the answer
Computer hardware ખૂબ મોંઘું હતું, અને interactive typing CPU ને નકામું બેઠું અને વેડફાયેલું છોડતું.
computing ના શરૂઆતના દિવસોમાં, hardware time માનવ શ્રમથી નાટકીય રીતે વધુ મોંઘું હતું. Interactive systems એક ધીમા માણસના type કરવાની રાહ જોતાં કિંમતી CPU cycles વેડફતા. Batch systems એ pre-grouped tasks સતત ખવડાવીને માનવ વિલંબોને ખતમ કર્યા.
Theory
Semesters ને જોડવા: આધુનિક Stack
તમે આ વર્ગીકરણને તમારા આખા curriculum માં કામ કરતું જોશો. જે Linux OS આપણે Unit 4 માં LabOne પર install કરીએ છીએ એ એક ઉન્નત multi-tasking system છે. પણ, જેમ તમે તમારા ત્રીજા semester (BCA305-02) માં જાણશો, Android stack એક સંશોધિત Linux kernel વાપરે છે જે ખાસ કરીને mobile OS ગુણો સાથે તૈયાર છે: આક્રમક RAM management, wake locks, અને battery બચાવતા protocols જેથી તમારા ખિસ્સામાં perfectly fit થાય.
Summary
Key takeaways
- Batch operating systems મળતા આવતા jobs એક સાથે group કરે છે જેથી એમને interactive માનવ હસ્તક્ષેપ વગર ક્રમિક રીતે process કરે.
- Multi-tasking systems ઝડપી millisecond time-slicing વાપરતાં CPU ને અનેક users કે programs વચ્ચે વહેંચે છે.
- Distributed systems ભારે processing loads સરળતાથી વહેંચવા એક network પર અનેક સ્વાયત્ત machines જોડે છે.
- Real-time systems deterministic વર્તન પર focus કરે છે જ્યાં એક સખ્ત time deadline ચૂકવાનો અર્થ સંપૂર્ણ system failure છે.
- Mobile systems મર્યાદિત power, ચુસ્ત memory સીમાઓ, અને wireless communication interface ધોરણો માટે optimized છે.
- Memory hook: Batch એમને group કરે છે, multi-tasking એમને વહેંચે છે, distributed એમને જોડે છે, અને real-time એમને clock કરે છે!