커널(Kernel)의 기능

June Lee·2021년 1월 6일
0

운영체제

목록 보기
3/25

커널의 기능
1. Handling Resources
2. Hardware Encapsulation

메모리는 유저 스페이스와 커널 스페이스로 구분된다. 유저 스페이스와 커널 스페이스는 분리되어 서로 침범하지 않는다.
대부분의 코드와 Library Function은 유저 스페이스에서 돌아간다. 그러나 이 중 OS(즉 커널)에서 제공하는 function(커널이 가진 자원을 사용하는 function)은 커널 안에서 돌아가는데, 이를 System Call이라고 한다.

이 과정은 커널이 돈다고 보기 보다는, 프로세스(실행 중인 유저 프로그램)가 User Space에서 돌다가 
System Call을 하면 Kernel 속으로 trap하여 돈다고 보는 것이 맞는 해석이다.

System Call Function

  • Kernel의 Top-Half
  • 커널 속에 상주
  • 유저 프로그램(프로세스)에 의해 Call됨
  • open()하면 파일은 커널이 관리하므로, 오픈이라는 라이브러리 속에서 시스템 콜을 함.
    이런 라이브러리들은 원초적인 기능을 제공하는 시스템 콜을 좀 더 유저가 쓰기 편하게 만든 것.
  • 커널 속 인터럽트 핸들러는 외부에서 접근할 수 없음. 이에 접근하기 위한 외부 인터페이스 역할을 하는 것이 바로 '시스템 콜'

Device Drivers

  • Kernel의 Bottom-Half
  • 하드웨어와의 상호작용을 담당

커널 내부 (기능적 분류)

  • System Call Interface: System Call Functions(open, read, write,..)가 존재하는 곳


커널의 주요 기능

  1. 프로세스(혹은 Thread) 관리 및 CPU Scheduling

    • 프로세스마다 CPU를 사용할 수 있는 시간을 분배 및 관리한다.
  2. 메모리 관리

  3. I/O Device 관리

  4. IPC (Inter Process Communication): 한 컴퓨터 내부의 프로세스끼리 통신을 도와줌

  5. 네트워크: 다른 컴퓨터와의 통신을 가능하게 함.
    -> TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.

  6. File System

    • logical I/O: 유저가 생각하는 logical I/O와 컴퓨터의 physical I/O 사이의 맵핑
    • Hierarchical Directory Support: 계층적 폴더 구조 지원
    • 파일 저장 및 삭제, 접근 권한에 따른 파일 보호

profile
📝 dev wiki

0개의 댓글