포스트

Process와 Thread

1. Process를 설명하기에 앞서…

하드웨어 (Hardware)

하드웨어란?
인터넷과 프로그램을 사용하고, 개발하기 위한 물리적인 장비들을 모두 통칭하여 일컫는 말.

컴퓨터를 구성하는 하드웨어

  • CPU - 사용자가 명령한 데이터를 계산하기 위한 두뇌 역할의 장비.
  • RAM - 사용하는 데이터를 CPU에 로드하고 계산에 용이하게 하기 위한 임시저장 장치.
  • HDD - 주로 하드디스크라고 말하며, 데이터를 반 영구적으로 저장하기 위한 창지
  • SSD - 하드디스크와 다르게 디스크가 아닌 플래시 메모리로 구성됨.
  • Main Board - 위에 있는 것들의 상호작용 및 내부 통신을 위한 기판같은 장치

하드웨어는 물리적인 “물건”이기 때문에 인터넷을 통한 다운로드 불가

운영체제(Operatinon System) = 커널(Kernel)

운영체제란?
하드웨어를 관리할 뿐 아니라 소프트웨어를 실행하기 위한 기반이 되는 거대한 프로그램을 의미.


운영체제의 역할(System call)

  • 프로세스 관리
  • 파일관리
  • 주기억장치 관리
  • 입출력 관리

운영체제의 종류

  • Linux - 유닉스에서 파생, 주로 커맨드 창(CLI)으로 관리하고 사용하는 운영체제의 성격
  • Mac OS - 유닉스 기반으로 개발된 운영체제
  • Windows - 초기부터 그래픽 유저 인터페이스(GUI)를 지향하며 개발됨.

소프트웨어(Software)

소프트웨어란?
하드웨어와 다르게 물리적으로 이루어지지 않은 프로그램 데이터이며, 하드웨어 없이 사용 불가능.


자주쓰는 소프트웨어

  • Internet Browser - Chrome, Firefox, Safari 등
  • Office Software - 한글, 엑셀, 워드 등
  • Editor - 메모장, VScode, Notepad++ 등

소프트웨어는 “데이터”이기 때문에 인터넷을 통한 다운로드가 가능!

2.Process와 Thread

메모리 관점에서 본 프로세스와 스레드

1. 프로세스(Process)

윈도우에서 실행되고 있는 프로세스 목록

Mac OS에서 실행되고 있는 프로세스 목록

간단히 설명하면 컴퓨터에서 소프트웨어(프로그램)을 실행(Task)하기 위해 사용하기 위해 CPU와 RAM에서 자원을 할당 받는데, 그것을 하나의 프로세스 인스턴스가 생성된다고 함.

멀티 프로세스

하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 함.

멀티 프로세스의 특징

  • 안정성이 좋다. 여러개의 자식 프로세스 중 하나에 문제가 발생해도, 다른 자식 프로세스에 영향이 확산 안됨.
  • 구현이 비교적 간단하고, 각 프로세스들이 독립적으로 동작하며 자원이 서로 다르게 할당됨.
  • 메모리 사용량이 많음.

2. 스레드(Thread)

한 프로세스 안에서 개별적으로 실행 되는 코드(Flow)를 스레드라고 함. 동시에 실행(Multi Threading)이 가능함.

  • 프로세스는 최소 1개의 스레드를 가짐.
  • 프로세스에 속한 모든 스레드는 프로세스의 가상 메모리(Virtual Memory)로 공간이 제약됨.
  • 각 Thread는 Stack이라는 자료구조로 메모리를 관리
  • Thread는 Heap을 공유함.

멀티 스레드

하나의 프로그램을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록함.

멀티 스레드의 특징

  • 응답성이 좋다. 프로그램의 일부분(자식 스레드)이 오류 또는 긴 작업으로 인해 중단되어도 프로그램이 계속적으로 수행됨.
  • 자원 공유가 쉽다. 스레드들은 부모 프로세스의 자원과 메모리를 공유 할 수 있음.
  • 프로세스를 할당하는 것보다 스레드를 할당하는 것이 비용이 적음.
  • 멀티프로세서 구조에서 각각의 스레드가 다른 프로세서에서 병렬로 수행될 수 있다.
  • 구현 및 테스트, 디버깅이 어렵다
  • 너무 많은 스레드 사용은 오버헤드를 발생시킨다.
  • 동기화 그리고 교착상태가 발생하지 않도록 주의해야 한다.
  • 자식 스레드 중 하나에 문제가 생긴경우 전체 프로세스에 영향을 줄 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.