[운영체제] 커널과 쉘

변지현·2021년 1월 17일
0

운영체제

목록 보기
1/5
post-custom-banner

운영체제

#Resource Manager

 컴퓨터의 자원을 관리한다. 프로세스가 컴퓨터의 자원(메모리, 파일, CPU 등)을 할 당 받기 위해서는 반드시 운영체제로부터 할당을 받아야한다. 운영체제는 KernelShell로 구성된다.

Kernel

  부팅시 부트로더에 의해 메모리에 적재되어 메모리에 상주하는 운영체제의 핵심이다. 앞으로 설명할 운영체제의 기능의 대부분은 커널에서 실행된다. 운영체제에서 가장 중요한 요소로서 입출력을 관리하고, 소프트웨어로부터의 요청을 받아 필요한 컴퓨터의 자원(디스크, 메모리, H/W)을 할당해주는 역할을 한다.

Shell

 커널과 반대되는 개념이다. Shell이라는 이름에 맞게 커널의 껍데기 역할을 하여 사용자가 운영체제에 접근하기 위해서는 Shell을 거쳐야한다. Shell은 사용자가 터미널에서 입력한 명령을 해석하고 관리하여 사용자와 커널 사이는 연결하는 역할을 한다.

운영체제 동작 구조

 Shell은 크게 3개의 기능을 가지고 있다.

  1. 명령어 해석기 기능 : Shell의 가장 기본적인 기능으로서 사용자가 입력한 명령어를 기계어로 해석, 번역하여 커널에 전달하고 커널에서 수행한 결과를 다시 번역하여 사용자에게 전달하는 역할을 한다.
  2. 프로그래밍 기능 : Shell Script를 작성하여 반복적으로 수행하는 작업을 하나의 프로그램으로 만들 수 있다.
  3. 사용자 환경 설정 기능 : 파일의 권한 설정, 명령어를 찾아오는 경로 설정 등을 초기화 파일에 저장하여 사용자가 로그인할 때 마다 초기 설정이 반영되도록 할 수 있다.

Kernel mode와 User mode

 운영체제그 운영체제를 사용하는 유저는 컴퓨터의 소프트웨어와 하드웨어의 자원을 공유하기 때문에 악성 프로그램의 경우 컴퓨터 중요 자원 및 핵심 코드에 접근하여 손상시킬 가능성이 있다. 따라서 컴퓨터의 자원을 관리하는 Kernel mode와 소프트웨어를 실행하는 User mode로 분리하여 컴퓨터 자원에 대한 적절한 접근만 Kernel Mode에서 처리한다.

 User mode는 아래와 같이 사용자가 접근할 수 있는 유저 영역을 제한적으로 두고, 프로그램의 자원을 함부로 수정하지 못하게 하는 모드이다.
 Kernel mode는 그에 반해 컴퓨터 자원에 대한 제어권을 가지고 있는 모드로서 유저레벨을 포함한 모든 종류의 명령을 전부 실행할 수 있다. privellege level(권한 수준)이 높기 때문이다.

커널 모드와 유저 모드

  따라서 User Mode에서 프로그램의 자원에 접근해야하는 경우 아래의 그림과 같이 User Mode에서 System Call을 통해 커널에 요청을 하면 Kernel Mode로 넘어가 요청에 대한 작업을 수행한 뒤 다시 User Mode로 돌아오게 된다.

커널 모드의 진입

Interrupt

 커널이 프로그램의 제어를 갖게 되는 사건이다.
 크게 H/W Interrupt, S/W Interrupt(System Call), Exception(예외)으로 나뉜다.

  • H/W Interrupt : 외부 하드웨어에서 발생시키는 Interrupt이다. 디바이스에 문제가 생겨 명령을 수행할 수 없거나, 할당된 time quantum을 모두 사용했을 경우 커널로 제어가 넘어가는 것
  • S/W Interrupt(System Call) : 소프트웨어 내에서 컴퓨터의 자원을 접근하기 위해 커널에 요청하여 커널로 제어가 넘어가는 것
  • Exception : 잘못된 연산을 처리하는 명령어가 실행될 경우 이를 처리하기 위해 커널로 제어가 넘어가는 것
profile
23살 개발자 변지점프의 더 나은 사람 되기 프로젝트
post-custom-banner

0개의 댓글