쉽게 배우는 운영체제 3일차

꿀떡냠·2024년 5월 1일
  • 운영 체제는 커널과 인터페이스로 구성
    • 커널(kernel) : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심기능을 구현한 프로그램
    • 인터페이스(interface) : 사용자와 응용프로그램에 인접하여 커널에 명령 전달하고 실행 결과를 리턴
  • 운영 체제는 크게 유닉스 계열 커널과 윈도우 계열 커널로 구분
    • 유닉스 커널
      • 과거 대형 컴퓨터에서 이용
      • 빠르고 안정적
      • Shell 이라는 사용자 인터페이스 사용 → 문자로 명령어 입력
    • 윈도우 커널
      • 그래픽 사용자 인터페이스(GUI) 기반
      • 문자 기반의 사용자 인터페이스 cmd 사용가능

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

  1. 시스템 호출
    • 사용자나 응용 프로그램은 시스템 호출이라는 인터페이스를 통해 커널에 접근
    • 시스템 호출은 커널이 제공하는 시스템 자원을 사용하기 위한 함수
    • 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려면 시스템 호출 사용
    • 운영체제는 커널이 제공하는 서비스를 시스템 호출로 제한
    • 사용자가 자발적으로 커널 영역에 진입할 수 있는 유일한 수단
  • 응용 프로그램 인터페이스(API)
    • 응용 프로그램이 자신과 연관된 프로그램을 개발할 수 있도록 제공하는 인터페이스.
    • 운영체제에서 제공하는 함수를 이용하여 응용프로그램을 만든다는 것은 운영체제가 제공하는 API인 시스템 호출을 사용한다는 의미
  • 시스템 개발자용 키트 (SDK)
    • API 및 API 매뉴얼뿐 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 같은 각종 개발용 프로그램을 포함

시스템 호출은 자원을 어떻게 보호 할까?

  • 두개의 응용프로그램이 하드디스크에 데이터를 저장하고 싶다고 가정
    • 직접 호출 : 응용 프로그램이 둘다 하드디스크에 접근해서 데이터를 저장하는 경우, 다른 프로그램이 저장한 데이터를 지울 수도 있고, 내 데이터가 다른 프로그램에 의해 지워질 수 있음
    • 시스템 호출 : 커널이 전적으로 데이터 저장을 책임지기 때문에 직접호출시 발생할 수 있는 문제 해결 가능
  1. 디바이스 드라이버
  • 디바이스 드라이버 : 하드웨어의 인터페이스
  • 표준방식에 맞는 주변장치는 컴퓨터와 연결시 바로 작동 가능 하지만, 표준외의 기능을 수행하는 경우, 사용자가 디바이스 드라이버를 설치해야함
  • 디바이스 드라이버를 설치해야 하는 경우 : 그래픽 카드, 프린터 등
  1. 커널의 역할과 종류
    3-1. 커널의 역할
  • 프로세스 관리 : 다양한 프로세스에 CPU를 배분하고 작업할 수 있는 환경 구성
  • 메모리 관리 : 프로세스를 메모리에 배치하고, 실제 메모리보다 큰 가상공간을 제공
  • 파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스 제공
  • 입출력 관리 : 필요한 입력과 출력 서비스 제공
  • 프로세스 간 통신 관리 : 공동 작업을 위한 프로세스 간 통신 환경 지원
    3-2. 커널의 종류
  • 단일형 구조 커널 : 모듈의 구분 없이 핵심기능이 하나의 메인함수에 있는 형태
    • 장점 : 모듈간의 통신비용이 줄어들어 효율적인 운영 가능(속도 빠름)
    • 단점
      1) 버그나 오류를 처리하기 어려움
      2) 여러 기능의 상호 의존성 증가
      3) 수정이 어려워 이식성이 낮음
      4) 운영체제의 기능이 다양해짐에 따라 단일형 구조를 가지기 어려움
  • 계층형 구조 커널
    : 비슷한 기능을 가진 모듈을 묶어 하나의 계층으로 만들고 계층간 통신을 통해 운영체제 구현
    • 오늘날의 운영체제 구조
    • 디버깅 및 수정이 쉬움
  • 마이크로 구조 커널
    : 커널의 크기가 계속 커지고 방대해짐에 따라 프로세스 관리, 메모리 관리, 프로세스 간 통신관리 등 가장 기본적인 기능만 제공하는 형태
    • 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체 운영체제에는 문제가 없음
    • 가장 기본적인 기능만을 제공하기 때문에 CPU 용량이 작은 시스템에도 적용 가능
    • 애플의 PC 운영체제 OS X와 모바일 운영체지 iOS의 커널로 사용
profile
백엔드 개발자로 살아남기

0개의 댓글