Skip to content

Abhijjith/Comp-Arch-Embedded-Interview-Resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Comp-Arch-Embedded-Interview-Resources

A running compilation of all resources and interview questions that have been asked in the recent times.


Comp Arch concepts at a high level that has been tested

  • 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

Ways to stand out

  • Deep understanding of Arch simulators, emulators, design flow and synthesis process, test benches, workload and benchmarking

Optional

  • DRAMs, interconnects and topology

SW Concepts and Programming

Linked list

  • 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

Arrays

  • 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

Hashmap

  • 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

Stack and Queue

  • implement as an array and linked list,
  • Implement stack using queues and queue using stacks
  • Valid parentheses
  • Circular buffer/Ring buffer

Sorting

  • Selection sort
  • Bubble sort
  • Insertion sort
  • Merge sort
  • Quick sort

Searching

  • Linear search
  • Binary search

Bit Manipulation

  • 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

Embedded specific

  • 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

C++

  • 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

About

A running compilation of all resources and interview questions that have been asked in the recent times.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published