A running compilation of all resources and interview questions that have been asked in the recent times.
- Scalar and Superscalar pipelines - out of order - Scoreboarding, Tomasulu, ROBs, LSQs
- Branch prediction - Static and dynamic, state of art ones (very rarely), sometimes quick numericl problems were also asked
- Prefetching
- Cache coherency - Can we remove some states and still maintain coherence kind of questions and explain the behaviour
- Virtual memory
- OS stuff
- Caches - predict cache parameters by writing test cases in assembly
- Memory consistency
- SIMD, Vector, GPUs, VLIW
- Deep understanding of Arch simulators, emulators, design flow and synthesis process, test benches, workload and benchmarking
- DRAMs, interconnects and topology
- Determine if there is a cycle or not
- If there is a cycle, return the node where the cycle begins
- Find the node where two linked lists intersect
- Remove Nth node from end of the list
- Reverse linked list
- Remove linked list elements of a given value
- Group all odd nodes and even nodes together in order
- Palindrome linked list
- Merge two sorted linked lists
- Insert into a cyclic sorted linked list
- Rotate linked list by K places
- XOR linked list
- Reverse linked list in blocks of K
- Find pivot index (where sum of numbers to left = sum of numbers to right)
- Diagonal traverse and print
- Spiral matrix
- Implement strstr()
- Two pointer technique - reverse string, array partition
- Two pointer - one fast runner, one slow runner - remove element in one scan, max consecutive 1's, minimum size subareay sum, rotate array
- Reverse words in a string - word by word, reverse within a word and maintain the order
- Remove duplicates from sorted array
- Move all zeroes to the end
- Max sub array sum - DP
- Find K closest elements to a given value
- 2 sum (return indices of 2 numbers such that they add up to a specific target)
- 4 sum
- Find all duplicates
- Intersection of 2 arrays
- Isomorphic strings
- First unique character in a string (one pass, two pass etc)
- Group anagrams
- Valid Sudoku
- Longest substring without repeating characters
- LRU cache
- implement as an array and linked list,
- Implement stack using queues and queue using stacks
- Valid parentheses
- Circular buffer/Ring buffer
- Selection sort
- Bubble sort
- Insertion sort
- Merge sort
- Quick sort
- Linear search
- Binary search
- Swap bits in odd and even positions
- Power of 2
- Set, clear and toggle i'th bit
- Find position of the only bit that is set
- Count no of set bits in logN time
- Add 2 nos without arithmetic operators
- Find the only no that appears once
- Set all bits in a given range
- Compute 2's complement
- Position of right most bit set
- Isolate the right most bit set
- Toggling right most bit set
- Position of left most bit set
- Swap 2 nos without using temporary vble
- Reverse the order of bits in a no
- Modify a bit at a given position to a 1 or a 0
- Boot sequence
- Causes of segmentation fault and how to overcome it
- Differences between fault, abort and trap
- Compiler, assembler, linker, loader
- Volatile, pre processor, pragmas, const
- Fine grained vs coarse grained multithreading
- Virtual memory, paging, thread vs process
- Implement mutex using test and set, load linked and store conditional,
- Mutex vs semaphore
- Reader writer mutex
- Producer consumer
- Strict padding alignment
- Endianess - program to figure out the endianess, concert from big endian to little endian
- Implement memcpy, memmove, strstr, strcpy, atoi, malloc, free etc (all those standard library operations)
- Aligned malloc
- VIPT, TLBs , page faults
- Interrupts, exceptions, deadlocks, priroity inversion and inheritance
- HW breakpoint vs SW breakpoint
- SPI vs UART vs I2C
- Matrix multiplication, cache blocking, tiling, Gemm, rotation of matrices etc
- Bankers Algo, buddy system memory allocation, inverted paging
- Spinlocks, conditional variable
- Task scheduling, thrashing, cycle stealing, race conditions
- Queues, FIFO, Mailbox,
- Belady anomaly, philosopher dining problem
- Security : digital signing, hash, encryption
- Firmware update
- Unit testing vs integration testing
- RTOS vs bare metal
- HW timer : given HW timer, build an API to implemt a SW timer
- Function pointers and callbacks
- New, delete
- OOPS theory - Abstraction, inheritance, polymorphism and encapsulation
- Inline
- Virtual functions, vptr and vtable
- Friend class and function
- Virtual base class, abstract class
- Fucntion pointers
- Templates, template specialization, object slicing
- Deep vs shallow copy
- Copy constructors, constructor vs destructor
- Overloading vs overriding operations
- Different types of casting
- Static keyword, static fucntion
- Pointers vs references
- lvalue and rvalue
- Smart pointers