본문 바로가기
OS

[OS] 리눅스 프로세스

by BTC_효범 2022. 10. 4.

안녕하세요. BTC95입니다.

오늘은 리눅스 프로세스에 대하여 알아보겠습니다.


리눅스 프로세스

프로세스란, 시스템에서 메모리에 적재되어 실행되고 있는 모든 프로그램을 말합니다.

 

프로그램은 코딩을 통해 만든 명령어의 집합체이고, 프로세스는 프로그램이 실행되는 과정 중에 현 상황을 말합니다.

즉, 실행되고 있는 프로그램이 곧 프로세스이며, RAM에 저장됩니다. 한 프로그램 내에서 여러 프로세스가 생성된다면 이를 멀티 프로세싱이라고 말합니다. 이들은 모두 운영체제에 의해 관리됩니다.


프로세스 특징

  • 모든 프로그램은 실행될 때 하나 이상의 프로세스를 갖는다.
  • 병행적으로 실행이 가능하다.
  • 부모(PPID), 자식(fork를 통해 복사된 것) 프로세스가 있게 된다.
  • 커널(kernel)에 의해 관리된다.
  • 모든 프로세스에는 소유자(리눅스 계정)가 있다.
  • 프로세스마다 식별을 위한 ID(PID)가 부여된다.

RAM(메모리) 구성

프로세스 메모리는 크게 커널 주소 공간(kernel space)와 사용자 주소 공간으로 분리할 수 있으며, 이때 kernel 부분은 사용자가 접근할 수 없습니다. 우리가 사용하는 공간은 stack, heap, data, text 4개의 영역으로 나뉘는데, argv, argc, env, etc 파일들 역시 stack의 일부입니다.


관련 명령어

프로세스 목록 보기

ps [option]

-e: 현재 실행중인 모든 프로세스 정보 출력
-f: 모든 정보 확인
-a: 실행중인 전체 사용자의 모든 프로세스 출력
-u: 프로세스를 실행한 사용자와 프로세스 시작 시간 등을 추력
-x: 터미널 제어 없이 프로세스 현황 보기

 

프로세스 종료

kill [option] [PID]

-1: 재실행(SIGHUP)
-9: 강제종료(SIGKILL)
-15: 정상종료(SIGTERM)

-l: 사용 가능한 시그널 목록을 출력


감사합니다.

(참고)

'OS' 카테고리의 다른 글

Golden Image  (0) 2022.12.20
[리눅스] 기본 명령어  (0) 2022.10.27
[OS] 리눅스 파일 시스템  (1) 2022.10.04
리눅스 명령어를 이용한 시스템 모니터링  (0) 2022.09.07
[OS]리눅스 명령어  (0) 2022.08.18

댓글