[AIFFEL] 8. 멀티태스킹 (Multitasking)

마팍·2021년 2월 3일
0

AIFFEL

목록 보기
9/12

멀티태스킹 (Multitasking)

우리는 동시에 여러가지 작업을할때 멀티를 한다고 한다. 이 멀티는 멀티태스킹의 줄임말이다. 이 멀티 태스킹은 인간에게만 국한되는것이 아니라 컴퓨터에게도 적용된다.
컴퓨터에게 있어 멀티태스킹은 2가지 동작방식으로 작동한다.

동시성 (Concurrency)

위 사진과 같이 딜러 한명이 두명의 플레이어에게 카드를 배분한다고 가정해보자.

딜러는 첫번째 플레이어에게 한장 - 두번째 플레이어에게 한장 - 첫번째 플레이어에게 다시 한장 - 두번쨰 플레이어에게 다시 한장과 같은 순차적인 방식으로 카드를 딜링할것이다.

이런식으로 순차적인 업무를 진행하는 동작방식을 동시성이라고 한다.

바운드 (Bound)

첫번째 플레이어가 카드를 받고있을때 두번째 플레이어는 자신의 카드를 받기전까지 대기 상태를 유지하고 있을것이다. 이와같이 업무를 처리하지 못한채 대기중인 상태를 "Bound 되었다"라고 한다.

동기 (Synchronized)

대기상태에 있는 두번째 플레이어는 아무런 행동도 하지 않고 자신의 차례가 올때까지 기다렸다.
이렇게 앞의 작업이 끝날때까지 대기상태를 유지하는 방식을 "동기 (Synchronized) 방식" 이라 한다.

비동기 (Asynchronous)

이번에는 두번째 플레이어가 자신의 차례를 기다리는 도중 웨이터에게 칵테일을 주문하고 옆사람과 대화도 나눈다.
이처럼 앞의 작업이 끝낼때까지 대기상태를 유지하지 않고 비순차적으로 다른 작업을 처리하는 방식을 "비동기 (Asynchronous) 방식" 이라 한다.

병렬성 (Parallelism)

성격급한 플레이어들의 항의로 카지노는 딜러 한명을 추가 고용했다.

이제 딜러 한명이 각 플레이어를 전담해가며 동시 다발적으로 카드를 배분한다.

이렇게 여러가지 업무가 동시 다발적으로 일어나는 동작방식을 병렬성이라 한다.

프로세스와 스레드

프로세스: 프로그램을 구동하여 프로그램 자체와 프로그램 상태가 메모리상에서 실행되는 작업 단위
스레드: 프로세스 내에서 실행되는 흐름 단위

비유를 하자면 "건축"이라는 프로그램 내에
"집 짓기"라는 프로세스가 있고
"지반 평탄화, 골자 세우기, 시멘트 붓기" 등의 업무 흐름 (스레드) 가 있다고 보면 된다.

profile
데린이입니다.

0개의 댓글