Skip to content

Commit c030b3a

Browse files
committed
Content Reformatting
1 parent 366b1b8 commit c030b3a

File tree

1 file changed

+79
-24
lines changed

1 file changed

+79
-24
lines changed

computer-architecture-&-operating-system.md

Lines changed: 79 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -70,46 +70,97 @@
7070
## 2. Punch Card কি এবং এটি দিয়ে কিভাবে প্রোগ্রাম লিখতো?
7171

7272
**পাঞ্চ কার্ডঃ**
73-
পাঞ্চ কার্ড ছিল মোটা কাগজের কার্ড, সাধারণত ৭.৩৮ ইঞ্চি লম্বা আর ৩.২৫ ইঞ্চি চওড়া। এই কার্ডে ৮০টা কলাম থাকতো, আর প্রতি কলামে ১২টা সারি।
73+
পাঞ্চ কার্ড ছিল মোটা কাগজের কার্ড, সাধারণত ৭.৩৮ ইঞ্চি লম্বা আর ৩.২৫ ইঞ্চি চওড়া। এই কার্ডে ৮০টা কলাম থাকতো, আর প্রতি কলামে ১২টা সারি। প্রতিটা কলামে ছোট ছোট গর্ত পাঞ্চ করে নির্দিষ্ট অক্ষর বা নির্দেশনা লেখা হতো। এই গর্তগুলোই কম্পিউটার পড়তো। ধরেন, আপনি একটা প্রোগ্রাম লিখতে চান যেটা দুইটা সংখ্যা যোগ করবে। তাহলে এই নির্দেশনাগুলোকে প্রথমে একটা কোডিং ভাষায় (যেমন ফরট্রান বা কোবল) লিখতে হতো।
74+
75+
<p align="center"><img alt="punch card example" src="https://github.com/dynamiclance/golang-interview-questions-and-answers-bangla/blob/main/img/punch-card-example.png"></p>
7476

7577
<p align="center">Picture Credit: Chatgpt</p>
7678

77-
**কোড লেখার প্রক্রিয়াটা ছিল এমন:**
79+
**কোড লেখার প্রক্রিয়াটা ছিল এমন:**
80+
<p align="center"><img alt="punch card programming process" src="https://github.com/dynamiclance/golang-interview-questions-and-answers-bangla/blob/main/img/punch-card-programming-process.png"></p>
81+
7882
<p align="center">Picture Credit: Cloude ai</p>
7983

80-
**১. কোড হাতে লেখা:**
81-
**২. পাঞ্চিং মেশিনে টাইপ:**
82-
**৩. কার্ডের স্ট্যাক তৈরি:**
83-
**৪. কম্পিউটারে দেওয়া:**
84+
**১. কোড হাতে লেখা:** প্রোগ্রামার প্রথমে কাগজে হাতে কোড লিখতো। ধরেন, ফরট্রানে একটা লাইন: `Z = X + Y`। এটা একটা নির্দেশনা যে X আর Y যোগ করে Z তে রাখতে হবে।
85+
86+
**২. পাঞ্চিং মেশিনে টাইপ:** এরপর একটা পাঞ্চিং মেশিনে (যেটা দেখতে অনেকটা টাইপরাইটারের মতো) বসে কোডের প্রতিটা অক্ষর বা নির্দেশনা টাইপ করা হতো। প্রতিটা অক্ষরের জন্য কার্ডে নির্দিষ্ট জায়গায় গর্ত হতো। যেমন, 'X' লেখার জন্য একটা নির্দিষ্ট প্যাটার্নে গর্ত করা হতো, আর '+' এর জন্য আরেকটা প্যাটার্ন।
87+
88+
**৩. কার্ডের স্ট্যাক তৈরি:** একটা প্রোগ্রামে অনেক লাইন কোড থাকতে পারে, তাই অনেকগুলো কার্ড লাগতো। প্রতিটা কার্ডে একটা বা কয়েকটা নির্দেশনা থাকতো। এই কার্ডগুলোকে ঠিকঠাক সিরিয়ালে সাজিয়ে একটা স্ট্যাক বানানো হতো।
89+
90+
**৪. কম্পিউটারে দেওয়া:** এই কার্ডের স্ট্যাকটা কম্পিউটারের কার্ড রিডারে দেওয়া হতো। রিডারটা গর্তগুলো পড়ে বুঝতো কী নির্দেশনা দেওয়া হচ্ছে। গর্তের প্যাটার্ন থেকে কম্পিউটার বাইনারি কোডে রূপান্তর করতো, আর সেই কোড চালিয়ে প্রোগ্রাম রান করতো।
91+
92+
মজার ব্যাপার হলো, এই পাঞ্চ কার্ডে ভুল হলে পুরো কার্ডটা ফেলে নতুন করে লিখতে হতো। একটা কার্ড ভুল জায়গায় চলে গেলে বা ফেলে দিলে পুরো প্রোগ্রাম গোলমাল হয়ে যেতো! 😅 তাই প্রোগ্রামাররা খুব সাবধানে কার্ডগুলো সাজাতো, এমনকি কার্ডে নম্বর লিখে রাখতো যাতে সিরিয়াল ঠিক থাকে।
93+
94+
তো, এভাবেই পাঞ্চ কার্ড দিয়ে প্রোগ্রাম লেখা হতো। এটা ছিল ধীর, কষ্টের কাজ, কিন্তু তখনকার দিনে এটাই ছিল কম্পিউটার প্রোগ্রামিংয়ের একমাত্র উপায়। এখন আমরা কিবোর্ডে টাইপ করে সেকেন্ডের মধ্যে কোড লিখে ফেলি, কিন্তু তখনকার প্রোগ্রামারদের ধৈর্য আর নিষ্ঠার কাছে স্যালুট দিতে হয়, তাই না? 😊
8495

85-
মজার ব্যাপার হলো, এই পাঞ্চ কার্ডে ভুল হলে পুরো কার্ডটা ফেলে নতুন করে লিখতে হতো।
8696

8797
## 3. Punch Card থেকে ডাটা কিভাবে Ram এ উঠতো?
8898

99+
অ্যানালিটিক্যাল ইঞ্জিনের যুগে RAM বলে আলাদা কোনো জিনিস ছিল না, কিন্তু "স্টোর" নামে একটা মেমরি সেকশন ছিল যেটা আজকের RAM-এর মতোই কাজ করত! পুরো প্রক্রিয়াটা এমন ছিল:
100+
101+
<p align="center"><img alt="how data transfer from punch card to ram" src="https://github.com/dynamiclance/golang-interview-questions-and-answers-bangla/blob/main/img/how-data-tranfer-from-punch-card-to-ram"></p>
102+
89103
<p align="center">Picture Credit: Chatgpt</p>
90104

91-
অ্যানালিটিক্যাল ইঞ্জিনের যুগে RAM ছিল না, ছিল “স্টোর” যেটা RAM-এর মতোই কাজ করত।
105+
**১. পাঞ্চ কার্ড পড়ার যন্ত্র (কার্ড রিডার):**
106+
- কার্ডটাকে এই যন্ত্রের মধ্যে ঢুকানো হতো যেখানে ছিদ্রের অবস্থান অনুযায়ী মেটাল পিন বা আলো তৈরি হত।
107+
- যেমন: কার্ডের ৩ নম্বর পজিশনে ছিদ্র/আলো থাকলে সেটা বাইনারি ১ আর না থাকলে ০ হিসাবে পড়া হতো।
108+
109+
**২. ডাটা ট্রান্সফার:**
110+
- কার্ড রিডার থেকে ডাটা যেত "কন্ট্রোল ইউনিট"-এ (যেটা আজকের CPU-র মতো কাজ করত)।
111+
- কন্ট্রোল ইউনিট ঠিক করত ডাটাটা কোথায় জমা হবে—স্টোরের (মেমরি) কোন লোকেশনে।
112+
- উদাহরণ: ৫ + ৩ প্রোগ্রামে ৫ কে স্টোরের ০ নম্বর সেল-এ রাখা হতো, ৩ কে ১ নম্বর সেল-এ।
92113

93-
**১. পাঞ্চ কার্ড পড়ার যন্ত্র (কার্ড রিডার):**
94-
**২. ডাটা ট্রান্সফার:**
95-
**৩. মেমরিতে জমা হওয়া:**
114+
**৩. মেমরিতে জমা হওয়া:**
115+
- অ্যানালিটিক্যাল ইঞ্জিনের স্টোর অংশটা ছিল গিয়ার, লিভার আর ডায়াল-এর সমষ্টি।
116+
- প্রতিটি সংখ্যা জমা হতো যান্ত্রিক ডায়াল ঘুরিয়ে (ঘড়ির মতো!)—যেমন: ডায়ালে ৫ সেট করলে সেটাই মেমরিতে সেভ হয়ে যেত।
117+
- আজকের RAM-এর মতো ইলেকট্রিক সিগনাল নয়, তখন মেকানিক্যাল মুভমেন্ট দিয়ে ডাটা স্টোর হতো!
96118

97-
### উদাহরণ:
98-
১০ এর কার্ড পড়ে স্টোরের সেল ০ এ জমা হতো।
99-
২০ এর কার্ড পড়ে স্টোরের সেল ১ এ জমা হতো।
100-
+ এর কার্ড পড়ে মিল সেল ০ ও সেল ১-এর ডাটা যোগ করে সেল ২-তে রাখত।
119+
### উদাহরণ:
120+
ধরুন, আপনি ১০ + ২০ গণনা করতে চান। তখন:
121+
১০ এর কার্ড পড়ে স্টোরের সেল ০ এ জমা হতো।
122+
২০ এর কার্ড পড়ে স্টোরের সেল ১ এ জমা হতো।
123+
+ এর কার্ড পড়ে মিল (প্রসেসর) সেল ০ ও সেল ১-এর ডাটা যোগ করে সেল ২-তে রাখত।
101124

102125
**সংক্ষেপে:**
103126
পাঞ্চ কার্ড → Card Reader পড়ে → বাইনারি বানায় → RAM/STORE এ পাঠায় → CPU কাজ করে
104127

105128
## 4. CPU কিভাবে Pointing Register এর সাহায্যে RAM এর ডাটাকে Execute করে?
106129

107-
Pointing Register হলো CPU-এর জন্য একটা "গাইড"। ধাপে ধাপে যেভাবে কাজ হয়:
130+
Pointing Register হলো CPU-এর জন্য একটা "গাইড"। এটা বলে দেয় কোথায় কোন ডেটা আছে, যাতে CPU সেটা নিয়ে কাজ করতে পারে। তারপর CPU ডেটা প্রসেস করে এবং ফলাফল দেয়।
131+
132+
ধাপে ধাপে যেভাবে কাজ হয়:
133+
১. Program Counter (PC)
134+
প্রথমে CPU দেখে, PC (Pointing Register)-তে যেই অ্যাড্রেস আছে, সেখানে RAM-এ কী লেখা আছে।
135+
২. Instruction Fetch
136+
সেই অ্যাড্রেস থেকে CPU RAM-এর ডাটা নেয় — এটাকেই বলে “fetch” করা।
137+
৩. Decode & Execute
138+
ডাটা বা নির্দেশনা CPU বুঝে ফেলে (decode করে) আর সেই অনুযায়ী কাজ করে (execute করে)।
139+
যেমন: যোগ করো,গুন করো, লিখো ইত্যাদি।
140+
৪. Program Counter আপডেট হয়
141+
142+
একটা ইনস্ট্রাকশন শেষ হলে, PC নিজে থেকেই পরের অ্যাড্রেসে চলে যায় (ধরো, 100 থাকলে এখন 104 হয়ে যাবে)। যেন CPU জানে, পরেরবার কোথা থেকে পড়তে হবে।
143+
144+
### উদাহরণ:
145+
146+
```go
147+
RAM এ আছে এমন ৩টা লাইন:
148+
100: LOAD A
149+
104: ADD B
150+
108: PRINT
151+
152+
```
153+
---
154+
155+
তখন:
156+
PC = 100 → CPU যাবে 100 নম্বর অ্যাড্রেসে → “LOAD A” নিবে
157+
158+
তারপর PC = 104 → “ADD B” নিবে
159+
160+
তারপর PC = 108 → “PRINT” নিবে
161+
162+
***এইভাবে PC বা Pointing Register CPU কে পথ দেখিয়ে RAM থেকে একটার পর একটা নির্দেশনা বের করে আনে।***
108163

109-
**1. Program Counter (PC)**
110-
**2. Instruction Fetch**
111-
**3. Decode & Execute**
112-
**4. Program Counter আপডেট হয়**
113164

114165
### উদাহরণ:
115166
```go
@@ -122,11 +173,15 @@ RAM এ আছে এমন ৩টা লাইন:
122173
## 5. কোনটা ৩২ বিট, ৬৪ বিট, ২০ বিট কম্পিউটার কিভাবে বুজবো?
123174

124175
**বিট কী?**
125-
৮ বিট = ১ বাইট
126176

127-
- ৩২-বিট: ৪ জিবি পর্যন্ত RAM
128-
- ৬৪-বিট: ১৮ কোটি GB পর্যন্ত RAM
129-
- ২০-বিট: পুরোনো সিস্টেম, ১ মেগাবাইট পর্যন্ত RAM
177+
বিট হলো কম্পিউটারের ভাষায় ডেটা প্রকাশের সবচেয়ে ছোট একক। এটা হয় 0 অথবা 1। মনে রাখতে হবে, ৮ বিট = ১ বাইট।
178+
179+
এখন যদি বলা হয় একটা **কম্পিউটার ৩২-বিট**, তার মানে হলো সেই কম্পিউটার একবারে ৩২টি বিট (অর্থাৎ ৩২টি 0 বা 1) নিয়ে কাজ করতে পারে। অর্থাৎ র‍্যামের একটি সেলে ৩২ টি বিট বা 0,1 পাশাপাশি রাখতে পারে।এরা সর্বোচ্চ ৪ জিবি RAM (2^32 বাইট) অ্যাড্রেস করতে পারে।এটা সাধারণত ছোট ধরনের কাজের জন্য ব্যবহৃত হয়।
180+
181+
একটা **কম্পিউটার ৬৪-বিট** মানে হলো সেই কম্পিউটার একবারে ৬৪ টি বিট (অর্থাৎ ৬৪টি 0 বা 1) নিয়ে কাজ করতে পারে। অর্থাৎ র‍্যামের একটি সেলে ৬৪ টি বিট বা 0,1 পাশাপাশি রাখতে পারে।এরা অনেক বেশি RAM অ্যাড্রেস করতে পারে, তাত্ত্বিকভাবে ১৮ কোটি গিগাবাইট (2^64 বাইট)।এটা বড় ধরনের কাজ, যেমন গেমিং, ভিডিও এডিটিং, বা ভারী সফটওয়্যার চালানোর জন্য উপযোগী।
182+
183+
**২০ বিট কম্পিউটার** আসলে খুব পুরোনো, ১৯৭০-৮০ এর দশকের কথা। এটা সাধারণত পুরোনো মেইনফ্রেম বা মিনি কম্পিউটারে ব্যবহৃত হতো, যেমন PDP-11 সিস্টেম। এগুলোর অ্যাড্রেস বাস ২০ বিটের হতো, মানে এরা ১ মেগাবাইট (2^20 বাইট) পর্যন্ত মেমরি অ্যাড্রেস করতে পারতো।
184+
130185

131186
## 6. কম্পিউটারের ডেটা প্রকাশের এককগুলো কি কি?
132187

0 commit comments

Comments
 (0)