커널(Kernel)의 기능

June Lee·2021년 1월 6일
0

운영체제

목록 보기
3/25
post-custom-banner

커널의 기능
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
post-custom-banner

0개의 댓글