is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.
CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.
Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.
Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.
> What is a process and what is a thread?
- comonad February 15, 2012A process is a part of a program; it has its own execution context, including access rights, memory, open file handles, an own process id and that process id of its parent/creator.
Processes can share memory. If their parent process gets killed, they will be killed, too; if the parent just terminates, the new parent will be the init process.
There are two different kinds of threads: The "kernel thread" is a lightweight process that shares at least its memory with other threads, which makes it a part of the same running program. The "user thread" is a lightweight thread, which can run with other user threads in the same kernel thread. User threads are a design by libraries and programming languages, and are not part of the operating system.
Processes contain kernel threads, which contain user threads.
Processes do not contain other processes but can create child processes.
The first kernel thread /is/ the process, others are some kind of child processes.
User threads are self-sheduled, they have to switch voluntarily, iff they run in the same kernel thread; but they can be designed to be able to migrate between kernel threads. Processes and kernel threads are sheduled by the kernel and can run in parallel on multicore cpus or even on different machines.
> How do you prevent deadlocks?
By designing thought-out, probably using
spin locks, other locks, atomic operations, and STM (Software Transactional Memory) mechanisms.