KOCW 반효경 교수님의 운영체제 강의를 수강한 후 개인적으로 정리한 공부 기록입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1046323

 

운영 체제란?

컴퓨터 하드웨어와 각종 소프트웨어, 사용자를 연결하는 소프트웨어 계층이다. 운영체제는 협의/광의의 운영체제 개념으로 나눠 부를 수 있는데 보통 개발 공부를 할 때에는 좁은 의미인 커널이 운영체제를 가리키는 말이다.

 

  • 좁은 의미 | 커널(kernel) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분
  • 넓은 의미 | 커널 + 주변 시스템 유틸리티 포함

 

운영 체제의 목적

  • 컴퓨터 시스템의 자원을 효율적으로 관리
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공

운영체제의 목적은 두가지로 나눌 수 있다. 그중 가장 중요한 것은 첫 번째 '자원을 효율적으로 관리'하는 것이다. 첫 번째 목적은 운영체제-하드웨어 간의 동작이며, 두 번째 목적은 운영체제-각종 소프트웨어/사용자 간의 동작으로 이해했다.

자원이란 컴퓨터의 cpu, memory, I/O device 등을 말하며 운영체제는 이 자원을 효율적이고 형평성 있게 분배한다.

 

운영 체제의 분류

운영 체제는 다음과 같은 3가지로 분류한다.

  • 동시 작업 가능 여부
  • 사용자 수
  • 처리 방식

동시 작업 가능 여부

  • 단일 작업(single tasking) : 한 번에 하나의 작업만 처리
  • 다중 작업(multi tasking) : 동시에 두 개 이상의 작업 처리

사용자의 수

  • 단일 사용자(single user)
  • 다중 사용자(multi user)

처리 방식

  • 일괄 처리(batch processing)
  • 시분할(time sharing)
  • 실시간(Realtime OS)
    • Hard realtime system (경성 실시간 시스템)
    • Soft realtime system (연성 실시간 시스템)

일괄 처리 방식은 작업을 일정량 모아서 한꺼번에 처리한다.

시분할과 실시간을 구분하는 것은 '정해진 시간 안에 종료됨이 보장되어야 하는가'이다. 대부분의 PC에서 사용되는 처리 방식은 시분할 방식이다. 시분할 처리 방식은 일괄 처리에 비해 짧은 응답 시간을 가지며, 일정한 시간 단위로 분할하여 사용한다.

실시간 처리 방식은 보통 목숨이 달려있는 일에 사용된다고 생각하면 된다. 원자로/미사일 제어나 반도체 장비에 있어 정해진 시간 안에 종료되지 않으면 사람의 목숨이 날아가거나 일자리가 날아간다. 실시간 처리 방식의 확장된 개념은 Hard/Soft로 나뉜다.

 

운영 체제의 예

  • 유닉스(UNIX)
    • C언어
    • 높은 이식성
    • 최소한의 커널 구조로 확장 용이
    • 소스 코드 공개
    • Linux
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 운영 체제

 

운영 체제의 구조

  • CPU → CPU 스케줄링 | 누구에게 CPU를 줄까?
  • memory → 메모리 관리 | 한정된 메모리를 어떻게 쪼개어 쓸까?
  • disk → 파일 관리 | 디스크에 파일을 어떻게 보관할까?
  • I/O device → 입출력 관리 | 각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
  • 프로세스 관리 | 프로세스 생성과 삭제, 자원 할당 및 반환, 프로세스 간 협력