컴퓨터공학/운영체제 2

동시성(Concurrency)과 병렬성(Parallelism)

동시성/병행성(Concurrency) 하나의 코어(CPU)가 여러 스레드를 번갈아가며 작업을 수행하는 것입니다. 한꺼번에 여러 작업을 다룹니다. 아래의 방법을 통해서 교착상태(Deadlock)에 빠지지 않도록 주의해야 합니다. 상호배제, 임계 영역, 동기화 TCB를 바탕으로 Context Switching이 발생합니다. 병렬성(Parallelism) 여러 개의 코어(CPU)가 각각 물리적으로 작업을 수행합니다. 한꺼번에 여러 작업을 처리합니다. PCB를 바탕으로 Context Switching이 발생합니다.

스레드(Thread)와 프로세스(Process)

소개 스레드 프로세스 내부의 흐름 공유자원(code, data, heap)과 개별자원(stack)이 있음 TCB에 상태정보 저장 프로세스 프로그램 각각 독립된 메모리 영역이 있음(code, data, stack, heap) 서로 간 메모리 영역을 침범할 수 없음 프로세스 당 최소 1개의 스레드가 있음 PCB에 상태정보 저장 멀티 프로세싱 CPU가 여러 개가 존재하여 1개 이상의 프로세스를 동시에 처리하는 것입니다.(병행성) 메모리 침범 문제가 OS 차원에서 해결되어 메모리의 독립성이 보장됩니다. 각 프로세스가 메모리 상에 독립적인 영역을 소유하여 작업량이 많을수록 오버헤드가 발생합니다. Context Switching으로 인하여 성능 저하가 발생합니다. 멀티 스레딩 1개의 프로그램에서 여러 스레드가 각각..