Theory
Music Search का संघर्ष
कल्पना कीजिए आप LabOne में बैठे अपने Python lab की एक 2 घंटे की lecture recording के अंदर एक ख़ास section खोज रहे हैं। अगर video player आपको सिर्फ़ timeline पर कहीं click किए बिना second-दर-second fast forward या rewind करने देता, आपको वह एक ख़ास error message खोजने में कितना समय लगता? अब इसकी तुलना एक अकेले mouse click से सीधे 45वें minute पर jump करने से कीजिए। operating systems एक file में से गुज़रने की दोनों शैलियों को support क्यों करते हैं?
Theory
Cassette Tape बनाम Jukebox
sequential access को एक पुराने cassette tape की तरह सोचिए। अगर आप 4था song सुनना चाहते हैं, आपको पहले songs 1, 2, और 3 से physically wind करना होगा। कोई shortcut नहीं है। Direct access एक digital jukebox या एक CD player की तरह है। हर song का एक बिल्कुल address या index number होता है। आप keypad पर 4 type कर सकते हैं, और laser head तुरंत 4थे track की शुरुआत पर jump करता है, बाक़ी सब पूरी तरह छोड़ते हुए।
Theory
Sequential और Direct Access Methods
एक operating system अलग file access methods देता है इस पर निर्भर करते हुए कि जानकारी को कैसे retrieve करने की ज़रूरत है। sequential access में, जानकारी क्रम में process होती है, एक record दूसरे के बाद। एक read या write operation अपने-आप एक file pointer आगे बढ़ाता है। direct access (या random access) में, एक file को blocks या records के एक numbered sequence के रूप में देखा जाता है। program अपने बिल्कुल block address को निर्दिष्ट करके किसी भी block पर तुरंत read या write कर सकता है, इससे पहले किसी भी block को पढ़े बिना।
At a glance
sequential और direct file access methods के बीच मुख्य संरचनात्मक और operational अंतर।
| Feature | Sequential Access | Direct Access |
|---|---|---|
| Pointer Movement | एक fixed linear क्रम में एक समय में एक record move करता है | एक address pointer के ज़रिए किसी भी block number पर तुरंत jump करता है |
| Hardware Analogy | Magnetic tape systems या continuous stream logs | Hard disk drives या आधुनिक solid state storage units |
| Performance Lookup | file में दूर स्थित ख़ास records खोजने के लिए धीमा | बेहद तेज़, physical location के बावजूद constant time |
| LabOne Use Case | एक पूरी C source code file ऊपर से नीचे compile करना | roll number से एक student attendance database table query करना |
Think first
Pointer Operations को ट्रेस करना
एक exam सवाल पूछता है: 'LabOne पर एक database file में 100 student records हैं। अगर system pointer अभी Record 5 पर है और आपको Record 50 पढ़ना है, sequential और direct access दोनों के तहत ज़रूरी record reads calculate कीजिए।' समाधान प्रकट करने से पहले चरण मन में हल कीजिए।
Show the answer
Sequential Access के लिए:
1. OS jump नहीं कर सकता। इसे Record 5 पढ़ना होगा, फिर 6 पर move करना, फिर 7, और आगे।
2. 5 से 50 जाने के लिए, इसे क्रमिक रूप से 45 अलग records पढ़कर गुज़रना होगा।
Direct Access के लिए:
1. program block number 50 निर्दिष्ट करता एक seek command जारी करता है।
2. file system block 50 के लिए physical disk address सीधे compute करता है।
3. read head तुरंत block 50 पर move करता है, बिल्कुल 1 record read operation की ज़रूरत रखते हुए।
Quiz
कौन सा file operation direct access files में भारी इस्तेमाल होता है पर एक विशुद्ध sequential file access mode में पूरी तरह अनुपस्थित या अर्थहीन है?
- Open
- Read
- Seek
- Close
Show the answer
Seek
file pointer को एक मनमाने block number पर फिर से position करता एक seek operation direct access के लिए मूल ज़रूरत है। एक सख़्त sequential file में, आप बीच का data पढ़े बिना आगे skip या head reposition नहीं कर सकते, seek operations को अवैध बनाते हुए।
Watch out
Storage Media की उलझन
semester exams में एक आम ग़लती यह लिखना है कि sequential files सिर्फ़ magnetic tapes पर store हो सकती हैं। यह ग़लत है। जबकि magnetic tapes सिर्फ़ sequential access कर सकते हैं, hard drives और solid state drives sequential और direct access दोनों files store कर सकते हैं। उदाहरण के लिए, LabOne पर आपकी log files एक तेज़ hard drive पर sequentially store होती हैं क्योंकि आप सिर्फ़ उनके अंत में लिखते हैं, इसलिए नहीं कि disk आपको ऐसा करने के लिए मजबूर करती है।
Think first
सही Method चुनना
उस text editor program के बारे में सोचिए जो आप LabOne में अपने assignments लिखने के लिए इस्तेमाल करते हैं। जब आप एक file खोलते हैं, यह line 1 से अंत तक सब कुछ आपकी screen पर load करता है। text editor internally file पढ़ने के लिए कौन सी access method इस्तेमाल कर रहा है? tap करने से पहले सोचिए।
Show the answer
text editor sequential access इस्तेमाल करता है। एक file खोलते या save करते समय, application पूरे document को बिल्कुल पहले character से आख़िरी byte तक निरंतर read या write करता है। पूरी file load करते समय storage के बीच में एक बेतरतीब block address पर jump करने की ज़रूरत नहीं है।
Theory
Database Systems और भविष्य के Semesters
आप अपने Semester 3 Database Management Systems course में direct access लगातार इस्तेमाल करेंगे। जब आप एक ख़ास ID वाले student को खोजता एक SQL query execute करते हैं, database उस बिल्कुल record को milliseconds में pinpoint करने के लिए direct access index maps इस्तेमाल करता है। अगर यह इसके बजाय sequential access इस्तेमाल करता, हर एक query पूरे LabOne server को धीमा करके रेंगने पर ला देती जैसे यह लाखों असंबंधित rows scan करता।
Summary
Key takeaways
- Sequential access file records को एक सख़्त linear क्रम में process करता है, pointer अपने-आप आगे बढ़ाते हुए।
- Direct access programs को एक address या index इस्तेमाल करते हुए किसी भी numbered block या record पर तुरंत jump करने देता है।
- Sequential access source code पढ़ने या continuous application logs लिखने के लिए आदर्श है।
- Direct access लाखों entries के बीच तेज़ lookups माँगती database applications के लिए ज़रूरी है।
- hard drives जैसा hardware दोनों access patterns support कर सकता है, जबकि magnetic tapes सख़्ती से sequential हैं।
- Memory hook: Sequential एक line में चलना है, direct point पर jump है!