안녕하세요. 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 |
댓글