프로세스

프로세스 동기화 (Process Synchonization)
프로세스 동기화 영화 좌석을 예매할 때 하나의 좌석에 동시에 여러 사람이 접근할 수도 있다. 이 때, 좌석에 대해 동기화 문제가 해결되지 않는다면, 한 좌석을 여러사람이 예매하는 문제가 발생할 것이다. 프로세스 동기화는 여러 개의 프로세스(스레드)가 컴퓨터 내의 공유된 리소스에 접근하는 경우에 데이터의 일관성을 유지하기 위한 방식을 의미한다. 경쟁 상태 (Race Condition)과 임계 영역(Critical Section) 은행을 예시로 생각해보자. 은행에서 하나의 계좌에는 입금과 출금을 할 수 있다. 만약 동시에 하나의 계좌에서 입금과 출금이 동시에 이뤄진다면 어떻게 될까 ? 현재 Zayson의 통장에는 잔고가 1000원 남아있다. Process A가 1000원을 입금했다. 동시에 Process B..

프로세스, 스레드
프로세스 (Process) 프로그램은 실행중이지 않은 정적인 상태의 코드 파일이다. 운영체제는 프로그램을 실행 시키고 메모리에 올리는데 이를 프로세스라고 한다. 즉, 프로세스는 메모리에서 실행중인 프로그램의 작업이다. 프로세스는 프로그램이 메모리에 올라갈 때 독립된 메모리 영역을 할당(Code, Data, Heap, Stack) 받고 PCB라는 프로세스를 정보를 담는 블록을 받는다. 메모리 Code : 프로그램의 명령을 구성하는 코드 자체 메모리 영역 Data : static과 같은 정적 변수, 전역 변수, 배열 등을 갖는 영역 Heap : new 키워드 같은 동적으로 할당 되는 메모리 영역 Stack : 지역 변수, 파라미터, 리턴 값을 관리하는 메모리 영역 스레드 (Thread) 스레드는 프로세스의 ..