Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
How it worked:
- I applied on WaterlooWorks
- Their recruiter reached out via email, and scheduled two interviews each for 45 minutes
First Interview
- What’s an MMU?
- What’s the point of virtual addressing?
- What’s a process?
- What are the different memory sectors for a process?
- Dynamic Library vs Static Library?
- What’s the concept of trashing?
- What’s Latency vs Bandwidth?
- We have a DDR memory controller, with clock speed of 1.5GHz and a 64-bit address bus.
- What’s the information bandwidth?
- What’s the latency? Can we ask about latency?
- What are the different things we need to think about when handling multiple threads?
- What’s API compatibility and what’s ABI compatibility?
- What’s the UNIX call for linking a library?
- What are different ways of linking libraries?
Second Interview
- What are the steps in the compilation process?
- What does a linker do?
- What does a loader do?
- What's the entry point to your program?
- What's the linker for gnu's C toolchain?
- What's the memory layout of a process?
- Is there any problems with the code snippet below?
char *hello(void) {
return "hello";
}
int main(void) {
char* hi = hello();
printf("%s\n", hi);
return 0;
}