1.What is process? 프로세스 : 실행중인 프로그램 즉, 디스크에 있는 프로그램이 메모리에 로드되면 프로세스가 된다 프로세스는 스택(Stack), 힙(Heap), 데이터(Data), 코드(Code)로 나뉜다. 하나의 프로그램이 여러 프로세스가 될 수 있다.
스레드(Thread)는 CPU 수행의 기본 단위 또는 프로세스 안의 제어권의 흐름이다. 스레드가 수행되는 환경을 Task라고 부르는데, 전통적인 프로세스는 하나의 스레드가 있는 Task와 일치한다. 한 프로세스가 하나의 스레드를 이용하여 한 번에 한 작업만 수행하는 것
스케줄러(Scheduler)는 언제, 어떤 프로세스를 선택해서 CPU에서 실행시키는지 선택하는 모듈(Module)이다. 멀티프로그래밍의 목적이 CPU 효율 극대화이므로 적절한 스케줄링이 필요하다. 기본적으로 프로세스는 CPU만 사용하는 단계(CPU burst)와 I/O
Need for Process Synchronization 공유 데이터에 동시에 액세스하면 데이터 불일치가 발생할 수 있다. 데이터 일관성을 유지하려면 협력 프로세스의 orderly 실행을 보장하는 메커니즘이 필요 생산자와 소비자가 동시에 버퍼를 업데이트하려고 하면