티스토리 뷰

Signal

시그널

 

[ Signal ]

  Signal

    : 시스템에서 발생하는 이벤트에 대한 작은 Message.

    : Kernel목적지 프로세스(Destination Process)Signal Number를 전송.

    : 프로세스 및 Kernel이 다른 프로세스를 중단하는 것을 허용.

    : 소프트웨어 인터럽트(Software Interrupt)라고 하는 인터럽트의 한 종류이다.

 

  Pending & Blocked Bits

    : Kernel은 각 프로세스에서 Pending과 Blocked Bit를 유지.

    · Pending

      : Signal이 보내졌지만 아직 도착하지 않은 상태를 표시. → 처리 대기중인 Signal.

         ( Signal 전송 → Pending Bit Set )

      : 이벤트가 전송되면 Set, 도착(Recieve)하면 Clear를 유지.

      : Signal이 도착했는지 도착하지 않았는지 확인 가능.

      : Bit로 유지되기 때문에 받지 않으면 알 수 없음. 

      : 동일한 유형의  Signal이 연속적으로 보내질 경우 후속 신호가 무시됨.

         ( Bit로 관리되므로 보내졌을 때 Set, 도착했을 때 Clear가 됨. 사이에 있는 신호를 알 수 없음. Not Queued라고 함 )

    · Blocked

      : 시그널이 Blocked 상태인지 아닌지를 표시.

      : Blocked 상태이면 Signal이 전송되어도 수신할 수 없음. → 이 때 수신할 시 Error.

      : sigprocmask라는 함수로 Set과 Clear를 지정.

      : Signal Mask라고도 함.

 

  Recieve

    : 목적지 프로세스의 Signal의 수신.  

    : Kernel이 프로세스를 Kernel Mode에서 User Mode로 전환할 때 PnB 집합을 체크.

       ( PnB : Pending & not Blocked. Pending 상태이고 Block되지 않은 시그널이 있으면 받아야 하므로, 확인 후 수신 )

    : Signal이 Recieve되었을 때, 3가지 방법으로 이를 처리.

Signal을 Recieve하는 시점

    · Ignore : 아무 조치도 취하지 않음.

    · Terminate : 프로세스 종료.

    · Catch : 획득. 시그널 제어. Catch 시 수행해야 할 별도의 함수가 존재. → Signal Handler

                      ( Signal Handler는 User-Level 함수이다. Signal Handler의 실행이 끝나면 중단된 작업 재개. )

Control Flow about Signal Handler

 

  Installing Signal Handlers

    : Signal 함수를 통하여 Signal Handler를 등록(Install).

    : Signal은 두 개의 인자를 가짐. → signumsighandler

    : User-Level에서 Catch 시 함수가 수행되도록 함.

    : Signal Handler는 프로세스 간의 동기화(Concurrency) 문제가 생길 수 있음.

       ( Error Number같은 경우, 본래 프로세스에서 보내려 했던 Error Number가 Handler의 Error Number로 바뀔 수 있음 )

       ※ Signal Handler는 최대한 빠르게 끝나도록 코딩하는 것이 좋음.

Control Flow about Signal Handler

    : Signal Handler는 Signal이 Catch 되었을 때 발생하므로 Delay가 생길 수 있음.

 

    Installing 방식

      · signal function 

        : 시스템에 따라 다르게 구현됨.

      · sigaction function

        : signal function의 단점 보완.

        : 시스템이 달라도 동일하게 구현됨.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함