3. 프로세스 관리

3.1_ 개념 및 유형

① 프로세스 개요

  • 프로세스란
  • 프로세스의 생성
    • fork : 복사본 형태의 프로세스 실행
    • exec : 원래 프로세스를 새로운 프로세스로 대체하는 형태
    • 부팅-> init 최초의 프로세스 발생, PID 1 
  • 프로세스의 종류
  • 멀티태스킹과 작업 전환

② 시그널과 데몬

  • 시그널
    • 프로세스끼리 통신
    • 목록 : kill -l 확인 가능
    • 시그널 번호 - 순서
      • SIGHUP : 터미널에서 접속 끊길 때, 재시작 할 때
      • SIGINT : 키보드에서 옴, 실행 종료 (ctrl + c)
      • SIGQUIT : 실행 중지 (ctrl + \)
      • SIGKLL : 무조건 종료
      • SIGTERM : 정상 종료
      • SIGCONT : 정지된 프로세스 다시 실행
      • SIGSTOP : 입력된 정지 시그널
      • SIGTSTP : 실행 정지후 다시 실행 계속하기 위해 대기 (ctrl + z)
  • 데몬
    • 백그라운드에서 실행
    • 실행 방법
      • standalone : 부팅 시에 실행
        • 메모리에 상주
        • ps 명령으로 확인 가능
      • inet
        • 요청이 들어 왔을 때 관련 프로세스 실행

 

3.2_ 프로세스 유틸리티

① 프로세스 관련 명령어

  • ps 
    • 동작 중인 프로세스의 상태를 출력해 주는 명령
    • 옵션 계열
      • System V : (dash, -)사용
      • BSD : 대시 사용 X
      • GNU : 두 개의 대시 
    • ps [option]
    • 옵션 
      • a : 터미널과 연관된 프로세스 출력
      • u : 프로세스의 소유자를 기준으로 출력
      • x : 터미널에 종속되지 않는 프로세스 출력
      • l : 프로세스의 정보를 길게 보여줌, 우선순위와 관련된 (RPI, NI)값 확인
    • 옵션 항목
      • USER : BSD 계열, 프로세스 소유자의 이름
      • UID : SYSTEM V 계열, 프로세스 소유자의 이름
      • PID : 프로세스의 식별 번호
      • %CPU : CPU 사용 비율 추정치 (BSD)
      • %MEM : 메모리 사용 비율의 추정치 (BSD)
      • VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
      • RSS : 실제 메모리 사용량
      • TTY : 프로세스와 연결된 터미널
      • STAT : 현재 프로세스의 상태 코드
      • START : 프로세스 시작 시간 or 날짜
      • TIME : 총 CPU 사용 시간
      • COMMAND : 프로세스의 실행 명령행
      • STIME : 프로세스가 시작된 시간 혹은 날짜(Sys V)
      • C, CP : 짧은 기간 동안의 CPU사용률
      • F : 프로세스의 플래그 (1:exec 호출 없이 fork된 경우 / 4 : 슈퍼유저 권한 사용자)
      • PPID : 부모 프로세스의 PID
      • PRI : 실제 실행 우선순위
      • NI : nice 우선 순위 번호 
    •  STAT의 주요 값
      • R ( Runnig) : 실행 중 혹은 실행될 수 있는 상태 
      • S ( Sleeping) : 인터럽트에 의한 sleep 상태, 특정 이벤트가 끝나기를 기다리는 상태
      • D ( Disk wait) : 디스크 I/O에 의해 대기하고 있는 상태
      • T ( Traced or stopped) : 정지된 상태
      • W : paging 상태
      • Z ( Zombie) : 작업이 종료되었거나 부모 프로세스로 부터 회수되지 않아 메모리를 차지하고 있는 상태
      • X : 죽어있는 상태, 상태값으로 볼 수 X
      • < : 우선순위가 인위적으로 높아진 상태
      • N (Nice) : 다른 사용자에 의해 인위적으로 우선순위가 낮아진 상태
      • L : 메모리 안에서 페이지가 잠금된 상태
      • s : session Leader
      • I : 멀티 쓰레드 상태
      • + : 포어그라운드 프로세스 그룹
  • pstree
  • top
  • kill
    • 특정한 시그널 보내는 명령
    • 옵션 없이 실행 : 15신호 보냄
    • kill [옵션] [시그널] [PID or %Job_number]
      • - l : 시그널의 종류 출력
      • - s signal : 시그널의 이름 지정
      • - 9 : 강종
  • killall
  • jobs
  • fg
    • fg [%잡 넘버]
    • fg 잡 넘버
  • bg
    • 포어그라운드 실행 중인 프로세스 + ctrl +z  하면 사용 가능
  • nice
    • 프로세스의 우선순위 변경
    • NI값 설정 ( 작을 수록 우선순위 ↑)
    • 일반 사용자 : 증가만 가능
    • root : 감소 가능
    • 옵션 
      • -n 값, - 값, --adjustment=값 : NI 값을 지정한 NI값과 증감, 값 지정 안하면 10지정됨
        • ex) nice -10 bash 
        • nice -- adjustment = 10
        • nice bash
  • renice
  • nohup



② 스케줄링과 cron

  • 스케줄링
    • at, cron
  • cron
    • 시스템 운영에 필요 : /etc/crontab (주기적으로 실행)
    • 사용자 : crontab에 실행
    • 필드
      • 분, 시, 날, 월, 요일, 사용자 이름, 명령어
  • crontab
    • vi가 실행됨
    • 옵션 
      • - l : 내용 출력
      • - e : 작성하거나 수정
      • - r : 내용 삭제
      • - u : root사용자가 특정 사용자의 crontab파일 다룰 때 사용

 

 

+ Recent posts