티스토리 뷰


라뗴는 말이야


옛날 컴퓨터를 생각해보자!!

 

맘에드는 컴퓨터 게임을 찾아서 다운을하려는데

키보드도 마우스도 안먹힌다..

 

몇분에 걸쳐서 이게 다 받아질때까지 컴터가 먹통...

 

  • 게임 다운로드하는 작업
  • 마우스 키보드로 입력받는 작업
  • 브라우저를 돌아다니는 작업

컴퓨터가 프로세스 여러개를 함께 돌리는 작업 멀티 태스킹이 가능해지기전까지는!!!

 


멀티태스킹


오늘날은 운영체제가 여러개의 프로세스를 함께 돌리고있다.

이렇게 exe가 붙여져있는걸 프로그램이라고함

 

프로그램이 실행되서 돌아가는 상태! 컴터가 일하고있는 상태 = 프로세스

 

여러 프로세스를 함께 돌리는 작업은 동시적,병렬적, 또는 이두개의 혼합

동시성 :  여러개의 프로세스 하나가 이거조금하고 이거조금하고 여러작업을 돌면서 일부분씩 진행

이렇게 진행중인 방법을 바꾸는거 = Context Switching

알고리즘 개쩔어서 기똥차게 빨리 돌아가서 휴먼들은 이 프로세스들이 동시에 진행되는줄암 

ㅋㅋㅋㅋ

병렬성 : 프로세스 하나에 코어 여러개가 달려있음 그래서 각각 동시에 작업들을 수행함

듀얼 코어 x2 쿼드코어 x4 옥타코어x8 이런 명칭이 붙는 멀티코어 프로세스가 달린 컴퓨터에서 할수있는 방식!

 

CPU의 속도가 발열들의 제약때문에 예전만큼 빠르게 발전하지 못하게되자

그대안으로 코어를 여러개 달아 작업을 분담시킴

 

암튼 이제 멀티태스킹이 가능해지긴함

 


쓰레드


브라우저도 하나의 프로그램!

프로그램이 돌면서 하나의 프로세스가 진행되고 있다.

브라우저가 돌면서도 게임다운도되야하고 다른페이지들도 돌아다녀야되고

유큐브 영상의 데이터를 받아오면서 받아진 데이터로 영상재생도 되야함

 

한 프로세스 내에서도 여러갈래의 작업들이 동시에 진행되야함

이 갈래? THREAD

 

메모리 =조리대

프로세서 = 요리사

 

대량주문이 들어오는 이식당에서

끊임없이 만들어내는 요리 메뉴 하나하나가 프로세스

 

컴퓨터놈들은 프로세스마다 자원을 분할해서 할당함

라면 끓이는섹션, 김밥만드는 섹션, 햄버거 만드는 섹션

혼자 돌아댕기면서 동시적으로 하든

여럿이서 병력적으로 하든

 

혹은 이들을 섞어서 하든 메뉴를 만들어내는거

 

 

 

햄버거를 만드는 프로세스에서는

패티굽는동안 야채얹고 소스뿌리는 스레드도 진행될수있음

 

 

한메뉴의 스레드들은 같은 조리대에서 진행

프로세스들은 컴퓨터의 자원을 분할해서 쓰지만

스레드는 프로세스마다 주어진 전체자원을 함꼐 사용함

 

 

=> 단점 : 프로세스 안에서 공유되는 변수에 스레드 두개가 동시에 손을댐 = 에러물

예를들어 어떤 버튼을 누를때 숫자하나가 올라감 스데드둘이 버튼을 동시에 누르면? 10번씩? 20되야되는데 10이나옴

동시에누르면 숫자가 1만올라감 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함