ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : OS : Kernel
    Computer Science/OS 2021. 3. 25. 15:50
    728x90

    Kernel

     

    • 컴퓨터에 전원을 켜면 운영체제는 이와 동시에 수행된다.
    • 운영체제도 소프트웨어이기 때문에, 전원이 켜짐과 동시에 메모리에 올라가야 하는데, 덩치가 너무 크기 때문에 이와 같은 작업을 전원을 켤 때마다 하는 것은 비효율적이다.
    • 따라서, 운영체제 전체 중 항상 필요한 부분에 대해 전원이 켜짐과 동시에 메모리에 올리고, 운영체제 전체 중 필요 없는 부분에 대해서는 필요할 때 메모리에 올려서 사용한다.
    • 이 때, 메모리에 상주하는 운영체제의 부분을 커널(kernel)이라고 한다.
    • 다시 말해, 운영체제는 커널을 포함하는 더 큰 개념이고, 커널은 운영체제의 핵심 부분이다.
    • 커널의 핵심 역할은, '보안', '자원 관리', '추상화'이다.

     

     

    Shell

     

    • 커널의 사용자와의 상호작용을 위해, 시스템 프로그램이 필요하고, 쉘(shell)은 대표적인 시스템 프로그램이다.
    • 쉘은 명령어 해석기로, 사용자가 컴퓨터에게 전달하는 명령을 해석하여 사용자와의 상호작용을 가능케 한다.

     


     

    User Mode & Kernel Mode

     

    • user application이 함부로 운영체제의 치명적인 데이터를 수정하거나 삭제하지 못하게 하기 위해, 두 가지 프로세서 접근 모드를 지원한다.
    • user mode보다 kernel mode에 더 높은 권한을 줌으로써, 시스템 전체의 안전성을 보장한다.
    • system call을 통해 user mode에서 kernel mode로 동작 요청을 한다.
    • 요청을 하면, kernel mode로 전환되었다가, 작업 완료 후 다시 user mode로 돌아간다.

     


     

    User Level Thread & Kernel Level Thread

     

    • thread는 'user thread'와 'kernel thread'로 나뉠 수 있다.
    • user thread는 kernel 위에서 kernel의 지원 없이 관리된다.
    • kernel thread는 운영체제에 의해 지원 및 관리된다.

     

    • kernel level thread (커널 레벨 스레드)
      • 커널 스레드는 운영체제에서 구현된다.
      • 운영체제가 프로세스 내에 여러 스레드가 있다는 것을 알고 있기 때문에, 커널 스레드의 생성 및 스케줄링 등을 관리한다.
      • user thread : kernel thread = 1 : 1
      • 장점
        1. 커널이 각 스레드를 개별적으로 관리할 수 있다.
        2. 한 스레드가 중단되어도, 같은 프로세스 내의 다른 스레드들을 계속 실행 가능하다.
      • 단점 
        1. user level thread에 비해 생상 및 관리가 느리다.
        2. 유저 모드와 커널 모드 간 전환이 빈번하여, 성능 저하를 일으킨다.

     

    • user level thread (사용자 레벨 스레드)
      • 스레드 기능을 제공하는 라이브러리를 활용하는 방식이다. (예 : #include)
      • 커널에 진입하지 않아도 된다.
      • 사용자 영역에서 스레드의 연산을 수행한다.
      • 장점
        1. 스케줄링과 동기화를 위해 system call을 하지 않기 때문에 오버헤드가 적다.
        2. 커널이 스레드의 존재를 모르기 때문에, 유저 모드와 커널 모드 간 전환이 없다. 
      •  단점 
        1. 운영체제 입장에서 프로세스 안에 여러 스레드가 있다는 것을 모르기 때문에, 커널은 하나의 프로세스로 인식한다. 따라서 하나의 스레드가 중단되면, 동일 프로세스 내의 모든 스레드가 중단된다.
        2.  스케줄링 우선순위를 지원하지 않으므로, 어떤 스레드가 먼저 동작할지 모른다.

     

    728x90

    'Computer Science > OS' 카테고리의 다른 글

    Question : OS : Process  (0) 2021.04.06
    CS : OS : Memory  (0) 2021.03.25
    CS : OS : Process  (0) 2021.03.25
    Pintos Project #3 : Thread scheduling  (2) 2020.05.29
    Pintos Project #2 : Alarm Clock의 개선  (0) 2020.05.29

    댓글

kxmjhwn@gmail.com