운영체제 구조 개요

라마·2023년 7월 3일

운영체제

목록 보기
2/32

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.

운영체제의 구조

운영체제를 2가지로 구분한다면

→ 커널, 인터페이스로 구분이 가능합니다.

운영체제를 3가지로 구분한다면

→ 커널, 인터페이스, Device Driver 로 구분이 가능합니다.

( 어떻게 구분할지는 관점의 차이 )

커널 ( kernel )

  • 운영체제의 핵심 기능을 모아놓은 것
  • 응용 소프트웨어들은 커널에 요청 → 하드웨어 자원들을 이용
  • User-mode, Kernel-mode 분리

인터페이스 ( Interface )

  • 커널에 명령을 전달하고 실행 결과를 알려주는 역할

디바이스 드라이버 ( Device Driver )

  • 커널과 하드웨어 그 중간 어딘가에 위치
  • API 가 User-level 에서의 인터페이스라고 하면, 디바이스 드라이버들은 하드웨어에 대한 인터페이스
  • 하드웨어와 직접 연결되고 입력 신호에 대한 약속을 정하는 것
    • OS 가 기준을 정의 ( 약속을 정해줌 )

커널과 시스템 콜

  • 커널이 하는 일이 사실상 운영체제가 하는 일과 거의 근접하기 때문에, 되게 중요합니다. 그래서 외부로부터 직접적인 노출은 피하는 것이 좋습니다.
  • 그래서 커널을 보호하기 위해 직접적으로 접근하는 방식이 아닌, 시스템 호출을 통한 접근 방식을 채택하였습니다.
  • System call ( Syscall ) : 커널이 자신의 기능을 함수 형태로 제공해주는 것

커널 설계 모양

  • 단일형 커널
    • 초창기 구조
    • 커널의 모든 기능이 한 덩어리로 묶여있는 형태
    • 속도가 빠르지만, 이 커널이 죽으면 모든 기능이 다 죽어버림
  • 계층형 커널
    • 기능들을 계층화
  • 마이크로 커널
    • 기능들을 모듈별로 쪼개서 관리 → 쪼갠걸 User-Level 에 이식
    • 프로세스간 통신으로 시스템 운영
    • 이식성이 뛰어나고 모듈화가 잘 되어 있어서 한 부분이 고장나도 나머지 부분이 커버해주면 되지만, 속도가 느림

가상머신

  • 운영체제마다 제공하는 API 및 시스템 콜의 모양이 다르기 때문에, 운영체제가 다르면 프로그램 별 호환이 되지 않습니다.
  • 이 불편함을 해결하고자, 가상머신은 운영체제와 응용 프로그램 사이에서 작동하며 운영체제간 이식성을 높여주는 역할을 해줍니다.
    • 응용 프로그램이 API 모두 동일한 환경에서 작동하는 것처럼 보이게끔 해줍니다.
    • 일종의 API 호환 레이어

에뮬레이션, 시뮬레이션

  • 에뮬레이션 : 시스템을 똑같이 구현 / 재현한 것
  • 시뮬레이션 : 결괏값만 같고, 시스템을 추상화한 것
  • 공통점 : 둘 다 실제 하드웨어를 사용할 필요 없이 작업을 처리할 수 있는 환경을 제공해줍니다.

0개의 댓글