[운영체제] 커널

최솔·2023년 11월 7일
0

운영체제

목록 보기
2/6

커널(kernal)이란 ?


운영체제의 핵심 서비스를 담당하는 부분이다.


동작 방식


운영체제는 응용 프로그램이 시스템 자원에 접근하려고 할 때
오직 자신을 통해서만 접근하도록 하여 자원을 보호하는데
이 때 이중 모드시스템 호출이 사용된다.

이중 모드 (dual mode)

응용 프로그램이 하드웨어 자원에 직접 접근하지 않고 운영체제를 거치도록 하는 방식

CPU가 명령어를 실행하는 모드는 두가지로 나뉜다.

  1. 유저 모드 (user mode)

    • 커널 영역의 코드 실행 불가
    • 운영체제 서비스를 제공받을 수 없는 모드
    • 일반적인 응용 프로그램의 기본 실행 모드
    • 입출력 명력어를 포함하여 하드웨어 자원에 접근하는 명령어 실행 불가
  2. 커널 모드 (kernal mode)

    • 커널 영역의 코드 실행 가능
    • 운영체제 서비스를 제공받을 수 있는 모드
    • 시스템 자원에 접근 가능


시스템 콜 (system call)

이중 모드의 커널 모드로 전환하는 방법

  • 사용자 모드로 실행 중인 프로그램이 운영체제 서비스를 받기 위해 운영체제에 보내는 요청

  • 시스템 호출 명령어 실행 시 CPU는 기존 작업을 백업하고 커널 내 시스템 호출을 수행하는 코드를 실행한 뒤 기존 작업으로 복귀

  • 소프트웨어 인터럽트로, 처리 순서는 하드웨어 인터럽트와 유사

    > 인터럽트란, CPU가 프로그램을 실행하고 있을 때 입출력, 파일 읽기 등의 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것을 말한다.


운영체제의 핵심 서비스


프로세스 관리

  • 실행 중인 프로그램 == 프로세스
  • 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리


자원 접근 및 할당

  • CPU
    : 프로세스들에 공정하게 CPU를 할당하기 위한 스케줄링

  • 메모리
    : 새로운 프로세스가 적재될 때 어느 주소에 적재해야 할지 결정
    : 메모리 공간이 꽉 차 있거나 프로세스를 적재하지 못하는 상황 발생시 처리

  • 입출력장치


파일 시스템 관리

  • 보조기억장치 속 데이터를 파일과 디렉토리로 관리하는 파일 시스템

0개의 댓글