Search
Duplicate

커널

키워드
운영체제
커널

알고싶은점

전가상화와 반가상화의 차이 중 하나는 커널 코드의 수정. 따라서 커널은 어떤 역할을 하는가

운영체제의 역할

사용자가 시스템을 편리하게 사용할 수 있도록 인터페이스 제공
컴퓨터의 자원 관리 (프로세스 관리, 메모리 관리, 하드웨어 관리 등)

커널

특징

운영체제의 중심
시스템의 전반을 관리, 감독하는 역할
사용자와의 상호작용은 지원하지 않기 때문에 시스템 프로그램(ex: Shell)을 통함
→ 운영체제 = 커널 + 시스템 프로그램
컴퓨터의 물리적 자원과 추상화 자원을 관리

프로세스 관리

프로세스간 CPU가 이용할 시간을 분배
프로세스는 PID가 부여되어 이것을 통해 관리

메모리 관리

segment나 page로 관리
이용이 끝난 메모리 회수
메모리 영역 분배

운영체제의 구조

User Space

유저가 진행하는 프로그램 대부분은 User Mode에서 진행
직접적으로 하드웨어나 시스템 자원에 접근하는 것을 제한

System Call Interface

User Mode/ Kernel Mode 전환에 관여
Trap(넓은 의미에서 Interrupt, 소프트웨어 인터럽트)이 발생하면 전환
→ 프로그램의 오류(0으로 나눴을때, 잘못된 메모리 공간 접근 등등) 또는 System Call

Kernel Space

유저 프로그램이 시스템 전반을 손상시키는 것을 방지
시스템 호출을 통한 상호작용을 함으로써 실행 영역을 분리 시킴
→ 안정성
프로세스, 메모리, 파일 시스템, 프로세스 간 통신, 입출력 관리

Hardware Interface

Interrupt가 발생하면, 즉각적으로 커널에게 전달하여 Kernel Mode 실행

Hardware

User Mode/ Kernel Mode 전환 예제

상황

실행중인 쓰레드 T1(running 상태)
대기중인 쓰레드 T2(ready 상태)

User Mode

1.
T1 실행중, 시스템 콜 발생
3 - 1. 커널 모드에서 유저 모드로 넘어오고 T2 실행중
3 - 2. 하드웨어에서 2 - 3과정의 시스템 콜 처리에 대한 결과를 인터럽트로 알림
5.
T2 실행중, 스케줄러가 정한 실행시간이 다 지나면 인터럽트 발생

Kernel Mode

2 - 1. 시스템 콜 발생하는 순간, 커널 모드로 전환
2 - 2. T1 CPU상태 저장
2 - 3. T1에서 발생한 시스템 콜 내용이 처리되기 위해 T1이 waiting 상태로 넘어감
2 - 4. CPU 스케줄링에 의해 T2가 running 상태
4 - 1. 인터럽트 발생 직후, 커널 모드로 전환
4 - 2. T2 CPU상태 저장
4 - 3. T1은 ready 상태로 전환
4 - 4. 4 - 2의 T2 CPU상태 복원 후 다시 running
6 - 1. 인터럽트 발생 직후, 커널 모드 전환
6 - 2. T2 CPU상태 저장
6 - 3. T2 ready 상태로 전환
6 - 4. 2 - 2의 T1 CPU상태 복원 후 다시 running

참고자료