3 पॉइंट द्वारा GN⁺ 2024-12-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें

वर्चुअल मशीन क्या है?

  • वर्चुअल मशीन (VM) एक ऐसा प्रोग्राम है जो कंप्यूटर की तरह काम करता है। यह CPU और कुछ हार्डवेयर कॉम्पोनेंट्स को simulate करता है, ताकि arithmetic operations कर सके, memory में पढ़-लिख सके, और I/O devices के साथ interact कर सके।
  • VM किसी खास कंप्यूटर के व्यवहार को दोहराने या software development को आसान बनाने के लिए बनाया जाता है।
  • Java Virtual Machine (JVM) इसका एक सफल उदाहरण है, जो Java, Kotlin, Clojure प्रोग्राम्स को अलग-अलग डिवाइसेज़ पर चलाने में सक्षम बनाता है।

LC-3 आर्किटेक्चर

  • LC-3 एक शैक्षिक computer architecture है, जो आधुनिक CPU में इस्तेमाल होने वाले प्रमुख concepts को दिखाता है।
  • LC-3 में 65,536 memory locations होती हैं, और हर location में 16-bit value store होती है।
  • इसमें 10 registers होते हैं, जिनमें 8 general-purpose registers, 1 program counter (PC), और 1 condition flag (COND) register होता है।

निर्देश सेट

  • निर्देश वे commands हैं जो CPU को बुनियादी काम करने के लिए निर्देशित करते हैं।
  • LC-3 में 16 opcodes होते हैं, और हर instruction 16-bit लंबी होती है।
  • एक instruction opcode और उस काम के लिए जरूरी parameters से मिलकर बनती है।

condition flag

  • R_COND register हाल की calculation के sign को दिखाने वाले condition flags को store करता है।
  • LC-3 calculation result के sign को दिखाने के लिए 3 condition flags का उपयोग करता है।

प्रोग्राम निष्पादन

  • प्रोग्राम memory से instructions load करता है, PC register को बढ़ाता है, opcode को जांचता है, और instruction को execute करता है।
  • instructions PC को बदलकर execution flow को control कर सकती हैं।

निर्देश कार्यान्वयन

  • ADD instruction दो numbers को जोड़ता है और result को register में store करता है।
  • LDI instruction memory से value load करके register में store करता है।
  • हर instruction को specification के अनुसार implement करना होता है, और flags को update करना होता है।

trap routines

  • LC-3 keyboard input, string output जैसी सामान्य operations के लिए trap routines प्रदान करता है।
  • हर trap routine को एक trap code से पहचाना जाता है, और उसे TRAP instruction से execute किया जाता है।
  • trap routines C में लिखी जाती हैं, और OS की I/O routines का उपयोग करके VM की performance को बेहतर बनाती हैं।

1 टिप्पणियां

 
GN⁺ 2024-12-28
Hacker News राय
  • एक उपयोगकर्ता ने community college में कंप्यूटर साइंस की शुरुआती कक्षा लेते हुए एक सरल CPU instruction set डिज़ाइन किया, VM और assembler लिखा, और assembly प्रोग्राम चलाने का अनुभव प्राप्त किया। इस प्रक्रिया ने उसे कंप्यूटर के बारे में बहुत कुछ समझने में मदद की

    • उसे लगा कि FPGA के लिए वास्तविक CPU डिज़ाइन से लेकर एक सरल OS और प्रोग्राम लिखने तक, कंप्यूटिंग के हर चरण को इस तरह सीखा जा सकता है
    • अगर आधुनिक कंप्यूटिंग जैसी performance और security की ज़रूरत न हो, तो यह प्रक्रिया हैरान करने वाली हद तक सरल है
  • Ben Eater की breadboard CPU series देखने के बाद, किसी ने अपनी खुद की CPU डिज़ाइन और emulate करने की इच्छा जताई

    • उसने समय निकालकर इसे डिज़ाइन करने की उम्मीद व्यक्त की
  • सुझाई गई किताबों की सूची:

    • "Virtual Machines: Versatile Platforms for Systems and Processes" by Smith and Nair - यह विषय का एक व्यापक overview लगती है
    • "Virtual Machines" by Iain Craig - यह language और VM पर एक hands-on किताब लगती है
    • "Virtual Machine Design and Implementation in C/C++" by Bill Blunden - यह implementation पर केंद्रित एक practical किताब लगती है
    • कहा गया कि अगर किसी ने ये किताबें पढ़ी हों, तो उनकी राय जोड़ना मददगार होगा
  • यह राय भी थी कि Brookshear Machine और Little Computer जैसी शैक्षिक architecture वास्तविक प्रणालियों से अलग हैं और छात्रों को विकृत समझ दे सकती हैं

    • सुझाव दिया गया कि जो लोग कंप्यूटर के काम करने के तरीके को सीखना चाहते हैं, उनके लिए operating systems का कोर्स करना बेहतर होगा
    • अगर कोई छोटा tutorial चाहता है, तो "Writing my own bootloader" की सिफारिश की गई
    • यह नहीं कहा जा रहा कि "Write your own VM" tutorial खराब है, बल्कि यह राय है कि दूसरे विषय अधिक उपयोगी हो सकते हैं
  • यह भी राय थी कि आजकल "Virtual Machine" शब्द आम तौर पर उस environment के लिए इस्तेमाल होता है जो hardware virtualization features का उपयोग करता है

    • emulator और VM के बीच का अंतर समझाते हुए कहा गया कि पहले इस शब्द में कुछ अस्पष्टता थी, लेकिन अब यह अधिक स्पष्ट हो चुका है