[Linux] Signal : SIGINT

2023. 4. 9. 19:54·Computer/Linux
728x90
728x90

단, cpu exception에 의한 signal은 모두 synchronous임.

0. SIGINT 란?

Ctrl+c 를 누를 때 발생하는 Signal:

  • keyboard interrupt 가 발생함을 알리는 SIGNAL: SIGINT
  • Ctrl+c 가 눌린 Keyboard의 H/W Interrupt가 Kernel의 드라이버가 감지하고
  • 현재 terminal 에서 fore-ground로 동작하는 process (보통 현재 실행 중인 shell script)를
    강제 종료시키기 위해 해당 Process로 SIGINT 시그널을 보냄.
  • 이름이 interrupt이나... SIGNAL임 (S/W Interrupt 아님).

Signal :
Process 단위로 동작하는 이벤트 통보 메커니즘 으로서
OS(Kernel)를 통해 하나의 process에서 다른 process로 보내짐.
프로세스 간 통신(kill())이나
Kernel이 직접 생성(SIGINT, SIGFPE 등)하는 방식으로 발생하며,
비동기적 signal(SIGINT, SIGTERM)과
동기적 signal(SIGFPE, SIGSEGV)을 모두 지원함. 

 

kill -l을 통해 사용가능한 system signal의 종류를 확인할 수 있음.

 

https://ds31x.tistory.com/132

 

[Linux] SIGNAL 에 대한 요약 정리.

SIGNAL이란??OS (LINUX 및 UNIX계열)에서의 SIGNAL은UNIX 또는 UNIX 계열 또는 POSIX 호환 OS에서 사용되는제한된 형태의 Inter-Process Communication (IPC)에 사용되는비동기적 S/W interrupt임.특정 process가 동일 process

ds31x.tistory.com


1. 참고: S/W Interrupt 와 TRAP

S/W interrupt:
S/W가 명시적(ARM의 SVC, x86의 INT 등의 CPU operator이용)으로
CPU에 interrupt를 발생시키는 경우
로
system call을 통해 kernel mode로 변경하여
os의 resource나 서비스를 이용하는데 사용됨.
종류별로 특정 interrupt handler가 실행됨.

S/W interrupt는 synchronous interrupt로 
CPU에서 발생하는 interrupt 임.

SIGNAL은 Interrupt와 구별됨.
(Intterupt로부터 Kernel이 SIGNAL을 보내는 경우가 있긴함)

 

trap 은 process 에서 system call 등을 수행하거나, CPU가 예외를 감지 또는 어떤 조건을 만족할 때,
kernel mode로 들어가기 위해 사용되는 Synchronous Interrupt.

  • 일반적으로 cpu에게 현재 명령실행을 중단하고,
  • os에게 제어를 넘겨 kernel mode로 들어가
  • system call을 처리할 수 있게 해주는 수단이며,
  • cpu가 divde by zero 등의 특정 예외처리를 하도록 해줌.
  • 항상 동기적으로 사용됨.
  • 인터럽트 처리가 끝난 후, trap 을 발생시킨 명령어의 다음 명령어를 실행시킴: Fault, Abort와의 차이점
S/W Interrupt 에 Trap이 속하는 것으로 보기도 함.
또는
Trap은
특정이벤트를 처리하기 위해
CPU가 현재 실행상태를 중단하고
커널모드로 전환해 OS로 제어를 넘기는 메커니즘을 가리키기도 함.

 


2. Example: trap 명령어를 통한 signal 동작변경.

다음의 예는 trap 명령어를 통해,

  • 해당 shell script가 실행되는 중,
  • 특정 signal (INT)이 발생할 때 해당 signal의 동작을 바꾸는 것도 가능함.
trap 'date; exit' INT

 

위의 예의 경우,

  • SIGINT가 발생할 경우, 현재 시간을 출력하는 date가 수행되고
  • exit로 shell script가 종료됨.

위의 trap은 shell command 로서 S/W interrupt 의 일종인 TRAP와는 차이가 있음:

  shell 의 trap 명령어 TRAP (S/W Interrupt의 일종)
계층 Shell(사용자 프로그램) 수준 CPU 하드웨어 수준
대상 Signal handler 등록 CPU Exception(Interrupt) 발생
동작 특정 signal 수신 시 지정한 명령어 실행 CPU가 명령어 실행 시 kernel mode로 전환
예시 trap 'date; exit' INT SYSCALL, INT3 실행 시 발생
관련 메커니즘 Signal Interrupt

같이보면 좋은 자료들

2023.01.17 - [Computer/CE] - [CE] Interrupt 요약 (Computer 기준).

 

[CE] Interrupt 요약 (Computer 기준).

1. Interrupt Based System (or Interrupt Driven System)오늘날 OS는 interrupt를 기반으로 동작 (Interrupt Based System)한다:interrupt가 발생하면 CPU는 현재 하는 일을 멈추고 해당 interrupt를 해결하려고 동작한다.processor

dsaint31.tistory.com

 

https://ds31x.tistory.com/132

 

[Linux] SIGNAL 에 대한 요약 정리.

SIGNAL이란??OS (LINUX 및 UNIX계열)에서의 SIGNAL은UNIX 또는 UNIX 계열 또는 POSIX 호환 OS에서 사용되는제한된 형태의 Inter-Process Communication (IPC)에 사용되는비동기적 S/W interrupt임.특정 process가 동일 process

ds31x.tistory.com

 


 

728x90

'Computer > Linux' 카테고리의 다른 글

Git: 사용자와 이메일 정보 설정 및 확인하기-git config  (0) 2024.05.20
[vim] VI : carriage return 제거하기 : CRLF → LF  (0) 2023.07.14
[Linux] vi (or vim) 사용법 정리  (0) 2023.03.21
[Linux] Network Setting  (1) 2023.02.07
[Linux] 화면 캡쳐 단축키  (0) 2023.01.30
'Computer/Linux' 카테고리의 다른 글
  • Git: 사용자와 이메일 정보 설정 및 확인하기-git config
  • [vim] VI : carriage return 제거하기 : CRLF → LF
  • [Linux] vi (or vim) 사용법 정리
  • [Linux] Network Setting
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (795)
      • Private Life (16)
      • Programming (212)
        • DIP (116)
        • ML (41)
      • Computer (121)
        • CE (54)
        • ETC (31)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (12)
      • ... (369)
        • Signals and Systems (115)
        • Math (177)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    Programming
    Probability
    signal_and_system
    fourier transform
    Optimization
    opencv
    인허가제도
    Vector
    linear algebra
    math
    Term
    random
    numpy
    ML
    SIGNAL
    signals_and_systems
    function
    SS
    cv2
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[Linux] Signal : SIGINT
상단으로

티스토리툴바