프로세스

프로세스 동기화 여러 개의 프로세스가 공유 데이터에 동시 접근한 경우, 예상치 못한 문제 혹은 결과가 발생할 수 있다. Synchronization은 이러한 문제를 해결하기 위해 도입된 개념으로, 동시 접근을 아예 금지하거나 제약 조건을 둔다. 결과적으로 Data의 일관성을 보장한다. 생산자와 소비자 문제 예시 생산자 아이템 수를 나타내는 count값을 갖는다. count = buffer size이면 바쁜 대기를 수행한다. 여유 공간이 생기면 아이템을 생성하고 count를 1 증가시킨다. 소비자 buffer에 아무런 데이터가 없으면 바쁜 대기를 수행한다. buffer에 데이터가 존재하면 그 데이터를 소비하고 count를 1 감소시킨다. 생산자와 소비자가 개별적으로 동작하면 적절하게 동작하지만, 병렬적으로..
프로세스 스케줄링 프로세스 스케줄러는 CPU에서 실행 가능한 여러 프로세스 중 하나의 프로세스를 선택한다. 그 프로세스는 CPU의 자원을 할당받고 실행된다. 스케줄링 큐 프로세스 스케줄링은 큐잉 도표로 나타낸다. Job Queue 프로세스가 시스템에 들어오면 잡 큐에 놓인다. 잡 큐는 시스템 안의 모든 프로세스로 구성된다. Ready Queue 준비 완료 상태이며 주 메모리에서 실행 대기 중인 프로세스가 위치하는 장소이다. CPU를 할당(dispatch)받으면 Ready Queue에서 제거한다. Ready Queue는 일반적으로 연결 리스트이다. 각 노드는 PCB이다. Ready Queue의 헤더는 리스트의 첫번째와 마지막 PCB를 가리키는 포인터를 갖는다. 각 PCB는 Ready Queue에 있는 다음..
Inter-Process Communication 개념 프로세스는 시스템으로부터 자원을 할당받는 하나의 독립된 개체이다. 본래 프로세스는 할당된 자원(메모리) 범주 내의 정보만 접근할 수 있으며, 이를 벗어나는 경우 Segmentation Fault 등의 오류가 발생한다. 이는 커널이 프로세스의 안정성을 위해 다른 프로세스로 접근하는 것을 막기 때문이다. pipe 통신을 위한 메모리 공간(버퍼)을 생성하여 프로세스가 데이터를 주고받는 기법 각 프로세스가 Read only, Write only 모드로만 동작한다. 통신이 필요할 때마다 파이프를 생성해야 하기 때문에 자원의 낭비가 심하다. 100개의 프로세스가 2개의 파이프로 서로 통신하면 100P2 = 9900개의 파이프가 생성된다. pipe 관련 syst..
감동이중요해
'프로세스' 태그의 글 목록