방송통신대학교/운영체제

[운영체제] 1강. 운영체제 소개

idleday 2023. 4. 16. 18:20
더보기

 


운영체제(OS, Operating System)

대표적인 시스템 소프트웨어
컴퓨터 시스템의
자원을 관리하고 컴퓨터 프로그램이
동작하기 위한 서비스를 제공하는 프로그램들의 모음

 

운영체제의 역할

  1. 컴퓨터 시스템의 자원 관리
    • 자원? HW자원, SW자원, 데이터
    • 컴퓨터 시스템을 효율적으로 운영하려는 목적
      • 저장장치(HW)에서 데이터 읽어오기
      • 키보드나 마우스(HW) 제어
      • 여러 프로그램(SW) 동시 실행 시 CPU와 메모리 효율적 관리
  2. 사용자 지원
    • 사용자 명령을 해석해 실행
    • 사용자와 하드웨어 사이의 매개체 역할
    • 사용자에게 편의성 제공하려는 목적

 

컴퓨터 시스템의 구성

  • 사용자
  • 응용 소프트웨어
  • 시스템 소프트웨어 ✅
  • 하드웨어

 

컴퓨터 시스템과 운영체제

  • 운영체제가 없던 초기의 컴퓨터 시스템은..
    • 응용 프로그램이 직접 컴퓨터 시스템의 자원 제어 (응용프로그램 개발자가 HW 제어방법을 알아야 함)
    • 여러 사용자가 하드웨어를 공유하는 경우 자원 분할 어려움
  • 운영체제가 있는 요즘 컴퓨터 시스템은.. (1950~)
    • 운영체제가 하드웨어와 응용프로그램 사이에서 컴퓨터 시스템의 자원 제어
    • 컴퓨터 시스템이 안정적이고 효율적으로 동작하도록 함

 

커널 모드와 사용자 모드

  • 커널 모드(슈퍼바이저 모드)
    • 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드
    • 운영체제의 커널이 동작
  • 사용자 모드 (보호 모드)
    • 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드
    • 응용 프로그램이 동작
  • 시스템 호출
    • 응용 프로그램이 하드웨어 제어가 필요한 경우
    • 운영체제에 서비스를 요청하는 메커니즘 → 커널 모드로 전환

 

커널 (kernel)
커널 모드에서 동작하는 운영체제의 핵심 요소
응용 프로그램과 하드웨어 처리 사이의 매개체


커널의 구성방식

  • 일체형 커널 (monolithic kernel)
    • 운영체제의 모든 서비스가 커널 내에 포함됨 (OS = 커널)
    • 커널 내부 요소들이 서로 효율적으로 상호작용 ↔️ 한 요소라도 오류 발생시 시스템 전체에 장애 발생가능
    • ex. UNIX, Linux
  • 마이크로커널 (microkernel)
    • 운영체제 요소 대부분을 커널 외부(사용자 모드)로 분리
    • 메모리 관리, 멀티태스킹, 프로세스 간 통신(IPC) 등 핵심 요소만 남겨서 커널 최소화
    • 새로운 서비스 추가하여 운영체제 확장 & 요지보수 용이 & 안정성 우수
    • 커널 외부 요소들 사이에 IPC 필요하여 성능 저하 발생

 


운영체제의 구성요소

컴퓨터 시스템의 자원 성격에 따라 구분

 

  • 프로세스 관리자
    • 프로세스 생성 및 삭제
    • CPU 할당을 위한 스케줄 결정
    • 프로세스 상태를 관리하며 상태 전이 처리

저장장치의 프로그램파일이 실행되려면 메모리 상의 프로세스 (실행중인 프로그램)로 생성되어야 한다. 

CPU 처리가 필요한 경우 운영체제가 CPU 스케줄링을 담당한다.

 

  • 메모리 관리자
    • 메모리(주기억장치) 공간에 대한 요구 유효성 확인
    • 메모리 할당 및 회수
    • 메모리 공간 보호
  • 장치 관리자
    • 컴퓨터 시스템의 모든 장치 관리 (하드디스크, 입출력기기, 유무선 네트워크 카드 등)
    • 시스템 장치의 할당, 작동, 반환
  • 파일 관리자
    • 컴퓨터 시스템의 모든 파일 관리
    • 저장장치의 공간 관리
    • 파일의 접근제한 관리

 


운영체제의 유형

 

  • 일괄처리 운영체제 (Batch processing)
    • 작업을 모아서 순서대로 처리하는 방식
    • 나중에 들어온 작업은 앞선 작업이 완료될 때까지 상호작용 없이 무한대기
  • 시분할 운영체제 (Time-sharing)
    • 각 사용자의 프로그램을 한 번에 조금씩 수행하는 방식
    • 대화형(interactive) 운영체제
    • 응답시간(요청시점부터 첫 반응까지의 소요시간)이 일괄처리 운영체제보다 단축됨
  • 실시간 운영체제 (Real-time, RTOS)
    • 원하는 시간 내에 프로그램 결과를 얻을 수 있는 방식
    • 처리결과가 현재 결정에 영향을 주는 환경에서 사용됨 (미사일 제어 시스템, 증권거래 관리 시스템 등)
    • 중요한 작업에 대한 처리 기한을 맞추는 것이 중요하므로 우선순위 높은 작업을 우선 처리하는 기법 사용 
  • 분산 운영체제
    • 분산시스템(2개 이상의 컴퓨터 시스템이 네트워크로 연결되어 자원 공유)를 관리하기 위한 운영체제
    • 다른 컴퓨터 시스템의 자원을 내 컴퓨터 시스템의 자원처럼 이용할 수 있어야 함

 


정리하기
  1. 운영체제는 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모습으로 대표적인 시스템 소프트웨어이다.
  2. 커널 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 있는 모드이고, 사용자 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 없는 모드이다.
  3. 응용 프로그램은 사용자 모드에서 동작하기에, 하드웨어에 대한 제어가 필요한 경우 시스템 호출을 통해 필요한 서비스를 운영체제에 요청해야 한다.
  4. 운영체제의 주요 구성요소에는 프로세스 관리자, 메모리 관리자, 장치관리자, 파일 관리자가 있다.
  5. 운영체제의 대표적인 유형으로는 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제가 있다.