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 माँगता है। एक ही आकार सबके लिए क्यों फिट नहीं होता?
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 दृष्टिकोण से फिट होता है, जहाँ सारी 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 फिट हो।
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 व्यवहार पर फ़ोकस करते हैं जहाँ एक सख़्त time deadline चूकने का मतलब पूर्ण system failure है।
- Mobile systems सीमित power, तंग memory सीमाओं, और wireless communication interface मानकों के लिए optimized हैं।
- Memory hook: Batch उन्हें group करता है, multi-tasking उन्हें साझा करता है, distributed उन्हें जोड़ता है, और real-time उन्हें clock करता है!