3. 프로세스 스레드

프로세스 스레드란 무엇인가요?

단일 스레드 (single-threaded) 와 다중 스레드 (multi-threaded) 라는 용어를 들어보셨을 수 있습니다. 스레드는 프로세스 내의 실행 단위이며 종종 "경량 프로세스 (lightweight process)"라고 불립니다. 프로세스는 자체 격리된 시스템 리소스를 가지고 작동하는 반면, 동일 프로세스 내의 스레드들은 메모리와 같은 이러한 리소스를 공유할 수 있습니다. 이러한 공유 리소스 모델은 별도의 프로세스 간 통신보다 스레드 간 통신을 훨씬 빠르고 효율적으로 만듭니다.

단일 스레드 대 다중 스레드

모든 프로세스는 최소한 하나의 스레드를 가집니다. 스레드가 하나만 있는 프로세스를 단일 스레드 프로세스라고 하며, 둘 이상 있는 프로세스를 다중 스레드 프로세스라고 합니다.

예를 들어, 최신 텍스트 편집기를 사용할 때, 이는 단일 프로세스로 실행될 수 있습니다. 하지만 해당 프로세스 내에서, 하나의 스레드는 키보드 입력을 관리하고 다른 스레드는 맞춤법 검사나 자동 저장과 같은 작업을 백그라운드에서 수행할 수 있습니다. 이러한 동시 실행은 애플리케이션이 더 반응성이 좋게 느껴지도록 만듭니다. 여러 관련 작업을 위해 여러 프로세스를 시작하는 것보다 여러 스레드를 사용하는 것이 종종 더 효율적입니다.

ps 명령어로 스레드를 표시하는 방법

실행 중인 프로세스와 해당 스레드를 검사하려면 ps 명령어를 사용할 수 있습니다. ps에는 많은 옵션이 있지만, 스레드를 표시하는 일반적인 방법은 m 플래그를 사용하는 것입니다.

pete@icebox:~$ ps m
  PID TTY      STAT   TIME COMMAND
 2207 pts/2    -      0:01 bash
    - -        Ss     0:01 -
 5252 pts/2    -      0:00 ps m
    - -        R+     0:00 -

출력 해석

위 출력에서 PID(프로세스 ID) 가 있는 줄은 주 프로세스를 나타냅니다. 바로 아래에 있으며 PID 대신 대시 (-) 가 있는 줄은 해당 프로세스에 속한 스레드를 나타냅니다. 이 예시에서 bashps m 프로세스는 각각 하나의 주 스레드만 나열되어 있으므로 단일 스레드입니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽을 만듭니다! Linux 프로세스 및 관리에 대한 이해를 강화하기 위한 실습 랩이 있습니다.

  1. Linux 프로세스 관리 및 모니터링 - 이 랩에서는 Linux 시스템에서 프로세스를 관리하고 모니터링하는 필수 기술을 배웁니다. 포그라운드 및 백그라운드 프로세스와 상호 작용하는 방법, ps로 검사하는 방법, top으로 리소스 모니터링하는 방법, renice로 우선순위 조정하는 방법, kill로 종료하는 방법을 살펴봅니다.

이 랩은 실제 시나리오에서 프로세스 관리 개념을 적용하고 시스템 활동 모니터링에 대한 자신감을 키우는 데 도움이 될 것입니다.

퀴즈

모든 프로세스는 단일 스레드로 시작한다는 것이 사실입니까, 거짓입니까?