본문 바로가기

기타

커널(Kernel)

커널(Kernel)

커널은 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분으로 하드웨어와 응용프로그램 사이에서 인터페이스를 제공하는 역할이다.

인터페이스로써 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하고, 여러가지 하드웨어(CPU,메모리)등의 리소스를 관리하는 역할을 한다.

 

다만 이러한 커널은 항상 컴퓨터 자원을 바라만 보고 있기 때문에 사용자와의 상호작용을 지원하지 않는다.

사용자와의 직접적인 상호작용을 위해 프로그램을 제공하게 되는데, 대표적인 쉘(Shell) 이라는 명령어 해석기능이 있다.

 

*인터페이스 - 사용자가 기기를 쉽게 동작시키기 위해 도움을 주는 시스템(view영역)도 있지만 서로 다른 두개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 접점이나 경계면을 인터페이스라 한다.

ㄴ커널에서의 인터페이스는 하드웨어와 응용프로그램의 접점에 서서 정보나 리소스를 전달한다.

*쉘(Shell) - 껍데기라는 이름과 마찬가지로 운영체제와 커널사이의 인터페이스를 감싸는 층이기에 쉘이라는 이름이 붙혀졌다.

쉘은 명령어 해석기능, 프로그래밍 기능, 사용자 환경설정 기능이 있고 CUI, GUI 두가지 타입의 쉘이 존재한다.

Linux의 경우 bash를 주로 사용한다.

 

 

커널의 대표적인 기능

프로세스 관리

실행중인 프로그램을 프로세스라고 한다.

일반적으로 CPU는 한 번의 하나의 프로세스만 실핼 할 수 있기에 CPU는 이 프로세스들을 조금씩 번갈아 가며 실행한다.

ㄴ 스케줄러

ㄴ IPC

ㄴ 동기화

 

자원 접근 및 할당

모든 프로세스는 실행을 위해 자원을 필요로 한다.

운영체제는 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스가 필요로 하는 자원을 할당해 준다.

 

메모리 관리

메모리가 어디에서 무엇을 저장하는데 얼마나 사용되는지를 추적하며 관리된다.

 

장치 드라이버

여러가지 하드웨어와 프로세스 사이에서 중재자의 역할을 수행한다.

ㄴ Hardware Interrupt : Interrupt란 컴퓨터 동작 중 예기치 않은 문제가 발생시에도 업무처리가 지속될 수 있도록 하는 컴퓨터 운영체계의 한 기능

 

시스템 호출 및 보안

프로세스의 서비스 요청을 수신하고 컴퓨터 자원을 보호하며 직접 접근을 차단한다.

 

 

 

Interrupt 와 System Call

Interrupt

일반 유저 모드에서 컴퓨터가 동작중이다가 Interrpt가 발생하는 순간 CPU는 커널모드로 바뀌어 운영체제는 발생한 Interrupt를 갖고 일을 한다.

예를 들어

1. 하드웨어 인터럽터(Hardware Interrupt) : 하드웨어 장치에서 발생하는 이벤트로, 마우스나 키보드에서의 사용자 입력, 네트워크 카드에서의 데이터 수신 등이 있다.

CPU의 주의를 끌어 해당 이벤트를 처리하기 위한 인터럽트핸들러(Interrupt Handler)를 실행한다.

2. 소프트웨어 인터럽터(Software Interrupt) : 소프트웨어 실행 중 프로그램 내부에서 발생하는 이벤트, 주로 프로그램이나 운영체제의 요청에 의해 발생한다.

시스템 호출(System Call)이나 예외상황(예: 나눗셈 오류)이 소프트웨어 인터럽트를 발생시킨다.

3. 타이머 인터럽터(Timer Interrupt) : 타이머 하드웨어가 주기적으로 발생시키는 인터럽터로, CPU의 작업 스케쥴링을 관리하거나 정확한 시간을 유지하는 등의 사용되고

주기적으로 발생하여 CPU가 여러 프로세스를 교대로 실행할 수 있도록 한다.

 

 

System Call

운영체제가 제공하는 서비스를 부르기 위한 프로그래밍 인터페이스

보통 시스템콜은 AP를 통하여 호출된다. 만약 유저가 실행중인 유저 프로세스가 커널모드에서만 수행 가능한 서비스를 사용한다면, 커널모드를 관리 감독하고 있는 운영체제에게 요청하는데, 이때 요청하는 인터페이스가 시스템콜이다.

구분 인터럽트(Interrupt) 시스템 호출(System Call)
발생 원인 하드웨어 또는 소프트웨어
이벤트에 의해 발생
사용자 프로그램이 운영 체제의
서비스를 요청
종류 하드웨어 인터럽트,
소프트웨어 인터럽트
운영체제가 제공하는 여러 서비스와
기능 요청
처리 방법 현재 실행중인 프로세스의 흐름을
중단하고 처리
사용자 프로세스가 커널 모드로
전환되어 처리
예시 마우스 클릭, 키보드 입력, 네트워크 데이터 수신 등등 파일 열기, 읽기, 쓰기, 네트워크 통신
등등

 

*인터럽트는 현재 실행 중인 프로세스의 흐름을 중단하고 하드웨어나 소프트웨어 이벤트(function)를 처리하는거고, 시스템 호출은 사용자 프로세스가 운영 체제에서 가능한 서비스발생시 사용자 모드에서 커널모드로 바뀌어 해당 요청을 수행하고 다시 사용자 모드로 돌아오는 것 

'기타' 카테고리의 다른 글

가상화  (0) 2024.05.02
내부망과 외부망, DMZ  (0) 2024.05.02
LDAP(Lightway Directory Access Protocol)  (0) 2024.04.26
Cookie VS Session  (0) 2024.04.26
Proxy  (0) 2024.04.25