Concurrency

2020.06.14

이장희

목차

  • Keyword
  • History of Concurrency
  • Concepts of Concurrency

Keyword

Process And Thread

Process

  • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
     
  • 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)
     
  • 운영체제로부터 시스템 자원을 할당받는 작업의 단위

Thread

  • 프로세스 내에서 실행되는 여러 흐름의 단위
     
  • 프로세스의 특정한 수행 경로
     
  • 프로세스가 할당받은 자원을 이용하는 실행의 단위

Concurrency and Parallelism

Concurrency and Parallelism

동시성은 한번에 여러 행동을 다루는 것을 의미합니다.

병렬성은 같은 시간동안 여러 행동을 하는 것을 의미합니다. 

History of Concerrency

무어의 법칙

반도체의 집적회로 성능은 2년마다 2배로 증가한다

멀티 코어 프로세서

암달의 법칙

프로그램에서 순차적인 방식으로 작성할 수 밖에 없는 부분이
얼마나 되는지에 따라 성능 향상의 한계가 정해진다. 

암달의 법칙

암달의 법칙

Concepts of Concurrency

Race Condition

레이스 컨디션은 둘 이상의 작업이 올바른 순서로 실행되어야
하지만 프로그램이 그렇게 작성되지 않아서
이 순서가 유지 되는 것이 보장되지 않을 때 발생한다.

Race Condition

Race Condition

원자성 이란?

 무언가가 원자적(atomic) 이거나 원자적인 속성을 가진다면,
이는 동작하는 컨텍스트 내에서 나누어지거나
중단되지 않는다는 것을 의미합니다.

원자성 이란?

i++

메모리 접근 동기화

메모리 접근 동기화

메모리 접근 동기화

1. Dead Lock

Dead Lock

2. 기아 상태(Starvation)

기아 상태(Starvation)

어떤 동시 프로세스가 작업을 수행하는데
필요한 리소스를 얻을 수 없는 모든 상황을 의미합니다.

기아 상태(Starvation)

Go 에서의 동시성 처리

동시성

By yesdoing

동시성

  • 146