Computer Science

프로세스? 스레드?

연_우리 2022. 2. 17. 21:30
반응형

목차

     

    프로세스?   "현재 실행중인" 프로그램

    단일 프로세스 : 한번에 하나의 프로그램만 실행된다.

    단점 : 크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다.

     

     

     

    멀티 프로세스 : 여러 프로그램을 번갈아가면서 처리하자 (시간제한 없음, 아직은 동시처리 아님)

    여러 프로그램을 메모리에 올려서 동시에 사용할 수 있도록 하였다.

    아무래도 CPU의 처리속도가 빠르다보니 번갈아가면서 처리하는 것이 우리 눈에는 "동시에" 처리되는 것으로 보이지만

    실제로 "동시에"는 아니다!

     

    단일 프로세스의 단점(크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다)을 개선했다.

    멀티 프로세스의 단점 : 앞선 프로세스의 CPU사용시간이 길어지면 다른 프로세스는 계속 대기해야한다..

     

     

     

    멀티태스킹 : 여러 프로그램을 번갈아가면서 처리하자 (시간제한 있음, 아직은 동시처리 아님)

    프로세스가 작업할 수 있는 시간을 쪼개고, 시간이 끝나면 다음 차례가 올때까지 기다린다.

     

    멀티 프로세스의 단점(앞선 프로세스의 CPU사용시간이 길어지면 다른 프로세스는 계속 대기해야한다)을 개선했다.

     

    현재까지의 아쉬운 점 : 

     - 하나의 프로세스가 동시에 여러작업을 수행하지는 못한다.

     - Context Switching은 무거운 작업이다.

     - 프로세스끼리의 데이터 공유가 어렵다.

     

     

    스레드? 프로세스 안에 여러 작업자를 만들어서 동시에 작업하자

    1명이 3가지 역할을 가지고 있기보단, 3명이 1가지 역할을 맡는 것 처럼

    스레드는 여러 작업 중에 하나를 맡아 할 사람을 추가하는 것이다.

     

    기존의 프로세스 개념만 있었을때는 프로세스 자체가 작업을 처리하는 단위였지만, 

    이제 프로세스는 스레드를 감싸는 "컨테이너"의 개념이 되었고

    스레드가 작업을 처리하는 단위로 바뀌었다.

     

     - 프로세스는 1개 이상의 스레드를 가질 수 있다. (무조건 일꾼은 1명은 있어야지..)

     - 스레드들은 자신이 속한 프로세스의 메모리 영역을 공유해서 사용한다.

     - 스레드들끼리의 Context Switching은 가볍다

     

    "하나의 프로세스가 동시에 여러작업을 수행하지는 못한다" 를 개선했다.

     

    CPU 1개(코어 1개), Process 1개, Thread 2개인 경우 : 멀티 태스킹처럼 수행한다. (번갈아서 작업)

    스레드가 있어도 코어가 1개이면 멀티태스킹처럼 번갈아서 작업이 이루어진다. 동시처리가 아니다!!

     

     

     

    멀티 스레딩 : 하나의 프로세스가 여러 스레드로 동시에 작업 실행 (찐❗ 동시에)

    코어가 2개인 경우에 스레드가 코어 1개씩 잡아서 작업한다.

    이제 진짜 말 그대로의 "동시에"가 가능해진 것!

     

     

     

    멀티 프로세싱 : 2개 이상의 코어나 프로세"서"를 활용하는 시스템 

    프로세"스" 아님! 

     

     

     

     

    정리와 비유

     

    카페로 생각해보자.

     

    단일 프로세스 : 종업원 1명

            A고객의 주문을 받고 커피를 만들어준다.

            A고객의 커피는 24시간 후에 완성되었다.

            종업원은 그제서야 B고객의 주문을 받고 커피를 만들어준다.

     

    멀티 프로세스 : 종업원 1명

            A고객의 주문을 받고 커피를 만드는 도중에 B고객의 주문을 받는다. 

            A고객의 커피가 완성되지 않으면 B는 계속 기다려야한다.

            A고객의 커피가 24시간 후에 완성되었다면 A고객은 24시간 후에 커피를 마실 수 있고

            B고객의 커피는 24시간이 지나서야 만들기 시작한다 (...)

     

    멀티 태스킹 : 종업원 1명

            A고객의 주문을 받고 커피를 만드는 도중에 B고객의 주문을 받는다.

            A고객의 커피 10초, B고객의 커피 10초씩 번갈아 작업하여 먼저 완성된 커피를 제공한다.

     

    멀티스레딩 : 종업원 2명 이상. 주문받는 사람, 커피만드는 사람으로 역할을 구분했다.

            주문받는 사람은 주문만 받는다.

            커피만드는 사람은 커피만 만든다.

            주문받기와 커피만들기가 동시에 가능해졌다.

     

     

     

     

    이 내용을 공부하다가 좋은 글도 찾았당

     

    https://yozm.wishket.com/magazine/detail/1269/

     

    레스토랑에 비유해서 알아보는 운영체제 | 요즘IT

    오늘은 간만에 좀 흥미로운 주제로 글을 써보고자 합니다. 바로 운영체제입니다. 그런데 이제 뜬금없이 레스토랑을 곁들인…이 주제를 선택한 이유는 지금 운영체제 수업을 듣고 있어서 그런

    yozm.wishket.com

     

    반응형
    • 네이버 블러그 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 구글 플러스 공유하기
    • 카카오톡 공유하기