1. 프로세스 프로세스라는 주제는 크게 두 가지 소주제로 나뉩니다. 프로세스 관리 프로세스: 하나의 프로세스에 대한 메모리 레이아웃, 프로세스 계층 스레드와 동시성: 하나의 프로세스는 내부적으로 여러 개의 실행 스레드를 가집니다. CPU 스케줄링: 실행되는 프로세스가 수십~수백개가 생길텐데, 어떤 프로세스를 우선으로 실행(처리)할까요? 🤔 프로세스 동기화 프로세스간 데이터 동기화: 경쟁 상태(race condition), lock-free 알고리즘 데드락: 요새 CPU는 멀티코어기 때문에 여러 프로세스가 병렬로 실행되는데, 이때 프로세스들끼리 서로가 가진 자원을 탐낸다면? 2. 메모리 메모리라는 주제는 크게 두 가지 소주제로 나뉩니다. 메인 메모리(RAM) 메모리 레이아웃: 프로세스마다 독립된 메모리 공..
1. 데드락이란? 데드락이란 둘 이상의 프로세스 혹은 스레드가 서로 상대방의 작업이 끝나기를 기다려 결국 이러지도 저러지도 못하고 무한정 기다리고만 있는 상태를 말합니다. 동시에 접근하면 안되는 공유자원에 접근할때 스레드는 Lock 기법을 이용합니다. 그러고 공유 자원의 사용이 끝났을 때 UnLock을 하는데, UnLock을 하기 전 교착 상태가 발생해 UnLock을 영원히 하지 못하는 상태를 보고 이름을 데드락으로 지은게 아닌가 생각해봅니다.. 🤔 2. 데드락 발생 조건 데드락은 아래 4가지 조건이 모두 만족될 시 발생합니다. 상호 배제 (Mutual Exclusion) - 공유 자원에 여러 프로세스가 동시에 접근할 수 없다. 점유 상태로 대기 (Hold and Wait) - 자원을 가지고 있는 상태에..
가상 메모리란? 물리적인 메모리 공간의 한계를 극복하기 위해 물리적인 메모리 공간만큼의 가상의 메모리공간을 확보하여 메모리 용량을 늘리는 기술. 가상 메모리는 하드 디스크의 용량을 떼서 사용하는 기술인데, 페이지(Page) 단위로 하드디스크-램을 swap하면서 이뤄진다. 장점 1. 큰 가상의 메모리공간을 확보할 수 있다. 2. 더 효율적인 메모리의 사용이 가능해진다. 3. 더 나은 멀티프로그래밍을 사용할 수 있게된다. 단점 1. 싱글 페이지 관리기술일때보다 테이블의 수와 여러 페이지들을 핸들링하기위한 오버헤드가 증가한다. (한마디로 신경써야할게 많아졌다.) 2. 작업의 주소공간에 대한 명시적인 제한이 없다. (이렇게되면 컨트롤하기가 힘들어진다.)