프로그래밍 언어: 시스템콜, 커널모드

Y39·2023년 4월 1일
0

toBeProgrammer

목록 보기
77/88

User mode vs Kernel mode

:프로그램 실행 중 interrupt||system call로 user-> kenerl로 전환

User mode

  • 프로그램 실행 중 interrupt 또는 system call로 user-> kernel로 전환
  • kernel 모드에서 전환되었다면 다시 프로그램 실행

Kernel mode

  • 동작
    • 프로그램의 현재 cpu 상태를 저장
    • interrupt나 system call을 직접 실행
    • CPU에서 kernel code가 실행
    • 처리가 완료되면 중단된 프로그램의 cpu를 복원
    • 다시 user 모드로 전환
  • 존재 이유
    • 시스템을 보호하기 위해
    • kernel은 예민한 작업이기 때문에

kernel

: 운영체제의 핵심

  • 시스템 전반을 관리/감독
  • 하드웨어 관련 작업을 직접 수행

interrupt

  • power 문제
  • I/O 작업 완료
  • timer가 끝날 때
  • trap
    • 0으로 나눴을 때
    • 잘못된 메모리 공간에 접근을 시도할 때

system call

: 프로그램이 OS 커널의 서비스를 이용하고 싶을 때 실행

  • 프로세스/스레드
  • 파일 I/O
  • 소켓 관련(네트워크)
  • 장치(device) 관련
  • 프로세스 통신
    : 프로세스 간의 통신을 위한 것
    => system call에 맞는 kernel 시스템이 작동됨

프로그래밍 언어

  • 어떤 프로그램이라도 system call을 이용함
  • 프로그래밍 언어가 system call을 잘 포장해서 간접적으로 이용 가능
profile
System.out.print("Bold")

0개의 댓글