시작하기 전에 데스크톱 컴퓨터, 노트북, 스마트폰에는 모두 운영체제가 설치되어 있다. 대표적인 운영체제: 윈도우, macOS, 리눅스, 안드로이드, iOS 컴퓨터 부품들은 운영체제라는 특별한 프로그램의 지휘하에 작동한다. 컴퓨터 부품들을 관리하고, 개발한 프로그램들이 올바르게 실행되도록 돕는다. ✅ 운영체제란? 모든 프로그램은 하드웨어를 필요로 한다....
프로세스: 실행중인 프로그램 프로그램은 실행되기 전에 그저 보조기억장치에 있는 데이터 덩어리일 뿐이다. 보저기억 장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 이러한 과정을 '프로세스를 생성한다'라고 표현한다. ✅   프로세스 직접 확인하기 윈도우: 작업 관리자의 [프로세스] 탭에서 확인가능 유닉스: ps...
모든 프로세스는 운영체제로부터 자원을 할당받는다. 프로세스마다 필요로 하는 자원은 각기 다르지만, 모든 프로세스가 공통으로 사용하는 자원이 있다면 그건 CPU이다. 따라서 운영체제가 프로세스에게 분배하는 자원 중 가장 중요한 자원은 CPU이다. ✅ CPU 스케줄링 개요 프로세스들에게 공정하고 합리적으로 CPU 자원을 할당하기 위해 운영체제는 어떤 프로...
✅   동기화란 > 운영체제의 프로세스 관리 서비스 중 가장 중요한 것은 스케줄링과 동기화이다. 동시다발적으로 실행되는 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고 받기도 한다. 이렇게 협력하여 실행되는 프로세스들은 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화(Synchronization)되어야 한다...
✅   교착 상태란 프로세스를 실행하기 위해서는 자원이 필요한데, 두 개 이상의 프로세스가 각자 자기가 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더 이상 진행할 수 없는 교착상태가 된다. 식사하는 철학자 문제 식사하는 철학자 문제 dining philosphers problem 는 교착 상태를 설명하기 위한 아주 고전적이고 재밌는...