[UNIX] 프로세스 정보

Taegang Yun·2023년 12월 8일
1

Unix 프로그래밍

목록 보기
9/19

디렉토리 트리의 산책

ftw

주어진 디렉토리부터 출발하여 그 디렉토리 아래에 있는 모든 파일과 부 디렉토리에 대한 작업을 수행

  • FTW_F : 객체가 하나의 파일
  • FTW_D : 객체가 하나의 디렉토리
  • FTW_NS : 객체가 심볼릭 링크가 아니며, 따라서 stat루틴이 성공적으로 수행될 수 없는 객체
  • FTW_SL : 객체가 하나의 심볼릭 링크
int list(const char *name, const struct stat *status, int type)
{
	if(type == FTW_NS) return 0;
    if(type == FTW_F)
    	printf("% - 30s\t0%3o\n", name, status->st_mode&0777);
    else
    	printf("% - 30s\t0%3o\n", name, status->st_mode&0777);
    return 0;
}

main(int argc, char** argv){
	int list(const char *, const struct stat *, int);
    
    if(argc == 1)
    	ftw(".", list, 1);
    else
    	ftw(argv[1], list, 1);
    exit(0);
}

프로세스

현재 실행 중인 프로그램.

시스템에서 프로세스를 식별하는 데는 프로세스 ID(PID)를 사용, 관련 프로세스들이 모여 프로세스 그룹을 구성

프로세스의 구조

  • 텍스트 영역 : 실행 코드를 저장.
  • 데이터 영역 : 프로그램에서 정의한 전역 변수를 저장
  • 힙 영역 : 프로그램 실행 중에 동적으로 메모리를 요철하는 경우에 할당되는 영역
  • 스택 영역: 프로그램에서 정의한 지역 변수를 저장하는 메모리 영역.

프로세스 목록 보기

  • ps 명령
    • 실행 중인 프로세스의 목록을 보려면 ps 명령을 사용.
    • 시스템에서 동작하고 있는 전체 프로세스를 보려면 ps - ef 옵션을 지정
  • top 명령
    • 현재 실행 중인 프로세스를 주기적으로 확인해 출력

프로세스 식별

PID 식별

  • PID는 0번부터 시작
  • 0번 프로세스 : 스케줄러.
  • 1번 프로세스 : init로 프로세스가 새로 생성될 때마다 기존 PID와 중복되지 않은 번호가 할당
  • 현재 프로세스의 pid를 검색하려면 getpid() 함수를 사용.
profile
언젠간 전문가가 되겠지

0개의 댓글