_______________ algorithm is the most prominent method to avoid deadlock.
A
Banker's
B
Elevator
C
Karin's
D
None of the above
উত্তরের বিবরণ
Banker’s Algorithm হলো একটি deadlock avoidance algorithm, যা operating system-এ রিসোর্স বরাদ্দ নিয়ন্ত্রণে ব্যবহৃত হয়। এটি Edsger Dijkstra উদ্ভাবন করেন। তাই সঠিক উত্তর হলো ক) Banker’s।
কাজের প্রক্রিয়া:
-
Safety Check: কোনো প্রক্রিয়ার রিসোর্স অনুরোধ মঞ্জুর করার আগে সিস্টেম একটি simulation চালিয়ে দেখে যে রিসোর্স বরাদ্দের পর সিস্টেম নিরাপদ (safe) অবস্থায় থাকবে কিনা।
-
Safe State: যদি বরাদ্দের পর এমন একটি safe sequence পাওয়া যায় যেখানে সব প্রক্রিয়া তাদের প্রয়োজনীয় রিসোর্স পেয়ে সফলভাবে সম্পন্ন হতে পারে, তবে সিস্টেম নিরাপদ ধরা হয়।
-
Decision: শুধুমাত্র তখনই অনুরোধটি মঞ্জুর করা হয় যখন সিস্টেম নিরাপদ থাকে; অন্যথায় প্রক্রিয়াটি অপেক্ষায় থাকে যেন deadlock এড়ানো যায়।
-
অতিরিক্ত শর্ত: প্রতিটি প্রক্রিয়াকে execution শুরু করার আগে তার সর্বাধিক প্রয়োজনীয় রিসোর্সের সংখ্যা জানাতে হয়, যাতে অ্যালগরিদম সঠিকভাবে রিসোর্স ব্যবস্থাপনা করতে পারে।
অতএব, Banker’s Algorithm সিস্টেমকে এমন অবস্থায় রাখে যাতে কোনো deadlock সৃষ্টি না হয় এবং রিসোর্স বরাদ্দ সবসময় safe state বজায় রাখে।

0
Updated: 14 hours ago
Which one below declares a function pointer (f) pointing to a function taking an int and a float and returning a double?
Created: 1 day ago
A
double *f (int, float)
B
double (*f) (int, float)
C
(*double) f (int, float)
D
double f* (int, float)
উত্তর: double (*f) (int, float)
ব্যাখ্যা: এখানে বন্ধনীর মাধ্যমে বোঝানো হয়েছে যে f একটি পয়েন্টার, যা এমন একটি ফাংশনের দিকে নির্দেশ করে, যার দুটি প্যারামিটার আছে—একটি int ও একটি float, এবং সেটি double টাইপের মান রিটার্ন করে।
যদি বন্ধনী না দেওয়া হয় যেমন double *f(int, float)
, তাহলে সেটি হবে এমন একটি ফাংশন যা double টাইপের পয়েন্টার রিটার্ন করে, কিন্তু এখানে উদ্দেশ্য ছিল ফাংশনের প্রতি পয়েন্টার ঘোষণা করা। তাই সঠিক রূপ হলো double (*f)(int, float)।

0
Updated: 1 day ago
A zombie process in Unix is:
Created: 13 hours ago
A
a process whose parent has not acknowledged its exit status
B
a process waiting for l/O
C
A process stuck In deadlock
D
A process in an infinite loop
একটি Zombie Process হলো এমন একটি প্রক্রিয়া যা নিজের কাজ সম্পন্ন করেছে, কিন্তু এখনো Process Table–এ এন্ট্রি হিসেবে রয়ে গেছে, কারণ এর Parent Process এখনো তার exit status acknowledge (wait() system call) করেনি। এই প্রক্রিয়াটি সম্পূর্ণভাবে মুছে ফেলার জন্য প্যারেন্টকে তার চাইল্ডের এক্সিট স্ট্যাটাস পড়তে হয়, যাকে বলা হয় reaping। একবার স্ট্যাটাস পড়ে নিলে, প্রক্রিয়াটি পুরোপুরি মুছে যায়।
ভুল বিকল্পগুলোর ব্যাখ্যা:
-
খ) Process waiting for I/O: এটি কেবল একটি blocked বা waiting state–এ থাকা প্রক্রিয়া, zombie নয়।
-
গ) Process stuck in deadlock: এখানে প্রক্রিয়াটি অন্য একটি রিসোর্সের জন্য অনির্দিষ্টকাল অপেক্ষা করছে, যা zombie অবস্থা নয়।
-
ঘ) Process in an infinite loop: এটি একটি running process, যা CPU ব্যবহার করছে কিন্তু এখনো শেষ হয়নি; তাই এটি zombie নয়।
উ. ক) a process whose parent has not acknowledged its exit status
ব্যাখ্যা: Zombie process তখনই তৈরি হয়, যখন কোনো প্রক্রিয়া শেষ হয়ে গেলেও তার প্যারেন্ট wait() করে এক্সিট স্ট্যাটাস পড়ে না, ফলে প্রক্রিয়ার তথ্য Process Table–এ থেকে যায়।

0
Updated: 13 hours ago
How will you declare an array (Arr) of four pointers to float?
Created: 1 day ago
A
*float Arr[4]
B
(float) Arr[*4]
C
float *Arr[4]
D
float *Arr[4]
float Arr[4] হলো এমন একটি ঘোষণাপদ্ধতি যা একটি float টাইপের চারটি পয়েন্টার ধারণকারী অ্যারে নির্দেশ করে। এটি C ভাষার ডিক্লারেশন নিয়ম অনুযায়ী গঠিত, যেখানে “array of X” এবং “function returning X” অংশগুলো “pointer to” ()-এর আগে bind হয়।
মূল বিষয়গুলো হলো:
-
Arr[4] দ্বারা বোঝায় যে Arr হলো চারটি উপাদান বিশিষ্ট একটি অ্যারে।
-
*Arr[4] বোঝায় অ্যারের প্রতিটি উপাদান একটি পয়েন্টার।
-
float *Arr[4] নির্দেশ করে প্রতিটি পয়েন্টার float টাইপের ডেটার ঠিকানা ধারণ করতে পারে।
অতএব, Arr হলো চারটি float পয়েন্টার নিয়ে গঠিত একটি অ্যারে, যা মেমরিতে চারটি আলাদা float ভেরিয়েবলের ঠিকানা সংরক্ষণে সক্ষম।

0
Updated: 1 day ago