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