# Operating Systems

{% hint style="info" %}
Much like [sql](https://interviews.woojiahao.com/other-technical-topics/system-design/sql "mention"), there is too much things to cover when talking about operating systems and most importantly, concurrency patterns. I have attached my notes from the operating systems module in NUS ([CS2106](https://nusmods.com/courses/CS2106/introduction-to-operating-systems)) for you to self-study
{% endhint %}

{% file src="<https://2726477159-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjAfNlXNVLzsC3J7sS0s2%2Fuploads%2FUtZ4eToTkm6ZOZxXO5hJ%2FCS2106_Finals_Revision.pdf?alt=media&token=507b10f2-1f0b-4819-9a09-f790437d6c7b>" %}
Notes
{% endfile %}

{% file src="<https://2726477159-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjAfNlXNVLzsC3J7sS0s2%2Fuploads%2FspWI6jJGthiecfs3GAGd%2FCS2106_Concurrency_Problems.pdf?alt=media&token=d45dacb9-15ac-4d18-a634-b74a39feab0f>" %}
Classical concurrency problems
{% endfile %}

Some of the other commonly asked questions include things like:

1. What is a deadlock?
2. What is a race condition?
3. What is the difference between deadlocks and race conditions?
4. How do you detect a deadlock?
5. How do you solve a deadlock?
6. What is paging?
7. What is a page fault?
8. Where are logs stored on a Linux system?
9. How do you deal with thread explosion?
