Understanding Grand Viva Concepts
Understanding Grand Viva Concepts
(2024)
May 2, 2025
Contents
1 Grand Viva 2024 1
1.1 What is tree data structure? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 How to store elements of a tree in an array? . . . . . . . . . . . . . . . . . . . 1
1.3 Types of tree data structures? . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 Why is a tree a non-linear data structure? . . . . . . . . . . . . . . . . . . . . . 1
1.5 What is the syntax of a copy constructor? . . . . . . . . . . . . . . . . . . . . 1
1.6 What is a destructor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.7 Given the postorder of a Binary Search Tree (BST), how would you design the
BST? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.8 Explain Different Types of Process Models . . . . . . . . . . . . . . . . . . . . 1
1.9 MTech Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.10 Smoke Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.11 Stubs and Drivers and Their Real-time Examples . . . . . . . . . . . . . . . . 1
1.12 If You Developed an OS, How Would You Test It? . . . . . . . . . . . . . . . . 1
1.13 Computer Networking Basic Questions . . . . . . . . . . . . . . . . . . . . . . 1
1.13.1 Based on Port Numbers, Protocols, and Flow Control Mechanisms . . . 1
1.14 Difference Between V-Model and Iterative Waterfall Model . . . . . . . . . . . 2
1.15 What is Agile Model and its Types? . . . . . . . . . . . . . . . . . . . . . . . 2
3 Data Structures 2
3.1 Tell me some Data Structures you used? . . . . . . . . . . . . . . . . . . . . . 2
3.2 Implement a Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.3 What is Linear and Non-linear Data Structure? . . . . . . . . . . . . . . . . . . 2
3.4 Why is a tree a Non-linear Data Structure? . . . . . . . . . . . . . . . . . . . . 2
3.5 Declare a Linked List from Scratch . . . . . . . . . . . . . . . . . . . . . . . . 2
3.6 Write a Program to Reverse Your Name . . . . . . . . . . . . . . . . . . . . . 2
4 Machine Learning 2
4.1 Confusion Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4.2 Formulas for Evaluation Metrics . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2.1 Matthews Correlation Coefficient (MCC): . . . . . . . . . . . . . . . . 3
4.2.2 Area Under the Curve (AUC): . . . . . . . . . . . . . . . . . . . . . . 4
4.2.3 Cohen’s Kappa Coefficient (CKC): . . . . . . . . . . . . . . . . . . . . 4
4.2.4 Accuracy: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2.5 F1 Score: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2.6 Recall (Sensitivity or True Positive Rate): . . . . . . . . . . . . . . . . 4
4.2.7 Precision (Positive Predictive Value): . . . . . . . . . . . . . . . . . . 4
4.2.8 Specificity (True Negative Rate): . . . . . . . . . . . . . . . . . . . . . 5
4.2.9 Balanced Accuracy: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
222CS3113 Bishwajit Prasad Gond
5 Matrix Multiplication 5
5.1 Solvay-Strassen Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 SDLC Models 7
6.1 Waterfall Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2 Agile Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.3 Scrum Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.4 DevOps Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8 Microservices Architecture 9
9 Driver Model 9
14 Testing 11
14.1 Smoke Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
14.2 Regression Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
14.3 Equivalence Class Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . 11
14.4 Boundary Value Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
16 DBMS 12
17 Machine Learning 12
17.1 Hard and Soft Margin SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
17.2 Lasso regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
18 Testing 13
18.1 How can you connect two computers physically, if I give you a wire, how will
you connect these two PCs? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
18.2 Do you know optical fibre, have you seen it, what happens there, why do we use
it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
18.3 RAM, ROM, EPROM, why do we use secondary memory, when something is
stored in a computer how do you decide where it gets stored? . . . . . . . . . . 14
18.4 Transport layer protocols, TCP, UDP, real-world examples? . . . . . . . . . . . 14
18.5 If given an instruction, how is it executed inside the computer, tell me all steps? 14
18.6 Write 10, in how many number systems can this be written? . . . . . . . . . . . 14
18.7 10.001, convert this to octal? . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2
222CS3113 Bishwajit Prasad Gond
18.8 698 can this be octal, and why, convert to octal if no? . . . . . . . . . . . . . . 15
18.9 The different parts of a computer run on AC or DC? . . . . . . . . . . . . . . . 15
18.10What converts AC to DC? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
18.11Regression testing? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
18.12Name a testing method which is done by the user/customer? . . . . . . . . . . . 15
18.13Father of the computer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
18.14Mother of the computer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
18.15Difference between flow diagram and dataflow diagram? . . . . . . . . . . . . 15
18.16Made an egg diagram and asked what is it? . . . . . . . . . . . . . . . . . . . . 16
18.17How many types of diagrams are there? . . . . . . . . . . . . . . . . . . . . . 16
18.18Cohesion, coupling, and some big term? . . . . . . . . . . . . . . . . . . . . . 16
18.19What is SMPS (Switched-Mode Power Supply)? . . . . . . . . . . . . . . . . . 16
18.20Logical address space, physical address? . . . . . . . . . . . . . . . . . . . . . 16
18.21What is the degree of multiprogramming? . . . . . . . . . . . . . . . . . . . . 16
18.22Mid-term scheduler? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
18.23Print numbers 1-5 using recursion. . . . . . . . . . . . . . . . . . . . . . . . . 17
18.24Would this be faster using a loop? . . . . . . . . . . . . . . . . . . . . . . . . 17
18.25Which will take more space, loop or recursion? . . . . . . . . . . . . . . . . . 17
18.26Block diagram of a computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
18.27Dangling pointers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
18.28Foreign key and a real-life example of how it helps. . . . . . . . . . . . . . . . 17
18.29Preemptive vs. non-preemptive difference. . . . . . . . . . . . . . . . . . . . . 17
18.30Deadlock avoiding techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.31Block diagram of a computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.32What are the buses in a computer and what is bidirectional? . . . . . . . . . . . 18
18.33How does printf work in C? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.34Draw DFA and NFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.35FDMA (Frequency Division Multiple Access) vs. TDMA (Time Division Multiple
Access). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.36What is done during FDMA? . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
18.37How is the message carried by a carrier signal? . . . . . . . . . . . . . . . . . 18
18.38How is a queue implemented in memory? . . . . . . . . . . . . . . . . . . . . 19
18.39What do printf and scanf return? . . . . . . . . . . . . . . . . . . . . . . . . . 19
18.40Draw an AND gate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
18.41What is a half and full adder and does it accept? . . . . . . . . . . . . . . . . . 19
18.42Write the 2’s complement of 4. . . . . . . . . . . . . . . . . . . . . . . . . . . 19
18.43What is a bootloader and where is it stored? . . . . . . . . . . . . . . . . . . . 19
18.44Types of secondary memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
18.45How to access memory in secondary memory? . . . . . . . . . . . . . . . . . . 19
18.46What is paged segmentation and segmented page? . . . . . . . . . . . . . . . . 20
18.47What is a translation look-ahead buffer and why is it used? . . . . . . . . . . . 20
18.48Why not increase the size of the page table? . . . . . . . . . . . . . . . . . . . 20
18.49JK flip-flop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
18.50What’s a clock and how timing works in a computer. . . . . . . . . . . . . . . . 20
18.51Master-slave architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3
222CS3113 Bishwajit Prasad Gond
18.52Bibhu went to his system and started taking a printout of a question to solve in
ML, some derivation for soft margin classifier and precision, recall, F1 score
for classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
18.53Cohesion-coupling and types. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
18.54Design patterns, test design patterns. . . . . . . . . . . . . . . . . . . . . . . . 21
18.55SOLID principles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
18.56Inheritance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
18.57Accuracy metrics for unsupervised learning. . . . . . . . . . . . . . . . . . . . 21
18.58Make a graph for bias-variance tradeoff and bias calculation. . . . . . . . . . . 21
18.59Paged segmentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
18.60How to represent a graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
18.61Draw a complete graph with 4 nodes. . . . . . . . . . . . . . . . . . . . . . . . 22
18.62IP (Internet Protocol) which layer full form and what it is. . . . . . . . . . . . . 22
18.63TCP (Transmission Control Protocol) which layer. . . . . . . . . . . . . . . . . 22
18.64IPv4 vs. IPv6, which is what. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
18.65How many bits in IPv4 and IPv6. . . . . . . . . . . . . . . . . . . . . . . . . . 23
18.66What is an IP address and how many bits. . . . . . . . . . . . . . . . . . . . . 23
18.67 Show me in my computer the IP address. . . . . . . . . . . . . . . . . . . . . 23
18.68Have you ever seen a computer? Used it? Name the components of a computer. 23
18.69Belady’s Anomaly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
18.70Process synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
18.71CPU scheduling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
18.72BDS picked up queue from CPU scheduling and went into DSA and never came
back. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.73What kind of queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.74What is the kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.75Is it hardware or software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.76What is an OS, have you ever bought a book on OS. . . . . . . . . . . . . . . . 24
18.77Have you ever bought a book in your [Link]. . . . . . . . . . . . . . . . . . . . 24
18.78Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.79Time complexity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
18.80Give us 2000 for what we’ve taught you in these 20 minutes and get out. . . . . 25
18.81Draw a queue, show insertion, deletion. . . . . . . . . . . . . . . . . . . . . . 25
18.82Condition for an empty queue. . . . . . . . . . . . . . . . . . . . . . . . . . . 25
18.83Is TCP/IP connectionless or oriented? . . . . . . . . . . . . . . . . . . . . . . 25
18.84Can UDP + IP be used as a connection-oriented protocol? . . . . . . . . . . . . 25
18.85Protocols in the application layer. . . . . . . . . . . . . . . . . . . . . . . . . . 25
18.86Which protocols are used when you send an email. . . . . . . . . . . . . . . . 25
18.87Universal gates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
18.88Express OR gate using NAND gate. . . . . . . . . . . . . . . . . . . . . . . . 26
18.89Which protocol is used to stream IPL matches. . . . . . . . . . . . . . . . . . . 26
18.90Aloha vs. Slotted Aloha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
18.91Non-linear data structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
18.92How a tree is stored in memory. . . . . . . . . . . . . . . . . . . . . . . . . . . 26
18.93Name some topologies. What are the problems in star topology? . . . . . . . . 26
4
222CS3113 Bishwajit Prasad Gond
19 Networking 27
19.1 Length of IP header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
19.2 TCP vs. UDP, which is reliable and why. . . . . . . . . . . . . . . . . . . . . . 27
19.3 What is a port number and in which layer is it resolved. . . . . . . . . . . . . . 27
19.4 Contention and congestion, in which case collision can happen. . . . . . . . . . 27
19.5 CDMA/CD full form, CDMA CA vs. CD, in which layer it happens. . . . . . . 27
19.6 Deadlock, condition, how it is dealt with. . . . . . . . . . . . . . . . . . . . . . 27
19.7 Real-life example of deadlock. . . . . . . . . . . . . . . . . . . . . . . . . . . 27
19.8 You are in a computer center, your boss asked you to buy a SAN switch what
will you do. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
19.9 What is a router, bridge? Difference between router and bridge. . . . . . . . . . 28
19.10Can a router act as a bridge? . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
20 Operating System 28
20.1 What is I/O queuing and what is device queuing? . . . . . . . . . . . . . . . . 28
20.2 Belady’s Anomaly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
20.3 LTS (Long-Term Scheduler) vs. STS (Short-Term Scheduler). . . . . . . . . . . 28
20.4 Paging, page replacement algorithms. . . . . . . . . . . . . . . . . . . . . . . 29
20.5 External fragmentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
20.6 Why is there a layered structure in OSI models. . . . . . . . . . . . . . . . . . 29
20.7 Why do we need logical addressing at all? Thread vs. process. . . . . . . . . . 29
20.8 Design Turing machine, PDA, NFA. . . . . . . . . . . . . . . . . . . . . . . . 29
20.9 Hamiltonian path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
20.10ACID properties, normal forms, B+ trees. . . . . . . . . . . . . . . . . . . . . 30
20.11Mux, demux, decoder, complements, minterms, maxterms. . . . . . . . . . . . 30
20.12Cohesion, coupling, modularity, different testing. . . . . . . . . . . . . . . . . 30
20.13Block diagram of a computer, different registers, and other components. . . . . 30
20.148086 architecture (different segments in 8086). . . . . . . . . . . . . . . . . . . 30
5
222CS3113 Bishwajit Prasad Gond
1.7 Given the postorder of a Binary Search Tree (BST), how would you
design the BST?
1
222CS3113 Bishwajit Prasad Gond
3 Data Structures
4 Machine Learning
Consider a scenario where a malware detection system analyzes a software binary and provides
an assessment of its malicious or benign nature. The potential outcomes are depicted in Figure
4 , yielding four possibilities:
1. True Positive: The system correctly identifies the binary as malware.
2. False Negative: The system incorrectly categorizes the binary as non-malicious when it
is, in fact, malware.
3. False Positive: The system erroneously labels a non-malicious binary as malware.
4. True Negative: The system accurately identifies a non-malicious binary as such.
The crucial metrics for evaluating the performance of the malware detection system are the
true positive rate and the false positive rate. In practical terms, achieving true positive and true
negative results is the ultimate goal, although it is often challenging.
2
222CS3113 Bishwajit Prasad Gond
The true positive rate is a significant summary statistic that gauges the system’s ability to
detect malware within a given test set. This rate is calculated by dividing the number of true
positives by the total number of malware samples in the test set, providing insight into the
system’s proficiency in recognizing malware.
However, solely relying on the true positive rate for evaluation is insufficient. For instance, if
the evaluation criterion only considers this rate, a simplistic function that consistently identifies
all files as malware would yield a perfect score. A comprehensive assessment of a detection
system involves not only its capability to identify malware correctly but also its ability to distinguish
non-malicious content accurately.
To assess the system’s proficiency in identifying non-malicious content, it is imperative to
measure the false positive rate.
where:
3
222CS3113 Bishwajit Prasad Gond
The Area Under the Curve is often used in the context of ROC curves, and it is calculated
numerically by approximating the integral under the curve.
Po is the ratio of the number of agreements to the total number of observations, and Pe is the
expected agreement assuming random chance.
4.2.4 Accuracy:
4.2.5 F1 Score:
The F1 Score is the harmonic mean of precision and recall, and it is given by:
2 × Precision × Recall
F1 Score = (4)
Precision + Recall
4
222CS3113 Bishwajit Prasad Gond
Balanced Accuracy is the average of Sensitivity and Specificity and is given by:
Sensitivity + Specificity
Balanced Accuracy = (8)
2
5 Matrix Multiplication
1 import numpy as np
2
3 def matrix_multiply (A , B ) :
4 return np . dot (A , B )
5
6 # Example usage
7 A = np . array ([[1 , 2] , [3 , 4]])
8 B = np . array ([[5 , 6] , [7 , 8]])
9 result = matrix_multiply (A , B )
10 print ( result )
5
222CS3113 Bishwajit Prasad Gond
The Solvay-Strassen algorithm is an efficient method for multiplying two matrices using the
divide-and-conquer approach. Here’s the algorithm:
1. Input:
• Two matrices A and B of size n × n.
2. Output:
• The product matrix C = A × B.
3. Algorithm:
3.1 If n is small enough, perform matrix multiplication using a standard algorithm.
3.2 Divide the input matrices A and B into four equal-sized submatrices:
A11 A12 B11 B12
A= , B =
A21 A22 B21 B22
C11 = M1 + M4 − M5 + M7
C12 = M3 + M5
C21 = M2 + M4
C22 = M1 − M2 + M3 + M6
3.5 Concatenate the output submatrices to form the final product matrix C.
The time complexity of this matrix multiplication algorithm is O(n3 ) where n is the size of the
matrices.
6
222CS3113 Bishwajit Prasad Gond
6 SDLC Models
7
222CS3113 Bishwajit Prasad Gond
– Artifacts:
• Product Backlog: List of all desired features and enhancements.
• Sprint Backlog: Subset of the product backlog for the current sprint.
• Increment: The sum of all completed product backlog items.
– Events:
• Sprint Planning: Meeting to plan the work for the upcoming sprint.
• Daily Stand-up: Brief daily meeting to synchronize the team’s activities.
• Sprint Review: Demo of the increment and feedback from stakeholders.
• Sprint Retrospective: Reflection on the previous sprint and identification of improvements.
– Advantages:
• Transparency and visibility of progress.
• Encourages self-organization and continuous improvement.
– Disadvantages:
• Requires a dedicated Scrum Master and adherence to Scrum principles.
• May not be suitable for all types of projects.
Model: This component represents the application’s data and business logic. It encapsulates the
data and behavior of the application, ensuring that changes to the data are reflected appropriately.
View: The view component is responsible for presenting the data to the user. It consists
of the user interface elements that users interact with, such as web pages, forms, or graphical
interfaces.
8
222CS3113 Bishwajit Prasad Gond
Controller: Acting as an intermediary between the model and the view, the controller
processes user input and updates the model accordingly. It handles user requests, triggers
appropriate actions in the model, and selects the appropriate view to present the updated data.
Key Features:
- Separation of concerns: MVC separates the presentation, business logic, and data layers,
making the application easier to maintain and modify.
- Reusability: Each component can be reused independently, promoting modular development.
- Testability: Because of its modular structure, each component can be tested separately,
facilitating unit testing and ensuring code quality.
8 Microservices Architecture
Microservices architecture breaks down an application into a set of small, loosely coupled
services, each running in its own process and communicating with lightweight mechanisms
such as HTTP/REST or messaging queues. Each service is responsible for a specific business
capability and can be developed, deployed, and scaled independently.
Key Features:
- Decentralized data management: Each microservice manages its own data, enabling teams
to choose the most suitable data storage technology for their service.
- Scalability: Microservices allow individual services to be scaled independently based on
demand, enhancing the application’s overall scalability.
- Fault isolation: If a microservice fails, it doesn’t necessarily affect the entire system, as
other services can continue to function independently.
9 Driver Model
The driver model is a design pattern used in software development, particularly in testing scenarios,
where a component called the ”driver” controls or coordinates the execution of other components.
In testing, the driver simulates user inputs or system interactions to observe and verify the
behavior of the components under test.
Key Features:
- Simulation of interactions: The driver mimics external inputs or interactions that would
occur in a real-world scenario, allowing developers to observe how the system responds.
- Isolation of components: By controlling the execution of other components, the driver
can isolate the behavior of the component being tested, making it easier to identify and
debug issues.
9
222CS3113 Bishwajit Prasad Gond
In software testing and development, stubs and drivers are both used in integration testing, which
involves combining individual modules or components to ensure they work together correctly.
Here’s the difference between them:
1. Stub:
• A stub is a simplified version of a module or component that simulates the behavior
of the missing or incomplete parts.
• It provides canned responses to calls made by the module being tested.
• Stubs are used when the module being tested depends on other modules or components
that are not yet developed or available for testing.
• Typically, stubs are created by developers during the early stages of development to
facilitate testing of individual modules in isolation.
2. Driver:
• A driver is a test module or component that calls the module being tested.
• It acts as a substitute for the actual calling module.
• Drivers are used when the module being tested is dependent on other modules or
components that are already developed.
• Drivers are created specifically for testing purposes to provide inputs to the module
under test and to simulate its environment.
10
222CS3113 Bishwajit Prasad Gond
TCP is an acknowledgment (ACK) based protocol and every data packet that is received has
to be acknowledged. The TCP-data packets are transmitted from the AP to the STAs, each of
which transmits a TCP-ACK packet for every TCP-data packet that it receives.
14 Testing
Smoke Testing, also known as ”Build Verification Testing”, is a type of software testing that
comprises a non-exhaustive set of tests that aim at ensuring that the most important functions
work. The result of this testing is used to decide if a build is stable enough to proceed with
further testing.
Regression Testing is a type of software testing to confirm that a recent program or code change
has not adversely affected existing features. It is performed after modification of a system,
component, or a group of related units to ensure that the changes have not introduced new
faults.
Equivalence Class Partitioning is a software testing technique that divides the input data of a
software unit into partitions of equivalent data from which test cases can be derived. In principle,
test cases are designed to cover each partition at least once.
11
222CS3113 Bishwajit Prasad Gond
Boundary Value Analysis is a software testing technique in which tests are designed to include
representatives of boundary values in a range. The behavior at the edge of an input domain often
differs from its behavior at the center and might expose the application’s defects.
16 DBMS
17 Machine Learning
When the data is linearly separable, and we don’t want to have any misclassifications, we use
SVM with a hard margin. However, when a linear boundary is not feasible, or we want to allow
some misclassifications in the hope of achieving better generality, we can opt for a soft margin
for our classifier.
12
222CS3113 Bishwajit Prasad Gond
Lasso regression, also known as least absolute shrinkage and selection operator (LASSO), is a
regression analysis method that performs both variable selection and regularization to enhance
the prediction accuracy and interpretability of the resulting statistical model. It’s a type of linear
regression model that adds a penalty term to the loss function, which is the sum of the absolute
value of the regression coefficients. This penalty term is known as the L1 regularization or
L1-norm regularization.
18 Testing
18.1 How can you connect two computers physically, if I give you a wire,
how will you connect these two PCs?
To physically connect two computers, you can use an Ethernet cable (also known as a network
cable). You would plug one end of the cable into the Ethernet port of each computer, creating
a direct wired connection between the two.
18.2 Do you know optical fibre, have you seen it, what happens there, why
do we use it?
Optical fiber is a type of technology that uses thin strands of glass or plastic to transmit data
as light pulses. It is used for long-distance communication and high-speed data transmission
because it offers higher bandwidth and less signal loss compared to traditional copper cables.
13
222CS3113 Bishwajit Prasad Gond
18.3 RAM, ROM, EPROM, why do we use secondary memory, when something
is stored in a computer how do you decide where it gets stored?
RAM (Random Access Memory) is used for temporary storage of data and program instructions
that are currently being used by the computer. ROM (Read-Only Memory) stores firmware that
is used to boot up the computer and cannot be changed. EPROM (Erasable Programmable
Read-Only Memory) is a type of memory that can be erased and reprogrammed.
Secondary memory, such as hard drives or SSDs, is used for long-term storage of data and
programs. When something is stored in a computer, the operating system decides where it gets
stored based on the type of data and the storage hierarchy.
TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are both transport
layer protocols used in computer networks. TCP provides reliable, connection-oriented communication,
making sure that data is delivered error-free and in order. UDP, on the other hand, is connectionless
and does not guarantee delivery or order of data. Real-world examples of TCP include web
browsing and email, while UDP is used for streaming media and online gaming.
18.6 Write 10, in how many number systems can this be written?
The number 10 can be written in various number systems, including binary (1010), octal (12),
decimal (10), and hexadecimal (A).
14
222CS3113 Bishwajit Prasad Gond
18.8 698 can this be octal, and why, convert to octal if no?
No, 698 cannot be a valid octal number because octal numbers only use digits from 0 to 7. If
we convert 698 to octal, it would be 1252 in octal.
Different parts of a computer, such as the CPU and memory, run on DC (Direct Current).
A power supply unit (PSU), specifically a component called a rectifier, converts AC (Alternating
Current) to DC (Direct Current) for use in a computer.
Regression testing is a type of software testing that is performed to ensure that changes or
updates to a program have not adversely affected existing features.
Acceptance testing is a testing method done by the user/customer to determine if the system
meets their requirements.
Charles Babbage is often referred to as the ”father of the computer” for his work on the Analytical
Engine, a mechanical computer design.
Ada Lovelace is often regarded as the ”mother of the computer” for her work on Charles Babbage’s
Analytical Engine and her notes on the engine’s operation, which included what is now recognized
as the first algorithm intended to be processed by a machine.
A flow diagram (or flowchart) is a graphical representation of a process, showing the steps
involved and their sequence. A data flow diagram (DFD) is a graphical representation of how
data flows through a system, showing the processes that transform data, the data stores, and the
data flows between them.
15
222CS3113 Bishwajit Prasad Gond
An egg diagram is a type of diagram used in software engineering to represent the relationships
between different modules or components of a system.
There are many types of diagrams used in various fields such as software engineering, network
design, and system architecture. Some common types include flowcharts, UML diagrams,
network diagrams, and entity-relationship diagrams.
Cohesion refers to the degree to which the elements of a module belong together. Coupling refers
to the degree of interdependence between modules. The ”big term” you might be referring to
could be ”modularity,” which is the degree to which a system is divided into modules that can
be independently developed and maintained.
SMPS is a type of power supply that uses switching devices to convert electrical power efficiently.
It is commonly used in computers and other electronic devices.
The logical address space is the set of all possible addresses generated by a program. The
physical address is the actual address in memory where the data is stored.
The degree of multiprogramming refers to the number of programs that can be simultaneously
loaded into memory and executed by the CPU.
The mid-term scheduler (also known as the medium-term scheduler) is a component of the
operating system that decides when to swap processes out of memory and onto disk, and vice
versa. It helps maintain a balance between keeping the CPU busy and ensuring that there is
enough memory for incoming processes.
16
222CS3113 Bishwajit Prasad Gond
void printNumbers(int n) {
if (n > 0) {
printNumbers(n - 1);
printf("%d ", n);
}
}
// Call printNumbers(5) to print numbers 1 to 5
Yes, in general, using a loop for this task would be faster than using recursion due to the overhead
of function calls in recursion.
Recursion typically takes more space than a loop because each recursive call requires additional
memory to store the function’s state.
A block diagram of a computer typically includes components such as the CPU, memory, storage
devices, input/output devices, and the system bus.
Dangling pointers are pointers that point to memory that has been deallocated or freed, leading
to undefined behavior when accessed.
A foreign key is a column or a set of columns in a database table that provides a link between
data in two tables. For example, in a database for a university, the student table may have a
foreign key that references the ID of a course in the course table, indicating which course the
student is enrolled in.
17
222CS3113 Bishwajit Prasad Gond
Deadlock avoiding techniques include resource allocation strategies such as Banker’s algorithm
and ensuring a strict ordering of resource requests.
A block diagram of a computer typically includes components such as the CPU, memory, storage
devices, input/output devices, and the system bus.
Buses in a computer are communication pathways that allow data to be transferred between
components. A bidirectional bus is one that can carry data in both directions.
printf is a function in C used for formatted output. It takes a format string and a variable number
of arguments, formats them according to the format string, and prints the result to the standard
output stream.
DFA and NFA diagrams are typically drawn using circles for states and arrows for transitions
between states, labeled with input symbols.
18.35 FDMA (Frequency Division Multiple Access) vs. TDMA (Time Division
Multiple Access).
FDMA divides the frequency spectrum into multiple channels, each assigned to a different user,
while TDMA divides the time into slots, with each user getting a slot to transmit.
During FDMA, the frequency spectrum is divided into separate frequency bands, each allocated
to a different communication channel.
The message is modulated onto the carrier signal, altering its amplitude, frequency, or phase to
encode the information.
18
222CS3113 Bishwajit Prasad Gond
A queue can be implemented in memory using arrays or linked lists to store the queue elements
and pointers to keep track of the front and rear of the queue.
printf returns the number of characters printed, while scanf returns the number of items successfully
read and assigned.
A ---|AND|--- Output
B ---|
A half adder adds two single-bit binary numbers and produces a sum bit (S) and a carry bit (C).
A full adder adds two binary numbers along with a carry from the previous stage and produces
a sum bit (S) and a carry bit (C). Both accept binary inputs and produce binary outputs.
A bootloader is a program that loads the operating system into memory during the system startup
process. It is typically stored in the boot sector of the computer’s hard drive or in a dedicated
boot ROM chip.
Types of secondary memory include hard disk drives (HDDs), solid-state drives (SSDs), optical
discs (CDs, DVDs), and magnetic tapes.
Memory in secondary memory is accessed using input/output (I/O) operations. Data is transferred
between secondary memory and primary memory (RAM) using I/O channels.
19
222CS3113 Bishwajit Prasad Gond
Paged segmentation is a memory management technique that combines the benefits of paging
and segmentation. Segmented paging refers to using both segmentation and paging to manage
memory, where each segment is divided into pages.
A translation look-ahead buffer (TLB) is a cache that stores recently accessed virtual-to-physical
address translations. It is used to speed up address translation in virtual memory systems.
Increasing the size of the page table can lead to increased memory overhead and slower access
times, as the entire page table needs to be searched for each memory access.
18.49 JK flip-flop.
A JK flip-flop is a sequential logic circuit that can be used to store one bit of information. It has
two inputs, J (set) and K (reset), and two outputs, Q and Q’.
In a computer, a clock is a signal that oscillates between high and low states at a regular interval,
providing a timing reference for the system. Timing in a computer is crucial for coordinating
the operations of different components and ensuring synchronous operation.
Master-slave architecture refers to a design pattern where one component (the master) controls
the operation of one or more other components (the slaves). This architecture is commonly used
in communication systems and data replication.
18.52 Bibhu went to his system and started taking a printout of a question
to solve in ML, some derivation for soft margin classifier and precision,
recall, F1 score for classification.
It sounds like Bibhu is working on a machine learning problem involving the soft margin classifier
and evaluation metrics like precision, recall, and F1 score. These metrics are commonly used
to assess the performance of classification models.
20
222CS3113 Bishwajit Prasad Gond
Cohesion refers to the degree to which the elements within a module belong together, while
coupling refers to the degree of interdependence between modules. Types of cohesion include
functional, sequential, and communicational, while types of coupling include data, stamp, and
control coupling.
Design patterns are reusable solutions to common problems in software design. Test design
patterns are patterns that help in designing effective and efficient test cases and test suites.
SOLID is an acronym for five design principles in object-oriented programming: Single Responsibility
Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle,
and Dependency Inversion Principle.
18.56 Inheritance.
In unsupervised learning, where the data is not labeled, accuracy is not a common metric.
Instead, metrics like silhouette score, Davies–Bouldin index, and Dunn index are used to evaluate
clustering algorithms.
The bias-variance tradeoff is a key concept in machine learning that illustrates the relationship
between model complexity and its ability to generalize to unseen data. As the complexity of
a model increases, its variance typically increases, leading to overfitting. Conversely, as the
complexity decreases, the bias typically increases, leading to underfitting. The goal is to find
the right balance between bias and variance for optimal model performance.
21
222CS3113 Bishwajit Prasad Gond
Paged segmentation is a memory management technique that combines the benefits of paging
and segmentation. Segmented paging refers to using both segmentation and paging to manage
memory, where each segment is divided into pages.
A graph can be represented using an adjacency matrix, where each cell represents the presence
or absence of an edge between two vertices, or using an adjacency list, where each vertex has a
list of adjacent vertices.
A complete graph with 4 nodes (vertices) has every pair of distinct vertices connected by a
unique edge. It can be represented as follows:
A --- B
| / |
| / |
C --- D
18.62 IP (Internet Protocol) which layer full form and what it is.
IP (Internet Protocol) is a network layer protocol in the OSI model that is responsible for routing
packets between network devices. It provides the addressing and routing functions necessary
for data to be transmitted over a network.
TCP (Transmission Control Protocol) is a transport layer protocol in the OSI model that provides
reliable, connection-oriented communication between devices on a network. It ensures that data
is delivered in order and without errors.
IPv4 (Internet Protocol version 4) is the fourth revision of the Internet Protocol and uses 32-bit
addresses, allowing for approximately 4.3 billion unique addresses. IPv6 (Internet Protocol
version 6) is the most recent version of the Internet Protocol and uses 128-bit addresses, allowing
for significantly more unique addresses than IPv4.
22
222CS3113 Bishwajit Prasad Gond
IPv4 addresses are 32 bits long, while IPv6 addresses are 128 bits long.
BDS likely wanted to see the IP address assigned to their computer, which can typically be
found in the network settings or by using a command such as ipconfig (Windows) or ifconfig
(Linux/macOS) in the command line.
18.68 Have you ever seen a computer? Used it? Name the components of
a computer.
Yes, I have knowledge about computers. The components of a computer include the CPU
(Central Processing Unit), memory (RAM), storage devices (HDD, SSD), input devices (keyboard,
mouse), output devices (monitor, printer), and the motherboard.
Belady’s Anomaly is a phenomenon in page replacement algorithms where increasing the number
of page frames can lead to an increase in the number of page faults.
CPU scheduling is the process by which the operating system decides which process to execute
next on the CPU.
23
222CS3113 Bishwajit Prasad Gond
18.72 BDS picked up queue from CPU scheduling and went into DSA and
never came back.
It seems like BDS shifted the topic from CPU scheduling to Data Structures and Algorithms
(DSA) and did not return to the previous discussion.
Queues in CPU scheduling can include ready queues, where processes are waiting to be executed,
and device queues, where processes are waiting for I/O operations to complete.
The kernel is the core component of an operating system that manages system resources, handles
communication between hardware and software, and provides essential services for other parts
of the operating system.
The kernel is software, specifically the part of the operating system that directly interacts with
the hardware.
An operating system (OS) is a software that manages computer hardware and provides services
for computer programs. Yes, I have bought a book on operating systems.
18.78 Array.
An array is a data structure that stores a collection of elements, each identified by at least one
array index or key.
Time complexity is a measure of the amount of time taken by an algorithm to run as a function
of the length of the input.
24
222CS3113 Bishwajit Prasad Gond
18.80 Give us 2000 for what we’ve taught you in these 20 minutes and get
out.
It seems like a hypothetical scenario where someone is asking for payment for teaching in a
short time.
Front Rear
| |
1 2 3 4 5
Insertion (enqueue): Add an element to the rear of the queue.
Deletion (dequeue): Remove an element from the front of the queue.
An empty queue has its front and rear pointers at the same position.
No, UDP (User Datagram Protocol) is a connectionless protocol and does not provide the
features required for connection-oriented communication.
Protocols in the application layer include HTTP (Hypertext Transfer Protocol), FTP (File Transfer
Protocol), SMTP (Simple Mail Transfer Protocol), and DNS (Domain Name System), among
others.
When you send an email, protocols such as SMTP (Simple Mail Transfer Protocol) are used to
send the email from the client to the server, and protocols like IMAP (Internet Message Access
Protocol) or POP3 (Post Office Protocol version 3) are used to retrieve the email from the server.
25
222CS3113 Bishwajit Prasad Gond
Universal gates are logic gates that can be used to implement any other type of logic gate. NAND
and NOR gates are considered universal gates.
A ---|NAND|----
|
B ---|NAND|--- Output
The protocol used to stream IPL matches can vary, but commonly used protocols include HTTP
(Hypertext Transfer Protocol) and RTSP (Real-Time Streaming Protocol).
Aloha is a random access protocol where stations can transmit data at any time, potentially
leading to collisions. Slotted Aloha divides time into slots and stations can only transmit at the
beginning of a slot, reducing the chances of collisions.
Non-linear data structures are data structures where each element can point to multiple other
elements, creating a non-linear sequence. Examples include trees and graphs.
A tree can be stored in memory using various data structures such as arrays or linked structures.
For example, in a binary tree, each node may contain references to its left and right child nodes.
18.93 Name some topologies. What are the problems in star topology?
Some network topologies include star, bus, ring, and mesh. In star topology, the main problem
is that if the central hub fails, the entire network becomes unusable.
26
222CS3113 Bishwajit Prasad Gond
19 Networking
The length of the IP header in IPv4 is typically 20 bytes, but it can vary depending on the options
and flags set in the header.
TCP (Transmission Control Protocol) is reliable because it provides mechanisms for error checking,
flow control, and retransmission of lost packets. UDP (User Datagram Protocol) is not reliable
because it does not provide these mechanisms.
A port number is a 16-bit unsigned integer used to identify specific processes or services on a
host in a network. Port numbers are resolved at the transport layer (Layer 4) of the OSI model.
Contention occurs when multiple devices attempt to use a shared resource at the same time,
potentially leading to collisions. Congestion occurs when the network is carrying more data
than it can handle, leading to delays and packet loss.
19.5 CDMA/CD full form, CDMA CA vs. CD, in which layer it happens.
CDMA/CD stands for Carrier Sense Multiple Access with Collision Detection. CDMA CA
(Collision Avoidance) is a variation of CDMA that attempts to avoid collisions by sensing the
medium before transmitting. CDMA/CD operates at the Data Link Layer (Layer 2) of the OSI
model.
Deadlock is a situation in which two or more processes are unable to proceed because each is
waiting for the other to release a resource. Deadlock can be prevented by using techniques such
as resource allocation graphs, deadlock detection algorithms, and deadlock recovery mechanisms.
A real-life example of deadlock is a traffic deadlock, where two or more vehicles at an intersection
are unable to move because each is waiting for the other to yield.
27
222CS3113 Bishwajit Prasad Gond
19.8 You are in a computer center, your boss asked you to buy a SAN
switch what will you do.
If my boss asked me to buy a SAN (Storage Area Network) switch, I would first research
different SAN switches available in the market, compare their features and prices, and then
make a recommendation to my boss based on our requirements and budget.
A router is a networking device that forwards data packets between computer networks. A bridge
is a networking device that connects two or more network segments, effectively extending a local
area network (LAN).
The main difference between a router and a bridge is that a router operates at the network
layer (Layer 3) of the OSI model and can connect different types of networks (e.g., Ethernet,
Wi-Fi), while a bridge operates at the data link layer (Layer 2) and connects similar types of
networks.
Yes, a router can act as a bridge by connecting two or more network segments and forwarding
packets between them.
20 Operating System
I/O queuing refers to the process of managing the order in which I/O requests are processed by
a computer system. Device queuing specifically refers to the queuing of requests for a particular
I/O device.
Belady’s Anomaly is a phenomenon in page replacement algorithms where increasing the number
of page frames can lead to an increase in the number of page faults.
The Long-Term Scheduler (LTS) selects which processes should be brought into the ready queue
from the job pool, while the Short-Term Scheduler (STS) selects which process should run next
from the ready queue.
28
222CS3113 Bishwajit Prasad Gond
Paging is a memory management scheme that allows the physical memory to be divided into
fixed-size blocks called pages, which are then mapped to logical addresses. Page replacement
algorithms are used to decide which pages to evict from memory when there is a page fault.
External fragmentation occurs when free memory blocks are scattered throughout the memory
space, making it difficult to allocate contiguous blocks of memory to processes even when the
total free memory is sufficient.
The layered structure in the OSI (Open Systems Interconnection) model allows for the separation
of concerns, making it easier to design, implement, and maintain complex network protocols.
Each layer has specific functions and interacts with adjacent layers through well-defined interfaces,
promoting interoperability and modularity.
Logical addressing is essential because it allows for the abstraction of physical memory addresses,
enabling programs to be written without knowledge of the underlying hardware layout. This
abstraction makes programs more portable and easier to develop.
A thread is a lightweight process that can be managed independently within a process.
Threads share the same memory space and resources, while processes have their own memory
space and resources. Threads are more efficient for multitasking within a single process, as they
require less overhead than separate processes.
A Hamiltonian path is a path in a graph that visits each vertex exactly once. Finding a Hamiltonian
path in a graph is a classic problem in graph theory and is NP-complete, meaning it is computationally
challenging for large graphs.
29
222CS3113 Bishwajit Prasad Gond
ACID properties (Atomicity, Consistency, Isolation, Durability) are properties that guarantee
that database transactions are processed reliably. Normal forms in database design are rules for
organizing data to minimize redundancy and dependency. B+ trees are a type of self-balancing
tree data structure commonly used in database systems and file systems for indexing.
Multiplexer (mux), demultiplexer (demux), and decoder are fundamental digital logic components
used in designing combinational circuits. A mux selects one of several input lines and directs
it to a single output line based on control signals. A demux performs the opposite operation,
directing the input from a single line to one of several output lines. A decoder converts coded
inputs into a set of output lines. Complements, including 1’s complement and 2’s complement,
are used in binary arithmetic for negation and subtraction. Minterms and maxterms are terms
used in Boolean algebra to express logical expressions.
Cohesion refers to the degree to which the elements within a module belong together. High
cohesion indicates that the elements are closely related and focused on a single task, while low
cohesion implies that the elements are less related and may perform multiple tasks. Coupling
measures the interdependence between modules. Low coupling indicates that modules are
relatively independent, making the system easier to maintain and modify. Modularity is the
concept of dividing a system into smaller, manageable parts or modules. Different testing
techniques include unit testing, integration testing, system testing, and acceptance testing, each
focusing on different aspects of software quality assurance.
The block diagram of a computer typically includes components such as the central processing
unit (CPU), memory, input/output (I/O) devices, and storage. Different registers in a CPU
include the program counter (PC), instruction register (IR), memory address register (MAR),
memory data register (MDR), and general-purpose registers (such as accumulator, index registers,
and stack pointer). Other components may include arithmetic logic units (ALU), control unit,
cache memory, buses, and various peripheral devices.
The 8086 microprocessor architecture includes several segments, each serving a specific purpose.
These segments include the code segment (CS), which holds the program instructions, the data
segment (DS) for data storage, the stack segment (SS) for storing procedure call information
30
222CS3113 Bishwajit Prasad Gond
and local variables, and the extra segment (ES), which provides additional data storage space.
These segments are used to organize memory access in real mode operation.
31
Agile development is iterative and incremental, emphasizing flexibility, continuous feedback, and adaptation, with requirements and solutions evolving through collaboration. The V-Model is more rigid, with strict sequential stages where testing is staged alongside each development phase, providing a more structured but less adaptable framework. Agile promotes rapid iterative cycles for ongoing improvement, whereas the V-Model assumes a fixed set of requirements from the start .
Stubs and drivers are used in software testing to simulate the behavior of components that are not fully implemented. A stub mimics a module's behavior a function call relies on, providing predefined answers, which is useful during top-down integration testing. Conversely, a driver simulates the calling module for the lower modules, aiding in bottom-up integration testing. These test setups enable continued testing progress even when parts of the system remain unfinished, facilitating early defect identification and resolution .
Preemptive scheduling allows the operating system to suspend a currently running process to start or resume another process, prioritizing tasks based on urgency, which improves response time and resource sharing. In contrast, non-preemptive scheduling requires processes to run to completion or voluntarily relinquish control, which can lead to inefficiencies and poor responsiveness in real-time or multi-tasking environments .
Implementing a queue using a linked list provides dynamic memory allocation, allowing for size flexibility and efficient memory use since no pre-set capacity limit is needed. This contrasts with arrays which require a fixed size, risking wasted memory or overflow. Linked list-based queues also allow constant time operations for enqueue and dequeue actions due to direct front and rear node pointers, while arrays face potential costly resizing operations .
A tree is a non-linear data structure, unlike arrays or linked lists which are linear. In a tree, the data is structured in a hierarchical form with nodes connected by edges, allowing for more complex relationships between elements. Each tree node can have multiple child nodes, facilitating a branching structure as opposed to the sequential arrangement of a linear data structure. This hierarchy helps in efficiently performing operations like insertions, deletions, and searches .
Increasing page table sizes is avoided as it can significantly increase memory overhead, leading to a reduced amount of memory available for other processes. Large page tables slow down memory access times because the system must search larger tables to resolve address translations. Maintaining efficiency in virtual memory systems often requires optimizing the structure and management of page tables rather than mere enlargement .
Cohesion reflects a module's singular focus and clarity in its tasks, leading to systems that are reliable, maintainable, and less prone to errors. High cohesion implies that related functionalities are contained within a module, promoting reuse and simplification of complex systems. Coupling denotes the level of interdependence between modules; lower coupling is preferable as it reduces the system's complexity, enhances modularity, and allows for easier maintenance and evolution. Together, high cohesion and low coupling foster robust, scalable, and maintainable software architectures .
A bootloader is crucial as it loads the operating system into memory upon system startup. It initializes system hardware and sets the environment for the OS to run. Typically stored in a dedicated boot ROM chip or the boot sector of a storage device, it ensures that the system can start and transfer control to the operating system core, which manages further operations .
A translation look-ahead buffer (TLB) enhances memory management by caching recent virtual-to-physical address translations, reducing the time needed for address resolution. It improves CPU efficiency by decreasing the frequency of accessing the slower page table in main memory. As a result, systems with a TLB can achieve faster data retrieval and better performance in environments with frequent address lookups .
To construct a BST from its postorder traversal, start by recognizing that the last element of postorder is the root. Recursively partition the preceding elements into left and right subtrees: elements less than the root form the left subtree and elements greater form the right subtree. Recursively repeat this process for each subtree using the specified subarray ranges, reconstruction continues until all elements are processed and subarrays are exhausted .