Home [운영체제 스터디] 운영체제란 무엇인가?
Post
Cancel

[운영체제 스터디] 운영체제란 무엇인가?

🌟 본 게시물은 이화여자대학교 반효경 교수님 강의를 참고로 작성한 게시물 입니다. 틀린 내용은 꼬옥 지적 부탁드립니다 ! 🌟

1. 운영체제란 무엇인가?

컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다. 운영체제는 하드웨어와 소프트웨어를 연결하는 소프트웨어 계층이다.

✔️ 운영체제의 주요역할

  • 하드웨어 자원을 효율적으로 관리
  • 사용자가 컴퓨터를 쉽게 다룰 수 있게 GUI 인터페이스 제공

✔️ 자원이란 CPU, 메모리, 하드웨어 뿐만 아니라 소프트웨어 자원까지 포함하여 부르는 말이다. 자원관리는 운영체제의 중요한 역할 중 하나이다*

✔️ 협의의 운영체제(커널)

  • 운영체제의 핵심 부분으로 전원이 켜짐과 동시에 메모리에 상주하는 부분

✔️ 광의의 운영체제

  • 커널 뿐만 아니라 각종 시스템 유틸리티를 포함한 개념
  • 항상 메모리에 올려두는 것이 아닌 별도의 프로그램으로서 사실상 운영체제의 일부라고 보긴 어렵지만 운영체제와 함께 설치되기 때문에 넓은 의미로 포함시킨다.

2. 운영체제의 목적

✔️ 운영체제의 핵심은 하드웨어를 효율적으로 관리할 수 있게 하는 것

✔️ 주어진 자원으로 최대한의 성능을 내도록

✔️ 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 것

  • 사용자간의 형평성 있는 자원 분배

✔️ 사용자 및 운영체제 자신을 보호

✔️ 프로세스, 파일, 메세지(소프트웨어 자원) 등을 관리

✔️ 운영체제의 자원? (하드웨어)

  • CPU, RAM, IO 장치 등등

3. 운영 체제의 분류

✔️ 동시 작업 가능 여부

  • 단일 작업(sigle tasking)
    • 한 번에 하나의 작업만 처리
  • 다중 작업(multi tasking)
    • 동시에 두 개 이상의 작업 처리
    • 현대의 운영체제 들은 대부분 다중 작업이 가능한 운영체제

✔️ 사용자의 수

여러 사용자가 동시에 접근할 수 있는지를 기준으로 구분

  • 단일 사용자(sigle user) 예 ) MS-DOS, MS Windows
  • 다중 사용자(multi user) 예 ) UNIX, NT server

✔️ 처리 방식

  • 일괄 처리(bath processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야함 예 ) 초기 Punch Card 처리 시스템
  • 시분할(time sharing)
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답을 가짐
    • interactive한 방식
    • 범용 컴퓨터의 처리방식
  • 실시간(Realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS 예 ) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
  • 실시간 시스템의 개념 확장
    • Hard realtime system (경성 실시간 시스템)
    • Soft realtime sysytem(연성 실시간 시스템)

✔️ 몇 가지 용어

  • Multitasking (여러 프로그램이 실행되는 것)
  • Multiprogramming (메모리에 여러 프로그램이 올라가있음을 강조)
  • Time sharing (Multitasking과 유사하지만 CPU 강조)
  • Multiprocess
  • Multiprocessor
    • 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미
  • 구분
    • 위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다
    • Multiprogramming은 여러 프로그램이 메모리에 올라가 있음을 강조
    • Time Sharing은 CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조

✔️ 운영 체제의 예

  • UNIX
    • 코드의 대부분을 C언어로 작성 됨
    • 높은 이식성
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스 코드 공개
    • 프로그램 개발에 용이
    • 대형 컴퓨터를 위해 만들어짐
    • 다양한 버전
      • System V, FreeBSD, SunOs, Solaris
      • Linux (Unix 소스코드 기반)
  • DOS(Disk Operating System)
    • MS사에서 1981년 IBM-PC를 위해 개발
    • 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억 장치 : 640KB)
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 운영 체제
    • Plug and Play, 네트워크 환경 강화
    • DOS용 응용 프로그램과 호환성 제공
    • 불안정성 (초창기 Windows)
    • 풍부한 자원 소프트웨어
  • Hanheld device를 위한 OS
    • PalmOS, Pocket PC (WinCE), Tiny OS

4. 운영체제의 구조

CPU, Memory, I/O Device, Disk (운영체제는 각 자원들을 관리한다)

✔️ CPU 스케줄링

  • 어떤 프로그램에게 우선순위를 할당할지?
    • 짧은 간격으로 프로그램을 교체 함 (시분할)
    • 프로그램이 실행된 순서대로 우선순위를 할당하면 작업이 길어질 경우 나머지 프로그램 응답시간이 길어지기 때문에 사용하지 않는다.

✔️ 메모리 관리

  • 한정된 메모리를 어떻게 관리하나?
    • 프로그램 실행에 필요한 최소한의 정보만을 메모리에 올려 둠
    • CPU에서 사용될 가능성이 낮은 정보들을 DISK에 내려둔다.
    • CPU에서 사용될 가능성이 낮은 정보를 어떻게 판단하는지?
      • 데이터가 메모리에 올라간 이후로 자주 사용된 데이터이면 사용될 가능성이 높은 정보로 판단한다

✔️ DISK 파일관리

  • DISK 스케줄링 (엘리베이터 스케줄링과 유사함 CPU 스케줄링과는 다르다)
    • DISK에 들어온 요청들을 HEAD와 가까운 위치에 들어온 요청이 있다면 먼저 처리하고 DISK HEAD의 이동을 최소화한다.

✔️ I/O Device

  • 다른 자원들에 비해 느리다.
  • 입출력관리 인터럽트
    • I/O Device가 작업을 처리해야할 경우 CPU에게 인터럽트 신호를 준다





[질문 리스트]

  1. 운영체제의 정의를 설명하고 그 기능에 대해 아는대로 설명해주세요
    • 운영체제는 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 운영체제는 사용자가 컴퓨터를 쉽게 다룰 수 있게 GUI 인터페이스 제공하고, 하드웨어 자원을 효율적으로 사용할 수 있게 도와준다.
  2. 운영체제 운용 방법 중 하나인 시분할 시스템에 대해서 설명해주세요
    • 시분할 시스템은 여러 작업을 수행할 때 CPU를 일정한 시간 단위로 프로그램에게 할당하여 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 준다. 라운드 로빈(Round Robin)방식이라고도 한다.
    • 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용시간을 작은 작업 시간량으로 쪼개어그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리하는 방법이다.모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능하다. 각 작업에 대한 응답시간을 최소화 하는 것이 목적이다.
  3. 운영체제의 개념을 좁은 의미와 넓은 의미로 나누어 간략하게 설명하세요
    • 운영체제의 좁은 의미는 운영체제 커널을 의미하고 커널은 운영체제의 핵심 부분임으로 전원이 켜짐과 동시에 메모리에 상주합니다. 운영체제의 넓은 의미는 운영체제의 커널과 각종 주변 유틸리티 시스템을 포함한 개념입니다.
This post is licensed under CC BY 4.0 by the author.