[영상후기] 인터럽트와 시스템 콜을 설명합니다! 당연히 유저 모드, 커널 모드도 설명해야겠죠? 그런데 이 모든게 프로그래밍 언어와 무슨 상관이냐구요?? 상관있죠! 왜 상관있냐면요..!

박철현·2023년 4월 9일
0

영상후기

목록 보기
76/160

movie

  • User mode : 우리가 개발하는 프로그램은 일반적으로 유저모드로 실행

  • user mode -> Kernel mode

    • 프로그램 실행 중 인터럽트가 발생하거나 시스템콜을 호출하게 되면 커널 모드로 전환
  • Kernel mode : 프로그램의 현재 CPU 상태를 저장함

    • 커널이 인터럽트나 시스템콜을 직접 처리
      • 즉, CPU에서 커널 코드가 실행됨
    • 처리가 완료되면 중단됐던 프로그램의 CPU 상태를 복원
  • Kernel mode -> user mode : 중단됐던 부분에서 다시 이어서 실행

    • 다른 프로그램 했다가 이어가는 경우도 있지만 해당 영상에서는 이어가는 경우로 설명
  • 커널 : 운영체제의 핵심, 시스템의 전반을 관리/감독하는 역할 + 하드웨어와 관련된 작업을 직접 실행

    • 커널 모드 존재 이유 : 시스템을 보호하기 위해

  • Interrupt : 시스템에서 발생한 다양한 종류의 이벤트 혹은 그러한 이벤트를 알리는 메커니즘

  • 종류 : 5가지 외에도 추가로 있음

    • 전원에 문제가 생겼을 때
    • I.O작업이 완료됐을 때
    • 시간이 다 됐을 때(timer 관련)
    • 0으로 나눴을 때
    • 잘못된 메모리 공간에 접근을 시도할 때
    • 4, 5번째의 경우 trap이라 불리기도 함 : 프로그래밍 과정에서 발생
  • 인터럽트가 발생하면 CPU에서는 즉각적으로(인터럽트 발생한 순간 실행중인 명령어 까지 마무리 한 뒤 커널이 통제받아) 인터럽트 처리를 위해 커널 코드를 커널 모드에서 실행


  • 시스템 콜 : 프로그램이 OS 커널이 제공하는 서비스를 이용하고 싶을 때 시스템 콜을 통해 실행

  • 종류

    • 프로세스/스레드 관련
    • 파일 I/O 관련
    • 소켓 관련
    • 장치(device) 관련
    • 프로세스 통신 관련
  • 시스템 콜이 발생하면 해당 커널코드가 커널 모드에서 실행

  • 프로그래밍언어와 시스템 콜 : 하드웨어 혹은 시스템 관련 기능은 어떤 프로그램이라도 반드시 시스템 콜을 통해서만 사용 가능

  • 프로그래밍 언어들이 시스템 콜을 포장(wrapping)하여 간접적으로 사용할 수 있도록 제공
    ex) 자바에서 Thread 클래스 : OS System call 내장

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보