→ 병렬 컴퓨팅에서, 어느 한계에 다다르면 더 이상 컴퓨터 속도 증진 X
병행 프로그래밍은 하나의 cpu(메모리)에 하나의 프로세스가 죽치고 있으면 다른 프로세스가 사용할 수 없기 때문에, 시간별로 각각의 프로세스가 나눠서 적용되는 프로그래밍.
병렬 프로그래밍은 요즘 멀티코어(여러 개의 cpu)가 많아지면서 등장한 것으로, 여러 개의 cpu에서 동시에 여러 개의 프로세스를 함께 처리하는 것.
→ process 를 1,2,3,4로 나눈다고 했을 때, 컴퓨터는 각 시간마다 1,2,3,4 를 번갈아 실행되게 하는데, 이 과정이 너무 빠르기 때문에 우리는 컴퓨터가 동시에 일을 처리하는 것으로 느낄 수 있다.
그런데 이렇게 바뀌는 과정에서 이전 Process 가 어디까지 처리했는지, 어디 Process 까지 진행했는지 아는 것이 필요하고, Process 를 바꾸는 과정이 필요하데, 이를 컨텍스트 스위칭이라고 한다.
→ 각기 다른 Process 는 메모리 크기는 다를지라도 같은 구조의 메모리로 구성은 똑같고, 독립적인 만큼 각각의 메모리 공간의 가지면서 다른 공간에는 접근할 수 없다.