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을 잘 포장해서 간접적으로 이용 가능