본문 바로가기
💻 Operating System

운영체제란 무엇인가?

by iirin 2023. 1. 25.
Operating System, OS

운영체제

 운영 체제는 컴퓨터에서 실행되는 가장 중요한 소프트웨어이다. 중앙처리장치CPU, 메모리프로세스는 물론 모든 소프트웨어와 하드웨어를 관리하는 역할을 한다.

 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 사용자가 직접 하드웨어를 접해 조작하지 않고 (컴퓨터의 언어를 구사하지 못해도) 운영체제의 관리를 받으면서 원하는 작업을 할 수 있다.

협의의 운영체제 광의의 운영체제
- 전공자의 입장에서 운영체제에 대한 이해. '커널'을 뜻한다.
- 운영체제의 핵심 부분으로 메모리에 상주하는 부분
- 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념

 

운영체제의 유형

 운영체제는 일반적으로 모든 컴퓨터에 미리 로드되어 있다. 최근 운영체제는 그래픽 사용자 인터페이스(GUI)를 사용하여 마우스로 아이콘, 버튼 및 메뉴를 클릭할 수 있으며 그래픽과 텍스트의 조합으로 명확하게 화면에 콘텐츠를 표시한다.

Windows, macOS, Linux가 개인용 컴퓨터에서 일반적으로 쓰이는 운영체제이다.

분류 방식 분류
동시 작업 가능 여부 단일 작업 single tasking
(MS-DOS, 예전 핸드폰 등)
다중 작업 multi tasking
(Unix, MS Windows 등)
 
사용자의 수 단일 사용자 single user
(MS-DOS, MS Windows 등)
다중 사용자 multi user
(Unix, NT server 등)
 
처리 방식 일괄 처리 batch processing 시분할 time sharing 실시간 realtime os

 

처리방식에 따른 운영체제 분류

지금 우리가 사용하는 운영체제는 다중작업, 다중이용자, 시분할 운영체제이다.

일괄 처리

  • 작업 요청을 일정량 모아서 한번에 처리하는 방식
  • 이전 작업이 완전히 종료될 때까지 기다렸다가 처리해야 한다.
  • 예시 : Punch Card 처리 시스템

시분할

  • 현재 컴퓨터의 방식
  • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 아주 짧은 시간 단위로 분할하여 사용한다.
  • 일괄처리 시스템에 비해 짧은 응답시간을 가진다. interactive 한 방식. 바로 결과가 나와 동시에 처리되는 것처럼 보인다.
  • 사용자가 엄청 늘어나면 응답시간이 조금 느릴 수도 있다.
  • 목적은 사용자에게 빠르게 응답하면서, 주어진 자원을 최대한 활용하는 것이 목적이다. 사람에 특화된 시스템이라고 할 수 있다.
  • 예 : UNIX

실시간

  • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS에 많이 사용한다.
  • 보통 특수한 목적을 가진 시스템에서 사용한다.
  • 예 : 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어 등
➕ 실시간 시스템 개념 확장

Hard realtime system 경성 실시간 시스템 : 완전히 정확한 0.0001초가 필요할 때
Soft realtime system 연성 실시간 시스템 : 실시간 중계 등 완전히 정확하지는 않아도 될 때

 

운영체제의 목표

 운영체제는 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하고자 한다.
 하드웨어를 사용자 대신 직접 다루면서 복잡한 부분은 운영체제가 대행한다. 동시에 사용자/프로그램들이 각자 독자적 컴퓨터에서 수행되는 것 같이 느껴지게 한다.

 컴퓨터 시스템의 자원을 효율적으로 관리하고자 한다.
 CPU, 메모리, 입출력 장치 등을 효율적으로 관리하여 사용자간 형평성 있는 자원을 분배한다. 주어진 자원으로 최대한의 성능을 내도록 프로세스, 파일, 메시지 등을 관리한다.

 사용자 및 운영체제 자신을 보호한다.

🤔 주어진 자원을 관리하는 것의 의미

현재 CPU를 점유해야할 프로세스를 결정하고, 할당하며 프로세스간 공유 자원(메모리 등) 접근과 통신을 관리하는 것이다. 이것을 OS Resource Sharing 이라고 한다.

  • CPU 실행중인 프로그램들에 짧은 시간씩 CPU를 번갈아가며 할당한다. (프로세스 생성과 제거, 스케줄링)
  • Memory 실행중인 프로그램들에 메모리 공간을 적절히 분배하고 회수한다.
  • 주변장치 입출력 장치 스케줄링 및 전반적인 관리
  • 파일 파일의 생성과 삭제, 변경, 유지 관리

 

운영체제의 기능

  1. 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원 관리
  2. 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능 제공
  3. 사용자와 시스템간의 편리한 인터페이스 제공
  4. 시스템의 각종 하드웨어와 네트워크 관리, 제어
  5. 데이터 관리, 데이터 및 자원의 공유 기능 제공
  6. 시스템의 오류 검사, 복구
  7. 자원 보호 기능 제공
  8. 입 출력에 대한 보조 기능 제공
  9. 가상 계산기 능력 제공