Software Technical Interview
API
- Application Programming Interface - collection of communication protocols and subroutines used by various programs to communicate
BIOS
- Basic Input/Output System - older standard, 16-bit processor, old text UI
microprocessor layout
- CPU -- ALU (Arithmetic Logic Unit), CU (Control Unit), registers (hold data temporarily during processing) - Cache -- L1, L2, L3 (storage in the CPU to store frequently accessed data or instructions) (L1 to L3, fastest to slowest) - Bus interface -- connects CPU to other components like memory and I/O devices - Memory controller -- data flow to and from system's RAM - I/O interface -- manages communication with peripheral devices, can include interfaces USB, SATA, PCIe, - clock and timing circuitry - power management
ACID for database
A - Atomicity C - Consistency I - Isolation D - Durability
sudo command
Super Users DO - run with elevated privileges, allowing a user with the proper permissions to run a command as another user
inheritance
ability of a class to derive features and traits from another class
long term scheduler
aka job scheduler; determines which programs are accepted for processing into the system. It chooses processes from the ready queue and loads them into memory so they can be executed
union
allows for storage of many data types in the same memory space - can have numerous values, but only one can have a value at any given time
process
any program currently being executed
BIOS and UEFI
both firmware interfaces that initialize hardware during boot process and provide runtime services for O
global variable
can be accessed from any point of the program
encapsulation
class's variables or data are hidden from other classes and can only be accessed through member functions of the class in which they are declared
primary memory
computer memory directly accessible by CPU, made of DRAM and keeps track of data and instructions being processed - temporary
schedulers
computer programs that manage process scheduling in a variety of ways, responsibility is to choose which jobs to submit into the system and which processes to run - responsible to run processes from the CPU
secondary memory
contents first need to be transferred to primary memory before the processor can access it - permanent
relational algebra
define operators that transform one or more input relations into output
clock distribution network
distributes the clock signals throughout a chip to synchronize operations in sequential circuits - focus on minimizing skew (difference in arrival time of the clock signal) and ensuring low latency and power consumption
binary search
divide the search interval in half
deque
double-ended queue - can add and remove elements from both ends
atomicity
either the complete transaction occurs at once or it does not occur at all
polymorphism
existence of numerous versions of anything
variable scope
extent of the program code within which the variable can be accessed or declared or worked with
abstraction
gives only the most important elements while keeping the rest hidden
deadlock
group of processes is halted because each process is holding a resource and waiting for another process to obtain it
wild pointer
has not been initialized to anything
tuple
immutable, consume less memory
semaphore
integer, uses signaling mechanism (signaling mechanism)
consistency
integrity constraints must be fulfilled before and after the transaction to ensure that the database is consistent
queue
linear data structure - can remove elements from the front of the queue or add to the end of the queue
function overloading
modifying the signature, i.e., the number of parameters, the data type of the parameters, and the return type, allows for multiple definitions of the function
list
mutable, consume more memory
mutex
object, locking mechanic (lock or unlock)
durability
once a transaction has completed execution, the database updates and modifications are saved and written to memory and that they survive even if the system fails
sequential logic
output depends on current inputs and the previous state à memory (flip-flops or latches), driven by clock signal ... flip flops, counters, registers, FSM, memory units
combinational logic
output is determined only by the current inputs à no memory, instantaneous response, deterministic behavior
function overriding
overriding a base class function in a derived class with the same signature
dangling pointer
pointer pointing to a memory location that has been deleted
null pointer
pointer that points to nothing
void pointer
points to some data location in storage, which doesn't have any specific type
page fault in OS
program attempts to access data or code in its address space
procedural programming
program is divided down into little modules called functions - invokes procedures
OOP
program is divided into separate components called objects
thread
segment of a process, which means that a process can have multiple threads that are all contained within it - three states: running, ready and blocked
isolation
several transactions can take place at the same time without causing database state inconsistencies
virtual memory
storage allocation system that allows secondary memory to be addressed as if it were the main memory
medium term scheduler
swapping processes in the main memory. It clears the memory occupied by the processes
struct
user-defined data type that allows to combine data items of different types
declaration
variable or function can be declared an unlimited number of times, memory is not allocated during declaration
definition
variable or function can only be defined once, memory is allocated during definition
local variable
variables defined within a function or block
semaphores
variables used to coordinate the activities of multiple processes in a computer system
RAM
- Random Access Memory - volatile memory, whipped during power cycle
ROM
- Read-Only Memory - non-volatile, retains content even when power is turned off
UEFI
- Unified Extensible Firmware Interface - modern replacement for BIOS, developed in 2000s, uses 32-bit or 64-bit processor, supports GUI with mouse so easier to navigate
VLSI
- Very Large Scale Integration - process of creating ICs by combining thousands of transistors into a single chip
process synchronization
- coordinate of execution of multiple processes to ensure they access shared resources in a controlled and predictable manner - resolves race conditions and other synchronization issues in a concurrent
flip flop
- edge-sensitive device that changes its output state only on rising or falling edges of a clock signal - samples input data only during transition of the clock signal
major concepts of OOP
- inheritance - encapsulation - polymorphism - abstraction
latch
- level sensitive device that can change its output based on the input levels as long as the enable signal is active - retains its state until the input changes
types of schedulers
- long term scheduler - medium term scheduler - short term scheduler
full architecture of an out-of-order pipeline in simple terms
- out-of-order pipeline -- CPU architecture that allows instructions to be executed in an order different from how they appear in the program · Instruction Fetch (IF) Stage · Instruction Decode (ID) Stage · Instruction Issue Stage · Execution (EX) Stage · Write Back (WB) Stage · Retirement (Commit) Stage
how to regulate natural frequency to reduce risks?
- to avoid risks associated with resonant vibrations - risk assessment -- evaluate potential impact - finite element analysis -- simulations to predict how changes in design or materials will affect natural frequency - material selection -- select materials with better damping properties or adjust the stiffness of components to achieve the desired natural frequency - regular monitoring -- continuously assess and indicate potential issues
functions that an operating system performs
- user interface - maintains system functionality - security - error detection - memory management - device management - file management
short term scheduler
CPU scheduler. Its primary goal is to improve system performance in accordance with the set of criteria established