Skip to content총 120개의 글이 있습니다.
1. 프로세스와 구조체
프로세스는 프로그램 코드를 실행하면서 생기는 모든 결과물이다.
일반적인 의미: 실행 중인 프로그램
포괄적인 의미: 사용 중인 파일, 대기 중인 시그널, 커널 내부 데이터, 프로세서 상태, 메모리 주소 공간, 실행 중인 하나 이상의 스레드 정보 등
프로세스는 `fork()` 호출 시 생성되고, 기능을 수행한 뒤, `exit()`를 호출해 종료된다. 부모 프로세스는 `wait()` 호출로 자식 프로세스 종료 상태를 확인할 수 있다.
스레드는 프로세스 내부에서 동작하는 객체이고, 개별적인 PC, Stack, Register(context)를 가지고 있다.
리눅스 커널은 프로세스와 스레드를 구분하지 않는다.
리눅스 커널에 대한 접근은 오직 시스템 콜과 ISR로만 가능하다.
커 top 명령어를 사용하면 시스템의 상태를 전반적으로 가장 빠르게 파악할 수 있다. (CPU, Memory, Process)
옵션 없이 입력하면 interval 간격(기본 3초)으로 화면을 갱신하며 정보를 보여준다.
bash
$ top -help
procps-ng 3.3.17
Usage:
top -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]
bash
top 21:22:27 up 232 days, 2:22, 3 users, load average: 0.00, 0.04, 0.05
Tasks: 134 total, 1 running, 133 sleeping, 0 stopped, 0 zombi