[OS] 운영체제

정의정·2023년 7월 22일
0

OS

목록 보기
1/6
post-thumbnail

💡 운영체제

🌟 운영체제(Operating System : OS)란?

운영체제(Operating System:OS)는 컴퓨터 하드웨어 바로 위에 설치되는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.

좁은 의미의 운영체제

커널. 운영체제의 핵심부분으로, 메모리에 상주하는 부분.

넓은 의미의 운영체제

커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념.


🌟 운영체제의 목적

1. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공한다.

운영체제는 동시 사용자/프로그램들이 각각 독자적인 컴퓨터에서 수행되는 것 같은 환상을 제공한다. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다.

2. 컴퓨터 시스템의 자원을 효율적으로 관리한다.

👉🏻 프로세서, 기억장치, 입출력 장치 등의 효율적 관리를 목적으로 한다.
👉🏻 사용자 간 형평성이 있도록 자원을 분배하고, 주어진 자원으로 최대한의 성능을 낼 수 있도록 한다.
👉🏻 사용자 및 운영체제 자신을 보호한다.
👉🏻 프로세스, 파일, 메시지 등을 관리한다.


🌟 운영체제의 기능

👉🏻 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원을 관리한다.
👉🏻 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
👉🏻 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
👉🏻 시스템의 각종 하드웨어와 네트워크관리하고 제어한다.
👉🏻 데이터를 관리하고 데이터 및 자원의 공유 기능을 제공한다.
👉🏻 시스템의 오류를 검사하고 복구한다.
👉🏻 자원 보호 기능을 제공한다.
👉🏻 입출력 보조 기능을 제공한다.


🌟 운영체제의 분류

1. 동시 작업 가능 여부에 따른 분류

단일 작업(Single tasking)

한 번에 하나의 작업만을 처리한다.
ex) MS-DOS

다중 작업(Multi tasking)

동시에 두 개 이상의 작업을 처리한다.
ex) UNIX, MS Windows

2. 사용자의 수에 따른 분류

단일 사용자(Single user)

ex) MS-DOS, MS Windows

다중 사용자(Multi user)

ex) UNIX, NT server

3. 처리 방식

일괄 처리(Batch processing)

👉🏻 작업 요청을 일정량 모아서 한꺼번에 처리한다.
👉🏻 작업이 완전히 종료될 때까지 기다려야 한다.
ex) 초기 Punch card 처리 시스템

시분할(Time sharing)

👉🏻 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다.
👉🏻 일괄 처리 시스템에 비해 짧은 응답 시간을 가진다.
👉🏻 nteractive한 방식이다.
ex) UNIX

실시간(Realtime OS)

👉🏻 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 운영체제이다.
ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어

👀실시간 시스템의 개념 확장

👉🏻 실시간 시스템 (Hard realtime system)
👉🏻 연성 실시간 시스템 (Sofd realtime system)


🌟 동시 작업 용어 정리

여러 작업을 수행하는 것에 대한 여러 용어들의 차이를 알아보자.

Multitasking

여러 작업을 동시에 수행하는 것을 말한다.

Multiprogramming

여러 프로그램이 메모리에 올라가 있음을 강조한다.

Time sharing

CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조한다.

Multiprecess

하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미한다.


🌟 운영체제의 성능

운영체제의 성능을 평가하는 기준으로는 어떤 것이 있을까?

처리 능력(Throughput)

일정 시간 내에 시스템이 처리하는 일의 양

반환 시간(Turn Around Time)

시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

사용가능도(Availability)

시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

신뢰도(Reliability)

시스템이 주어진 문제를 정확하게 해결하는 정도


🌟 운영체제의 예

1. 유닉스(UNIX)

👉🏻 코드의 대부분을 C언어로 작성했다.
👉🏻 높은 이식성을 가진다.
👉🏻 최소한의 커널 구조를 가진다.
👉🏻 복잡한 시스템에 맞게 확장이 용이하다.
👉🏻 소스 코드가 공개되어 있다.
👉🏻 프로그램 개발이 용이하다.
👉🏻 다양한 버전이 있다.

Version

System V, FreeBSD, SunOS, Solaris
Linux

2. DOS(Disk Operating System)

👉🏻 MS사에서 1981년 IBM-PC를 위해 개발했다.
👉🏻 단일 사용자용 운영체제이다.
👉🏻 메모리 관리 능력의 한계가 있다. (주 기억 장치 : 640KB)

3. MS Windows

👉🏻 MS사의 다중 작업GUI 기반 운영체제이다.
👉🏻 Plug and Play, 네트워크 환경이 강화됐다.
👉🏻 DOS용 응용 프로그램호환성을 제공한다.
👉🏻 불안정성을 갖고 있다. (블루스크린이 뜨거나, 재부팅이 필요한 경우가 있다.)
👉🏻 풍부한 지원 소프트웨어를 이용할 수 있다.

4. macOS

👉🏻 Macintosh의 운영체제인 클래식 Mac OS와 Mac OS X의 후속작이다.
👉🏻 Apple사가 UNIX/Darwin기반으로 개발했다.
👉🏻 하드웨어와 함께 완제품으로만 판매한다.
👉🏻 그래픽적으로 화려하다는 평가를 받는다.
👉🏻 iPhone OS(현 iOS)도 이를 반으로 한다.
👉🏻 iOS와 실시간 동기화가 가능해 편리하다.

5. Handheld device를 위한 OS

👉🏻 PalmOS, Pocket PC (WinCE), Tiny OS, Android, iOS 등이 있다.

📖 교재 및 출처

  • A. Silberschatz et al., Operating System Concepts, 9th Edition, John Wiley & Sons, Inc. 2013.
  • A. Silberschatz et al., Operating System Principles, Wiley Asia Student Edition
  • 반효경님, 운영체제와 정보기술의 원리
profile
배움 기록

0개의 댓글