IT_Factory
로그인
IT_Factory
로그인
인터럽트와 시스템 콜 & 유저 모드와 커널 모드
KIM YONG GU
·
2023년 10월 15일
팔로우
0
0
쉬운코드
목록 보기
17/18
유저모드(User mode)와 커널모드(Kernel mode) 설명
(1) 유저 모드
우리가 개발하는 프로그램은 일반적으로 유저 모드에서 실행
(2) 유저모드 -> 커널 모드
프로그램 실행 중에 인터럽트(interrupt)가 발생하거나 시스템 콜(system call)을 호출하게 되면 커널 모드로 전환
(3) 커널 모드
프로그램의 현재 CPU 상태를 저장
커널이 인터럽트나 시스템 콜을 직접 처리 즉, CPU에서 커널 코드가 실행됨
처리가 완료되면 중단됐던 프로그램의 CPU 상태를 복원
(4) 커널 모드 -> 유저 모드
다시 통제권을 프로그램에게 반환
(5) 유저 모드
프로그램이 이어서 실행됨
커널모드 존재이유
운영체제의 핵심
시스템 전반을 관리/감독하는 역할
하드웨어와 관련된 작업을 직접 수행
시스템을 보호하기 위해 필요함
인터럽트(Interrupt)
시스템에서 발생한 다양한 종류의 이벤트 혹은 그런 이벤트를 알리는 메커니즘
인터럽트가 발생하면 CPU에서는 즉각적으로 인터럽트 처리를 위해 커널 코드를 커널 모드에서 실행
시스템콜(System Call)
프로그램이 OS 커널이 제공하는 서비스를 이용하고 싶을 때 시스템 콜을 통해 실행
시스템 콜이 발생하면 해당 커널 코드가 커널 모드에서 실행
시스템 콜 & 인터럽트 예제 : 파일 read
프로그래밍 언어와 시스템 콜
하드웨어 혹은 시스템 관련 기능은 어떤 프로그램이라도 반드시 시스템 콜을 통해서만 사용 가능.
하지만 보통 우리는 개발할 때 직접 OS 시스템 콜을 사용한 적이 없음.
그럼에도 우리는 지금까지 파일 I/O, 네트워크 I/O, 프로세스/스레드 관련 작업을 해왔다.
어떻게 이게 가능했던 것일까?
이것은 우리가 사용하는 프로그래밍 언어들이 시스템 콜을 포장(Wrapping)하여 간접적으로 사용할 수 있도록 제공했기 때문임
KIM YONG GU
Engineer, Look Beyond the Code.
팔로우
이전 포스트
스택과 큐 : 기술 문서 읽다가 큐 만났을 때 팁과 스택/큐와 관련된 에러 해결책
다음 포스트
데이터베이스 트랜잭션(transaction)과 ACID
0개의 댓글
댓글 작성
관련 채용 정보