Linux/centOS

[CENTOS] Task

오늘도개발 2024. 12. 23. 10:46

1. Task 란? 

 

  - Linux 커널 관점에서 태스크는 실행 가능한 모든 작업을 나타내는 일반적인 용어

 

  - 프로세스와 스레드는 모두 태스크로 관리되며, 커널 내에서는 task_struct라는 데이터 구조로 이를 표현

 

  - 태스크는 사용자 명령으로 실행된 프로그램, 시스템의 백그라운드 작업, 그리고 데몬 프로세스를 모두 포함

 

 

 

2. Application (애플리케이션)

 

  - 애플리케이션은 특정 작업을 수행하기 위해 설계된 프로그램을 의미 (ex > 웹 브라우저, 텍스트 편집기)

 

특징:

  • 사용자와 직접 상호작용하며 인터페이스를 제공하는 경우가 많음
  • 파일 형태로 저장되며, 실행 가능한 바이너리(.exe, ELF 등)로 컴파일
  • 단일 애플리케이션은 여러 프로세스와 스레드 생성

 

예시:

  • 터미널에서 vim, firefox, gcc 등의 명령을 실행하면 해당 애플리케이션 실행
 
 

3. Script (스크립트)

 

  - 스크립트는 특정 작업을 자동화하기 위해 작성된 코드 파일 (Bash Script, Python, Perl, Ruby 등 스크립트 언어 사용)

 

특징:

  • 소스 코드 형태로 실행
  • 인터프리터가 코드를 한 줄씩 읽어 실행
  • 운영체제 작업, 파일 처리, 프로세스 관리 등 다양한 기능을 쉽게 구현 가능

 

용도:

  • 시스템 관리 작업 자동화
  • 배치 작업 수행
  • 애플리케이션 초기화 또는 환경 설정

 

 

4. Process (프로세스)

 

  - 프로세스는 실행 중인 프로그램의 인스턴스

 

  - 애플리케이션이 실행되면 운영체제는 해당 애플리케이션을 독립적인 프로세스로 관리

 

 

특징:

  • 각 프로세스는 고유의 PID(Process ID)를 가짐
  • 독립적인 메모리 공간을 사용
  • 부모-자식 관계를 가질 수 있음 (예: fork() 시스템 호출).

 

프로세스 상태:

  • Running: 실행 중
  • Sleeping: 대기 중
  • Stopped: 멈춤 상태
  • Zombie: 종료되었으나 부모 프로세스가 회수하지 않은 상태

 

예시 명령:

  • ps: 현재 실행 중인 프로세스 목록 확인
  • top: 실시간 프로세스 정보 표시
 
 

5. Daemon (데몬)

 

  - 백그라운드에서 실행되며 특정 서비스를 제공하는 프로세스를 의미

 

  - 사용자가 직접 상호작용하지 않지만, 시스템 및 네트워크 서비스의 핵심 역할 수행

 

 

특징:

  • 보통 시스템 시작 시 자동으로 실행
  • 프로세스 이름 끝에 d가 붙는 경우가 많음 (예: httpd, sshd).
  • 백그라운드에서 계속 실행되며 요청이 있을 때 작업 수행

 

예시:

  • sshd: SSH 서비스 관리
  • crond: 예약 작업(cron job) 관리
  • systemd: 시스템 및 서비스 관리

 

관리 명령:

  • systemctl start [daemon_name]: 데몬 시작
  • systemctl stop [daemon_name]: 데몬 중지
  • systemctl status [daemon_name]: 데몬 상태 확인

 

 

6. Threads (스레드)

 

  - 스레드는 프로세스 내에서 실행되는 작업 단위

 

  - 하나의 프로세스는 여러 스레드를 가질 수 있으며, 동일한 메모리 공간을 공유

 

특징:

  • 프로세스보다 가볍고, 실행 속도가 빠름
  • 스레드는 동일한 데이터와 리소스를 공유하기 때문에 통신 비용이 낮음
  • 스레드 간 동기화 및 충돌 방지(locking)가 필요

 

용도:

  • 병렬 처리 구현
  • 다중 작업 지원
  • 멀티스레드 서버 개발

 

예시:

  • 웹 서버는 각 클라이언트 요청을 처리하기 위해 스레드 생성
 
 

7. Job (작업)

 

  - Job은 사용자가 명령어를 실행하여 생성된 작업 단위를 의미

 

  - 작업은 포그라운드 또는 백그라운드에서 실행될 수 있음

 

 

특징:

  • 작업 ID(Job ID)를 통해 관리
  • &를 사용하면 작업을 백그라운드로 보낼 수 있음

 

관련 명령:

  • jobs: 현재 작업 목록 확인
  • bg [Job ID]: 작업을 백그라운드로 전환
  • fg [Job ID]: 작업을 포그라운드로 전환
  • kill %[Job ID]: 특정 작업 종료
 
 

8. 비교 정리

 

애플리케이션 사용자가 직접 실행하는 프로그램
스크립트 작업 자동화를 위해 작성된 코드 파일
프로세스 실행 중인 프로그램의 인스턴스
데몬 백그라운드에서 실행되는 서비스 프로세스
스레드 프로세스 내에서 실행되는 작업 단위
작업 사용자가 실행한 명령어의 실행 단위

 

 

'Linux > centOS' 카테고리의 다른 글

[CENTOS] ps Command  (0) 2024.12.23
[CENTOS] systemctl Command  (0) 2024.12.23
[CENTOS] Vim  (0) 2024.12.21
[CENTOS] Command, Pipes  (0) 2024.12.19
[CENTOS] File Soft Link / Hard Link  (0) 2024.12.18