<공부 주제>
Linux 프로세스 개념
<공부한 내용 정리>
Linux에서 프로세스(Process) 는 실행 중인 프로그램을 의미한다.
단순히 파일로 존재하는 프로그램이 아니라, 메모리에 올라가서 CPU 자원을 사용하며 동작 중인 상태가 프로세스다.
Linux는 다중 작업(Multi-tasking) 운영체제이기 때문에 여러 프로세스가 동시에 실행될 수 있다.
프로세스의 기본 개념은 다음과 같다.
- 프로그램: 디스크에 저장된 실행 파일
- 프로세스: 실행 중인 프로그램
- 하나의 프로그램 → 여러 프로세스 가능
예를 들어, 같은 프로그램을 여러 번 실행하면 각각은 서로 다른 프로세스로 동작한다.
프로세스의 구성 요소
프로세스는 다음과 같은 정보를 가진다.
- PID(Process ID) : 프로세스 고유 번호
- 부모 프로세스(PPID) : 해당 프로세스를 실행한 프로세스
- 상태(State) : 실행, 대기, 종료 등
- 자원 정보 : CPU, 메모리 사용량
Linux에서는 모든 프로세스가 PID 1번 프로세스를 기준으로 연결된다.
프로세스 상태
프로세스는 실행 중에도 상태가 바뀐다.
대표적인 상태는 다음과 같다.
- 실행(Running)
- 준비(Ready)
- 대기(Waiting)
- 종료(Terminated)
Linux는 CPU를 여러 프로세스에 빠르게 분배하여 동시에 실행되는 것처럼 보이게 만든다.
포그라운드와 백그라운드
Linux에서는 프로세스를 포그라운드(Foreground) 와 백그라운드(Background) 로 실행할 수 있다.
- 포그라운드: 터미널을 점유하며 실행
- 백그라운드: 터미널과 독립적으로 실행
<예제 / 실습 코드>
현재 실행 중인 프로세스 확인
ps
전체 프로세스 확인
ps -ef
실행 중인 프로세스를 백그라운드로 실행
sleep 60 &
<헷갈렸던 점>
- 프로그램과 프로세스를 같은 개념으로 생각했다.
- 프로그램은 파일이고, 프로세스는 실행 중인 상태라는 점을 정리했다.
- 여러 프로세스가 동시에 실행되는 구조가 처음에는 추상적으로 느껴졌다.
<오늘의 정리>
- 프로세스는 실행 중인 프로그램이다.
- Linux는 다중 작업 운영체제이다.
- 각 프로세스는 고유한 PID를 가진다.
- 포그라운드와 백그라운드 실행 방식이 있다.