A zombie process in Unix is:
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
Which of the following runs the fastest?
Created: 13 hours ago
A
O(log n)
B
O(n)
C
O(n log n)
D
O(√n)
অ্যালগরিদমের গতি নির্ভর করে তার time complexity–এর উপর। নিচে প্রতিটি বিকল্পের বিশ্লেষণ দেওয়া হলো—
-
ক) O(log n): এটি logarithmic time complexity, যার বৃদ্ধি হার খুব ধীর। ইনপুটের আকার বাড়লেও সময় ধীরে বাড়ে। উদাহরণ: Binary Search।
-
খ) O(n): এটি linear time complexity, যেখানে সময় ইনপুটের আকারের সঙ্গে সরাসরি অনুপাতে বৃদ্ধি পায়। উদাহরণ: Linear Search।
-
গ) O(n log n): এটি linearithmic time, যা linear-এর চেয়ে দ্রুত বৃদ্ধি পায় কিন্তু quadratic-এর চেয়ে ধীর। উদাহরণ: MergeSort, QuickSort।
-
ঘ) O(√n): এটি square root time, যা linear-এর চেয়ে ধীর কিন্তু logarithmic-এর চেয়ে দ্রুত বৃদ্ধি পায়। এটি কিছু বিশেষ সংখ্যাতত্ত্বভিত্তিক অ্যালগরিদমে দেখা যায়।
উ. ক) O(log n)
ব্যাখ্যা: Logarithmic অ্যালগরিদম সবচেয়ে দ্রুত বৃদ্ধি পাওয়া ধরণগুলোর মধ্যে সবচেয়ে ধীর (অর্থাৎ সবচেয়ে দ্রুত কর্মক্ষম)। তাই O(log n)–এর সময় জটিলতার অ্যালগরিদম সবচেয়ে দ্রুত চলে।

0
Updated: 13 hours ago
If |A| = m, |B| = n, then the number of injective functions A → B (m ≤ n) is:
Created: 1 day ago
A
P(n,m)
B
C(n,m)
C
nm
D
m
যদি |A| = m এবং |B| = n (m ≤ n) হয়, তবে A → B এর একেকটি injective (one-to-one) ফাংশনের সংখ্যা হবে P(n, m) = n! / (n − m)!। এই সূত্রটি permutation ধারণার উপর ভিত্তি করে তৈরি।
মূল ব্যাখ্যা হলো:
-
A-এর প্রথম উপাদান B-এর n উপাদানের যেকোনো একটির সাথে যুক্ত হতে পারে।
-
দ্বিতীয় উপাদানের জন্য থাকে **(n − 1)**টি বিকল্প, কারণ একই উপাদান আবার ব্যবহার করা যাবে না (injective হওয়ার কারণে)।
-
এভাবে ক্রমান্বয়ে mটি উপাদানের জন্য বিকল্পের সংখ্যা কমতে থাকে।
-
ফলে মোট ফাংশনের সংখ্যা হয়:
n × (n − 1) × (n − 2) × … × (n − m + 1) = n! / (n − m)!
অতএব, injective mapping-এর সংখ্যা = P(n, m)।

0
Updated: 1 day ago
If x, y, z are inputs to a Full Adder, the logic expression of carry out is:
Created: 13 hours ago
A
B
C
x + y + z
D
xy + xz + yz
Full Adder–এর Carry Out (Cout) বিট তখনই ‘1’ হয়, যখন তিনটি ইনপুট বিটের (x, y, z বা Cin) মধ্যে অন্তত দুটি 1 থাকে। অর্থাৎ, যোগফলের মান যদি 2 বা 3 হয়, তখন Carry তৈরি হয়।
এটি প্রকাশ করা যায় নিম্নলিখিত Boolean expression দিয়ে—
Cout = xy + xz + yz
এই সমীকরণটি বোঝায়—
-
যদি x এবং y উভয়ই 1 হয় → xy
-
যদি x এবং z উভয়ই 1 হয় → xz
-
যদি y এবং z উভয়ই 1 হয় → yz
উপরের যেকোনো শর্ত পূরণ হলে Carry তৈরি হয়।
এটি হলো Sum-of-Products form, যা সাধারণত K-map বা Boolean simplification–এর মাধ্যমে Full Adder truth table থেকে নির্ণয় করা হয়।
উ. Cout = xy + xz + yz
ব্যাখ্যা: Full Adder–এ Carry তখনই উৎপন্ন হয়, যখন অন্তত দুইটি ইনপুট 1 থাকে; তাই এই সরলীকৃত লজিক এক্সপ্রেশনটি সঠিক।

0
Updated: 13 hours ago