쉽게 배우는 운영체제 Chapter 01

Eunkyung·2021년 10월 4일
0

OS

목록 보기
2/9

1. 운영체제 소개

  • 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어
    ex) PC 운영체제(윈도우, Mac OS, 유닉스, 리눅스), 모바일 운영체제 (IOS, 안드로이드)
  • 임베디드 운영체제 : CPU 성능이 낮고 메모리 크기가 작은 시스템에 내장하도록 만든 OS
    ex) MP3, 스마트 시계

역할

  1. 자원 관리 : 사용자가 원활하게 작업할 수 있도록 응용 프로그램 자원 분배
  2. 자원 보호 : 비정상적인 작업으로부터 컴퓨터 자원 보호
  3. 하드웨어 인터페이스 제공 : 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 지원
  4. 사용자 인터페이스 제공 : 사용자가 운영체제를 편리하게 사용하도록 지원 -> GUI

목표

  1. 효율성
    • 효율적 자원 관리
    • 같은 자원을 사용하여 더 많은 작업량 처리 or 적은 자원으로 같은 작업량 처리
  2. 안정성
    • 안정적 작업 지원
    • 시스템 문제 발생 시 이전으로 복구하는 결함 포용 기능 수행
  3. 확장성
    • 다양한 시스템 자원 추가, 제거 용이
    • 플러그 앤드 플레이 기능 제공
  4. 편리성
    • 사용자가 편리하게 작업할 수 있는 환경 제공

2. 운영체제 역사

  1. 에니악(1940년대)
    • 진공관(0과 1 사용)
  2. 일괄 작업 시스템(1950년대)
    • 모든 작업 한꺼번에 처리
    • 프로그램 실행 중간에 데이터 입력 및 수정 불가
  3. 대화형 시스템(1960년대 초반)
    • 키보드와 모니터 등장
    • 프로그램 실행 중간에 데이터 입력 및 수정 가능
  4. 시분할 시스템(1960년대 후반)
    • 하나의 CPU로 여러 작업을 동시에 실행하는 다중 프로그래밍 가능
    • CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 분할
  5. 분산 시스템(1970년대 후반)
    • 개인용 컴퓨터와 인터넷 보급
    • 네트워크 상에 분산되어 있는 여러 컴퓨터로 작업 처리 및 결과 상호 교환
  6. 클라이언트/서버 시스템(1990년대~현재)
    • 웹 시스템 등장
    • 작업을 요청하는 클라이언트와 요청받은 작업을 처리하는 이중 구조
    • 요청 집중 시 서버 과부하
  7. P2P 시스템(2000년대 초반~현재)
    • 서버를 거치지 않고 사용자와 사용자 직접 연결
    • 서버 부하 해소

3. 운영체제 구조

커널과 인터페이스

  1. 커널
    • 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것
  2. 인터페이스
    • 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려줌

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

  1. 시스템 호출
    • 커널이 자신을 보호하기 위해 만든 인터페이스
    • 커널은 사용자나 응용 프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단함
  2. 드라이버
    • 커널과 하드웨어의 인터페이스 담당

커널의 구성

  1. 단일형 구조 커널

    • 초장기 운영체제 구조
    • 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성
      ex) MS-DOS, VMS
    • 장점
      • 모듈 간 통신 비용 감소로 효율적인 운영
    • 단점
      • 버그나 오류 처리 어려움
      • 기능상의 작은 결함 시스템 전체로 확산
      • 다양한 환경의 시스템에 적용하기 어려움
  2. 계층형 구조 커널

    • 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층 간의 통신을 통해 운영체제 구현
    • 디버깅 용이

  3. 마이크로 구조 커널

    • 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공
    • 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않음

가상머신

운영체제와 응용 프로그램 사이에서 작동하는 프로그램
ex) JVM

출처

profile
꾸준히 하자

0개의 댓글