티스토리 뷰

운영체제

  • 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 CPU, 메모리 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공

하드웨어

  • 연산을 위한 기본 자원을 제공하는 프로세서 (중앙처리장치, 메모리, 다양한 입출력장치)

소프트웨어

  • 컴퓨터가 기능을 수행하는데 필요한 프로그램 (운영체제, 유틸리티, 응용 프로그램)
  • 응용 프로그램: 사용자나 전문가에 의해 만들어진 프로그램 (웹 브라우저, 워드 프로세서, 데이터베이스 프로그램, 비디오 게임 등)

 

운영체제의 기능

  1. 하드웨어와 사용자 간의 인터페이스 제공
  2. 사용자들이 하드웨어를 공동으로 사용할 수 있도록 해줌
  3. 사용자 간의 자원 스케줄링
  4. 입출력 보조 역할
  5. 오류 처리

 

커널(Kernel)

  • 운영체제의 핵심으로 메모리에 상주하며 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어
  • 하드웨어와 소프트웨어 간의 중재자 역할
  • 응용 프로그램 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를 스케줄링하는 역할

 

운영체제의 목적

  • 편리성: 사용자가 프로그램을 개발하고 사용하는 데 좀 더 편리한 환경을 제공
    • ex) 컴퓨터 GUI 환경
  • 효율성: 자원을 효과적으로 사용하기 위해 각 프로그램을 유기적으로 결합하여 시스템 전체 성능을 향상
    • 처리 능력: 시스템의 생산성을 나타내는 지표로 단위 시간당 처리하는 작업량
    • 신뢰도: 하드웨어, 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력
    • 응답 시간: 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지의 시간
    • 사용 가능도: 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간

 

상주 모니터 (Resident Monitor)

  • 초기의 운영체제 형태
  • 현재 프로그램에서 다음 프로그램으로 제어가 자동으로 넘어가도록하는 프로그램
    • 현재 실행 중인 프로그램이 끝나면 자동으로 다음 프로그램이 실행되도록 하는 것을 의미
    • 즉, 프로그램 간의 전환을 자동으로 관리하고 조정

 

커널과 상주 모니터의 차이

구분 커널(Kernel) 상주 모니터(Resident Monitor)
역할 운영체제의 핵심, 하드웨어 및 리소스 관리 프로그램 로딩 및 실행 관리
기능 프로세스, 메모리, 파일, I/O, 인터럽트 관리 배치 처리 시스템에서 작업 자동화
위치 항상 메모리에 상주 프로그램 실행시 메모리에 적재됨
사용 시기 현대적인 모든 운영체제에서 사용 1960~1970년대 초기 OS에서 사용

 

CPU와 입출력 장치의 속도 차이를 보완

구분 버퍼링(Buffering) 스풀링(Spooling)
정의 데이터 전송 속도 차이를 줄이기 위해 버퍼(Buffer)라는 임시 저장 공간을 사용하는 기술 입출력 장치가 데이터를 처리할 준비가 될 때까지 디스크나 메모리에 데이터를 임시 저장하는 기술
작동 방식 CPU와 I/O 장치 간 속도 차이를 줄이기 위해 데이터를 작은 버퍼에 저장 후 점진적으로 전송 여러 개의 작업을 대기열(Queue)에 저장한 후 순차적으로 처리
주요 역할 - 데이터 흐름을 원할하게 유지
- CPU가 빠른 속도로 데이터를 처리할 수 있도록 도움
- CPU와 I/O 장치가 동시에 작업할 수 있도록 함
- 여러 작업을 동시에 처리하여 효율성을 높임
예시 - 동영상 스트리밍(영상 데이터를 미리 받아와서 끊김 없이 재생)
- 키보드 입력(입력한 문자를 버퍼에 저장 후 한꺼번에 처리)
- 네트워크 데이터 전송(데이터를 일정량 모아서 전송)
- 프린터 스풀링(여러 개의 인쇄 작업을 스풀에 저장 후 순서대로 출력)
- 배치 처리 시스템(여러 개의 작업을 저장한 후 하나씩 실행)
주요 차이점 하나의 작업과 관련된 입출력만 처리 여러 개의 작업을 저장 후 순차적으로 처리
실시간 처리 여부 실시간 데이터 처리가 가능 일반적으로 실시간 처리가 어려움 (작업이 쌓였다가 실행됨)

 

다중 프로그래밍 시스템 (Multi Programming)

  • 정의: 다중 프로그래밍 시스템은 하나의 CPU를 사용하여 여러 개의 프로그램을 동시에 실행하는 것처럼 보이게 만드는 방식입니다. 프로세서가 항상 수행할 작업을 가지고 있어 CPU의 사용률을 높이는 방식입니다.
  • 핵심 개념: 실제로 CPU는 한 번에 하나의 프로그램만 실행할 수 있지만, 빠르게 프로세스를 전환하여 동시에 실행되는 것처럼 보이게 합니다.
  • 목적: CPU 활용도를 극대화하여 CPU의 유휴 상태(idle)를 최소화합니다.
  • 동작 과정
    • 여러 개의 프로그램이 메모리에 적재됨 (웹 브라우저, 동영상 플레이어, 워드 프로세서 등)
    • CPU는 한 번에 하나의 프로그램만 실행
    • I/O 작업이 발생하면 CPU는 다른 프로그램을 실행
    • 운영체제가 프로세스 간 전환(Context Switching)을 수행
      • 이 과정에서 프로그램의 상태(레지스터, 메모리 정보 등)를 저장하고 복원
    • 모든 프로그램이 번갈아 실행되면서 동시에 실행되는 것처럼 보임

 

시분할 시스템 (TSS, Time Sharing System)

  • 정의: 시분할 시스템은 여러 사용자가 동시에 시스템을 사용하도록 지원하는 시스템이다. 각 사용자에게 일정한 시간 간격으로 CPU를 할당하여, 여러 사용자들이 동시 사용하는 것처럼 보이게 만든다.
  • 핵심 개념: 여러 사용자가 순차적으로 매우 짧은 시간동안  CPU를 사용하게 하여, 응답 시간을 빠르게하고 다중 사용자 환경을 지원
  • 목적: 다수의 사용자가 동시에 시스템을 사용할 수 있도록 하여 시스템 자원을 효율적으로 분배하고, 빠른 응답 시간을 제공
  • 동작 과정
    • 시스템은 여러 사용자가 각자 CPU 사용 시간을 할당 받는다
    • CPU는 시간 슬롯을 기준으로 각 사용자가 차례로 시스템을 사용하게 함
    • 각 사용자에게 할당된 시간 슬롯 동안만 작업을 수행
    • 사용자들의 요청에 대해 빠른 응답을 제공, 각 사용자는 빠르게 시스템을 사용할 수 있음

 

분산 처리 시스템 (Distributed Processing System)

  • 정의: 분산 처리 시스템은 여러 개의 컴퓨터(노드)가 네트워크를 통해 연결되어 공동으로 작업을 처리하는 시스템이다. 각 노드는 독립적으로 작업을 처리하며, 필요한 경우 네트워크를 통해 서로 협력한다.
  • 핵심 개념: 각 컴퓨터는 독립적인 자원을 가지고 있지만, 네트워크를 통해 서로 협력하여 작업을 분담하고 처리한다. 
  • 목적: 시스템의 성능을 향상시키고, 고장 발생 시 다른 노드가 작업을 대신 처리하여 가용성을 높임
  • 동작 과정
    • 여러 개의 독립된 컴퓨터가 네트워크로 연결
    • 작업이 여러 노드로 분배되어 병렬 처리
    • 각 노드는 자체적으로 작업을 처리하고, 필요한 경우 데이터를 주고받으며 협력
    • 고장난 노드는 다른 노드가 대신 처리하도록 하여 장애 허용을 제공
    • 시스템은 부하 분산을 통해 각 노드의 부하를 효율적으로 관리

 

다중 처리 시스템 (MultiProcessing System)

  • 정의: 다중 처리 시스템은 여러 개의 CPU를 사용하여 병렬로 작업을 처리하는 시스템이다. 각 CPU는 동시에 작업을 처리하여 성능을 극대화함
  • 핵심 개념: 두 개 이상의 CPU가 병렬로 작업을 처리함으로써 성능을 향상시키며, 하나의 프로세서가 고장나더라도 다른 프로세서가 작업을 계속 처리할 수 있음
  • 목적: 여러 CPU를 활용하여 병렬 처리를 통해 작업 속도를 향상시키고, 가용성을 높임
  • 동작 과정
    • 여러 개의 CPU가 시스템에 설치됨
    • 작업이 여러 CPU에 병렬로 분배되어 동시에 처리
    • 각 CPU는 독립적으로 작업을 처리하며, 작업 간에 상호 협력 가능
    • 하나의 CPU가 고장나더라도, 다른 CPU가 작업을 대신 처리 가능
    • 작업의 효율성을 높이기 위해 동기화 및 작업 분배가 이루어짐

 

시스템 정의 핵심 개념 목적 동작 과정
다중 프로그래밍 시스템 하나의 CPU를 사용하여 여러 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템 CPU는 한 번에 하나의 프로그램만 실행, 빠르게 전환하여 여러 프로그램이 실행되는 것처럼 보임 CPU 활용도 극대화, 유후 상태 최소화 여러 프로그램이 메모리에 적재되고, CPU는 프로그램을 빠르게 전환하여 실행
시분할 시스템 여러 사용자(작업)가 동시에 시스템을 사용할 수 있도록 지원하는 시스템 여러 사용자가 순차적으로 매우 짧은 시간동안 CPU를 사용 다수의 사용자가 동시에 시스템을 사용, 빠른 응답 시간 제공 사용자는 짧은 시간동안 CPU를 사용하며, 응답 시간이 빠름
분산 처리 시스템 여러 개의 컴퓨터(노드)가 네트워크를 통해 협력하여 작업을 처리하는 시스템 여러 독립적인 컴퓨터가 네트워크로 연결되어 협력하여 처리 성능 향상, 고장 허용, 부하 분산 작업을 여러 노드로 분배하고, 고장 시 다른 노드가 대신 처리
다중 처리 시스템 여러 개의 CPU가 병렬로 작업을 처리하는 시스템 여러 CPU가 동시에 작업을 처리하여 성능 향상 병렬 처리 속도 향상, 가용성 향상 여러 CPU가 독립적으로 작업을 처리하며, 고장 시 다른 CPU가 대신 처리

 

'운영체제' 카테고리의 다른 글

[운영체제] 컴퓨터 시스템 구성 요소  (0) 2025.03.23