Just do IT
article thumbnail

시그널과 IPC
   * 본래 다른 용도이지만, IPC로도 사용가능한 기법
      - 시그널 (signal) - 프로세스에 이벤트 전달
      - 소켓 (socket) - 네트워크

 

시그널(signal)

   * 유직스에서 30 이상 사용된 전통적인 기법

   * 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었지를 알려주는 기법

   * Ctrl + C 눌러서 프로세스 종료시킬 있다.

 

주요 시그널

   * 시그널 종류와 시그널에 따른 기본 동작이 미리 정해져 있음

      - SIGILL: 프로세스를 죽여라(슈퍼관리자가 사용하는 시그널로, 프로세스는 어떤 경우든 죽도록 있음)

      - SIGALARM: 알람을 발생한다

      - SIGSTP: 프로세스를 멈춰라(Ctrl + z)

      - SIGCONT: 멈춰진 프로세스를 실행해라

      - SIGINT: 프로세스에 인터럽트를 보내서 프로세스를 죽여라(Ctrl + c)

      - SIGSEGV: 프로세스가 다른 메모리영역을 침범했다

 

시그널 (signal) 동작

   * 프로그램에서 특정 시그널의 기본 동작 대신 다른 동작을 하도록 구현 가능

   * 프로세스에서 시그널 처리에 대해 다음과 같은 동작 설정 가능

      - 시그널 무시

      - 시그널 블록(블록을 푸는 순간, 해당 프로세스에서 시그널 처리)

      - 프로그램 안에 등록된 시그널 핸들러로 재정의한 틍정 동작 수행

      - 등록된 시그널 핸들러가 없다면, 커널에서 기본 동작 수행

 

시그널과 프로세스

   * PCB 해당 프로세스가 블록 또는 처리해야하는 시그널 관련 정보 관리

   * 커널 모드에서 사용자 모드 전환시 시그널 정보 확인해서 해당 처리

 

출처 : 제로베이스

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!