2.2.4 운영체제 정리
운영체제는 원론적인 내용이 많아 입문자가 공부하기에는 학습 난도가 상당히 높습니다. 그러나 운영체제를 깊이 이해할수록 시장에서 인정받는 개발자로 성장할 수 있습니다. 예를 들어 백엔드 프레임워크 기술인 Node.js(노드)는 싱글스레드를 사용하고, 스프링 부트는 멀티스레드를 사용합니다. 따라서 스레드의 개념을 이해하고 싱글스레드와 멀티스레드의 차이를 알면 백엔드 개발 시 동시성 프로그래밍을 효과적으로 할 수 있습니다.
이 절에서는 운영체제의 프로세스 관리 기능을 살펴봤는데, 좀 더 깊이 있게 공부하고 싶다면 다음 키워드를 검색해보기 바랍니다.
• 뮤텍스(mutex)
• 세마포어(semaphore)
• 데드록(deadlock)
• 기아 현상(starvation)
• 식사하는 철학자 문제(dining-philosopher problem)
• 피터슨 알고리즘(Peterson’s algorithm)
• CPU 스케줄링 알고리즘: FCFS, SJF, SRF, RR