User mode & Kernel mode
- User mode : 우리가 개발하는 프로그램은 일반적으로 유저 모드에서 실행
- User mode => Kernel mode : 프로그램 실행 중에 인터럽트가 발생하거나 시스템 콜을 호출하게 되면 커널 모드로 전환
- Kernel mode : 프로그램의 현재 CPU 상태를 저장함. 커널이 인터럽트나 시스템 콜을 직접 처리. 즉, CPU에서 커널 코드가 실행됨. 처리가 완료되면 중단됐던 프로그램의 CPU 상태를 복원
- Kernel mode => User mode : 다시 통제권을 프로그램에게 반환
- User mode : 프로그램이 이어서 실행됨
커널(Kernel)
- 운영체제의 핵심
- 시스템의 전반을 관리/감독하는 역할
- 하드웨어와 관련된 작업을 직접 수행
커널 모드를 만든 이유 : 시스템을 보호하기 위해
Interrupt
- 시스템에서 발생한 다양한 종류의 이벤트 혹은 그런 이벤트를 알리는 매커니즘
- 종류 : 전원(power)에 문제가 생겼을 때. I/O 작업이 완료됐을 때. 시간이 다 됐을 때(timer 관련). 0으로 나눴을 때. 잘못된 메모리 공간에 접근을 시도할 때 ...
- 인터럽트가 발생하면 CPU에서는 즉각적으로 인터럽트 처리를 위해 커널 코드를 커널 모드에서 실행
System call
- 프로그램이 OS 커널이 제공하는 서비스를 이용하고 싶을 때 시스템 콜을 통해 실행
- 종류 : 프로세스/스레드 관련. 파일 I/O 관련. 소켓 관련. 장치(device) 관련. 프로세스 통신 관련 ...
- 시스템 콜이 발생하면 해당 커널 코드가 커널 모드에서 실행
프로그래밍 언어와 시스템 콜
- 하드웨어 혹은 시스템 관련 기능은 어떤 프로그램이라도 반드시 시스템 콜을 통해서만 사용 가능
- 우리는 개발할 때 직접 OS 시스템 콜을 사용한 적이 없지만 파일 I/O, 프로세스/스레드 관련 작업을 해왔다 ... => 프로그래밍 언어가 시스템 콜을 포장(wrapping)하여 간접적으로 사용할 수 있도록 제공했기 때문
'공부 기록 > 영상 후기' 카테고리의 다른 글
MAC주소, IP주소, Port번호가 식별하는 것 (0) | 2023.04.05 |
---|---|
공유기의 IP주소는 왜 192.168.0.1이 되었을까요? | 쉽게보는 IT 상식, 디모의 테크 노트 (0) | 2023.04.05 |
스택과 큐 설명! 참 쉽죠~~? 기술 문서 읽다가 큐 만났을 때 팁과 스택/큐와 관련된 에러들 그리고 해결책도 설명드려요!! (0) | 2023.04.04 |
우선순위 큐와 힙의 개념과 차이, 사용 사례를 설명합니다! 힙이 어떻게 동작하는지도 예를 통해 자세히 설명합니다! (0) | 2023.04.04 |
변수와 객체와 메모리의 관계! 자바를 예로 들어 변수와 객체는 메모리에 어떻게 저장되는지 정말 쉽게 설명해요! (0) | 2023.04.04 |