통신이란게 별 거 없다.
그냥 뭔가 주고 받는 것을 통신이라고 한다.
프로세스끼리 뭔가 주고 받는 갑다 하고 보자
• Processes within a system may be independent or cooperating
• Independent process cannot affect or be affected by the execution of another process
• Cooperating process can affect or be affected by the execution of another process
• Cooperating process can affect or be affected by other processes, including sharing data
• Reasons for cooperating processes:
1. Information sharing
2. Computation speedup
3. Modularity
4. Convenience
• Cooperating processes need interprocess communication (IPC)
• Two models of IPC
1. Shared memory
2. Message passing
운영체제 내에서 실행되는 병행 프로세스들은 독립적이거나 또는 협력적인 프로세스들일 수 있다.
프로세스가 시스템에서 실행 중인 다른 프로세스들과 데이터를 공유하지 않는 프로세스는 독립적
프로세스가 시스템에서 실행 중인 다른 프로세스들에 영향을 주거나 받으면 협력적이다.
프로세스 협력을 허용하는 환경을 제공하는 이유가 있다.
1. 정보 공유
여러 응용프로그램이 동일한 정보를 사용할 수 있잖아. 그래서 정보를 병행적으로 접근할 수 있게 해야한다.
2. 계산 가속화
특정 태스크를 빨리 실행하고자 한다면 그 태스크를 서브 태스크로 나누어서 각각의 서브태스크를 병렬적 실행하게해서 목표를 달성할 수 있다.
3. 모듈성
우리는 시스템 기능을 별도의 프로세스들 또는 스레드들로 나누어, 모듈식 형태로 시스템을 구성할 수 있다.
Advantages of process cooperation
• Information sharing
• Computation speed-up
• Modularity
• Convenience
협력적 프로세스들은 서로 데이터를 보내거나 받을 수 있는 프로세스 통신(IPC)기법이 필요하다.
일반적으로 프로세스 통신에는 공유 메모리(shared memory)와 메시지 전달(message passing)이 있다.
**왼쪽이 공유 메모리, 오른쪽이 메시지 전달이다
공유 메모리 모델에서는 협력 프로세스들에 의해 공유 되는 메모리 영역이 구축된다.
++프로세스들은 그 영역에 데이터를 읽고 쓰는 과정을 통해 정보를 교환한다.
// 저기다 올려놓으면 가져가고 가져다놓고 하는 교환대 역할같다.
메시지 전달 모델에서는 통신이 협력 프로세스들 사이에 교환되는 메시지를 통해 이루어진다.
**그림을 보고 생각하자
일반적으로 두 모델다 혼합해서 쓰인다. // 많은 시스템이 두 가지를 모두 구현한다.
** 메시지 전달 모델은 충돌을 회피할 필요가 없어서 적은 양의 데이터를 교환하는데 유리하다.
메시지 전달 시스템은 통상 시스템 콜을 사용하여 구현되므로 커널 간섭 등의 부가적인 시간 소비 작업이 필요하기 때문에 공유 메모리 모델이 메시지 전달보다 더 빠르다.
'컴퓨터(Computer Science) > 운영체제(Operation System)' 카테고리의 다른 글
CPU Scheduling criteria, 스케줄링 기준 [운영체제] (0) | 2020.06.02 |
---|---|
CPU Scheduling 스케줄링, 기본 개념 [운영체제] (0) | 2020.06.02 |
스레드 라이브러리?? Thread library (0) | 2020.05.31 |
다중 스레드 모델, Multithreading Models (0) | 2020.05.30 |
다중 코어 프로그래밍 (Multicore programming) (0) | 2020.05.30 |