본문 바로가기
전공/운영체제

Ch01. 운영체제의 개요 _03) 운영체제의 구조

by 임 낭 만 2023. 3. 23.

<쉽게 배우는 운영체제> 교재를 참고하였습니다.

커널과 인터페이스

  • 운영체제(OS)
    • 컴퓨터 하드웨어 바로 위에 설치되어 응용프로그램 및 사용자와 하드웨어를 연결하는 S/W 계층
  • 커널
    • 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것
  • 인터페이스
    • 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할
    • 그래픽을 사용한 인터페이스를 GUI(graphical User Interface)라 부름

운영체제는 인터페이스와 커널로 이루어져 있다.


시스템 호출과 디바이스 드라이버

  • 시스템 호출
    •  
    • 커널이 자신을 보호하기 위해 만든 인터페이스
    • 커널은 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단

커피 : 자원 / 시스템 호출 : 사용자 입장

  • 직접 접근
    • 두 응용 프로그램이 자기 마음에 드는 위치에 데이터를 저장하려고 함
    • 다른 사람의 데이터를 지울 수도 있고 내 데이터가 다른 사람에 의해 지워질 수도 있음
  • 시스템 호출을 통한 접근
    • 응용 프로그램이 직접 하드디스크에 데이터를 저장하지 않고 커널이 제공하는 write( ) 함수를 사용하여 데이터를 저장해달라고 요청
    • 커널이 데이터를 가져오거나 저장하는 것을 전적으로 책임지기 때문에 컴퓨터 자원 관리가 수월 

직접 접근 : 응용프로그램 입장

시스템 호출 정리

- 시스템 호출은 커널이 제공하는 시스템 자원의 사용과 연관된 함수
- 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려 할 때는 시스템 호출을 사용해야 함
- 운영체제는 커널이 제공하는 서비스를 시스템 호출로 제한하고 다른 방법으로 커널에 들어오지 못하게 막음으로써 컴퓨터 자원을 보호
- 시스템 호출은 커널이 제공하는 서비스를 이용하기 위한 인터페이스이며, 사용자가 자발적으로 커널 영역에 진입할 수 있는 유일한 수단임

 

  • 드라이버
    • 커널과 하드웨어의 인터페이스 담당하며 디바이스 드라이버라고도 불림
    • 마우스와 같이 간단한 제품은 드라이버를 커널이 가지고 있으나, 그래픽카드와 같이 복잡한 하드웨어의 경우 제작자가 드라이버를 제공함.


커널의 구성

커널

프로세스 : 실행중인 프로그램

  • 단일형 구조 커널
    • 초창기의 운영체제 구조
    • 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성
    • 장점
      • 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능
    • 단점
      • 모든 모듈이 하나로 묶여 있기 때문에 버그나 오류를 처리하기가 어려움
      • 운영체제의 여러 기능이 서로 연결되어 있어 상호 의존성이 높기 때문에 기능상의 작은 결함이 시스템 전체로 확산될 수 있음
      • 다양한 환경의 시스템에 적용하기 어려움
      • 현대의 운영체제는 매우 크고 복잡하기 때문에 완전 단일형 구조의 운영체제를 구현하기가 어려움

MS-DOS, VMS, 초기 유닉스 등

  • 계층형 구조 터널
    • 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층 간의 통신을 통해 운영체제를 구현하는 방식

윈도우

  • 마이크로 구조 커널
    • 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공
    • 커널의 각 모듈은 세분화되어 존재하고 모듈 간의 정보 교환은 프로세스 간 통신을 이용하여 이루어짐

다른 기능(파일 시스템 관리, 입출력 관리 등)은 커널 영역이 아니라 사용자 영역에 구현 함으로써 커널의 크기를 줄인 구조


가상머신

  • 가상머신
    • 운영체제와 응용 프로그램 사이에서 작동하는 프로그램
    • 가상머신을 설치하면 응용 프로그램이 모두 동일한 환경에서 작동하는 것처럼 보임
    • 자바는 유닉스와 윈도우에서 작동하는 다양한 가상머신을 만들어 배포하는데 이를 자바 가상머신(Java Virtual Machine, JVM)이라고 함

댓글