프로세스간 통신
지난주 복습
- 여러 프로세스들이 번갈아 사용하는 자원을 어던 시점에 어떤 프로세스에게 할당할지 결정하는 행위를
스케줄링이라고 하며 이를 통하여 시스템 성능을 극대화 한다. - 단계별 구분
- 장기, 단기, 중기 스케줄러
- 장기 스케줄러는 저장장치에 있는 프로그램을 선택하여 메모리에 적재하여 동작을 시작한다.
-
중기 스케줄러는 동작중인 프로세스들중에서 일부를 저장장치로 제외시키는 스와핑 동작을 수행하여 다중 프로그램의 정도를 조정한다.
- 정책별 구분
- 선점형 / 비선점형 스케줄링
-
한 프로세스가 자원을 보유하고 있을 때 다른 프로세스가 해당 자원을 가져올 수 없다면 비선점형이고, 해당 자원을 가져올 수 있다면 선점형이다.
- 알고리즘 구분
- 선입선처리(FCFS)
- 최소작업 우선 스케줄링(SJF)
- 우선순위(Priority)
- 라운드로빈(RR)
- 다단계 큐(MLQ)
- 다단계 피드백 큐(MLFQ)
- HRN
- 시스템 성능기준
- CPU 사용률 (CPU Utilization)
- 처리향(Throughput)
- 반환시간(Turn-around Time)
- 대기시간(Waiting Time)
- 응답시간/반응시간(Response time)
학습목표
- 프로세스들간의 통신 기법중에서 널리 활용되고 있는 기법들을 할용할 수 있다.
- 프로세스들간에 데이터를 주고 받는 예제 코드를 작성하여 프로세스간 통신 기법을 이해한다.
학습내용
퀴즈로 확인하기
정리하기
-
프로세스들은 서로 협력적인 작업을 수행하기 위해서 데이터를 주고 받는 작업이 필요하며, 유닉스 계역ㄹ의 운영체제에서는 이를 지원하기 위해서 파이프, FIFO, 세마포, 공유메모리, 메시지큐, 소켓 등을 제공한다.
- 시그널(signal)은 다양하고 중요한 이벤트를 프로세스에게 알려주는 수단으로 활용된다.
-
시그널을 받은 프로세스는 수행중이던 작업을 중지하고 시그널을 처리하며, 이를 정의한 별도의 시그널 핸들러를 정의 할 수 있다.
-
파이프(pipe)는 한 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 연결하는 방법이다.
-
피포(FIFO)는 이름을 가진 파이프라고도 하며 특별한 장치 파일로 존재한다. FIFO 파일을 생성한 이후에 데이터를 쓰거나 읽음으로서 프로세스간에 통신을 할 수 있다.
- 공유 메모리는 여러 프로세스가 함께 사용하는 메모리를 의미한다. 따라서 임의의 프로세스가 공유메모리에 데이터를 쓰면 다른 프로세스에서 해당 내용을 읽을 수 있다.