[OS] 운영체제 소개

sky·2022년 4월 4일
0

정리

목록 보기
1/13
post-thumbnail

(1) 운영체제란?

  • Operating System - 줄여서 OS라고 부른다.
  • 컴퓨터 모든 자원들의 사용 및 공유 문제를 해결한다.
    여기서 자원은 CPU, Memory, Monitor, 키보드 등을 말하는 것으로 OS가 이러한 모든 자원들을 통제한다.
  • 컴퓨터 하드웨어와 사용자 간의 매개체 역할을 하는 시스템 소프트웨어로 사용자가 프로그램을 수행할 수 있는 환경을 제공해준다. 다시 말하면 하드웨어와 소프트웨어를 연결해주는 특수한 SW다.
Ex) Mac, Android, Windows, Linux etc. 이러한 OS있어야 부팅이 되는데 없으면 컴퓨터 사용이 불가하다.
부가설명 - 시스템 소프트웨어에는 OS, 컴파일러, 어셈블러, 로더, 링커 등이 있다.

(2) 운영체제의 목적

  • 컴퓨터 시스템을 편리하게 이용할 수 있도록 한다.
  • 컴퓨터 하드웨어 자원을 효율적으로 관리하고 사용할 수 있게 한다.

(3) OS 유형

1. MultiProgramming System을 위한 OS

  • Memory(주기억장치)내에 여러 개의 프로그램들을 동시에 수행해서 CPU의 유효시간을 최소화(이용률을 높임)하기 위한 방법이다.
  • 현재 널리 이용하고 있는 시스템이다.
  • 이전 방식에서는 순차 프로그래밍 방식을 이용했는데 CPU가 필요하지 않은 부분(입출력하고 있을 때)은 유휴상태(idle state)가 되기 때문에 비효율적이다.
  • 그래서 유휴시간을 최소화하기 위한 방법이 다중 프로그래밍 시스템이다.

특징

  • 메모리에 준비상태에 있는(프로그램이 메모리에 올라와 있는 상태) 여러 개의 프로그램들 중에서 실행할 프로그램을 선정하는 방법인 스케줄링이 필요하다.
  • CPU 효율성은 좋으나 OS가 많은 문제들을 해결해야 한다.
    • 메모리에 복수 개의 프로그램을 동시에 유지해야 하고 CPU 할당 시간에 대한 스케줄링을 책임져야 한다.
    • 스케줄링, 병행제어, 교착상태 및 보호 문제 등을 해결해야 한다.
    • 실행중인 프로그램들 간의 통신 및 I/O 장치의 사용에 대한 제어 및 관리를 책임져야 한다.

2. Multiprocessing System을 위한 OS

  • 여러 개의 CPU를 하나의 시스템에 설치한 것으로 빠른 수행을 목적으로 한다.
  • 그러나 잘 사용하지 않고 가격이 비싸다.
  • Tightly coupled system(밀착된 결합 방식)
    • 하나 이상의 CPU가 컴퓨터 버스, 메모리, 주변장치를 공유하면서 빠른 수행을 목표로 한다. CPU가 여러개지만 메모리는 하나다.(즉, 하나의 메모리가 여러 개의 CPU를 공유) 단점은 복잡성이 커서 공유를 안 하는 게 좋다.
  • Loosley coupled system(느슨한 결합 방식)
    • 각 CPU가 자신의 지역(개별) 기억장치를 가지며, CPU들은 고속의 버스나 광섬유와 같은 다양한 통신 회선을 통해 서로 통신하는 분산 시스템이다.(즉, CPU 하나에 메모리가 각자 한 개씩 연결 되어있다.

특징

  • 목적은 컴퓨터 처리율을 증대시키기 위함이고 CPU를 여러 개 사용하여 작업 속도와 *신뢰성을 높일 수 있다.
  • OS는 여러 CPU간의 기억장치 공유를 어떻게 지원할 것이며, 여러 CPU 사용에 대한 스케줄링을 어떻게 할 것인가를 결정해야 한다.
*신뢰성 : 한 개의 CPU가 고장이 나도 나머지 CPU가 돌아가서 신뢰성이 높다라고 말한다. 즉, 문제가 발생해도 처리가 가능하다.

3. Batch Processing System을 위한 OS

  • 요구사항이 비슷한 작업(프로그램)들을 함께 묶어서 수행한다.(Operator(사람)가 작업을 묶어서 수행)
  • 각각의 작업을 수행하는 필요한 작업 준비 시간을 줄일 수 있다.
  • 그러나 현재 수행되는 작업이 끝나기 전까지 다른 작업을 수행할 수 없다.(stop못함)

특징

  • 프로그램의 오류수정 작업이 어렵지만 그럼에도 사용하는 이유는 비슷한 것끼리 모아서 처리하기 때문에 효율이 좋다.
  • CPU가 유휴 상태가 되기 쉽다.(batch 작업 내에 *I/O이 있는 경우)
  • 초기 메인프레임 컴퓨터의 OS에서 활용되고, 최근에는 주기적으로 한꺼번에 처리되어야 하는 업무에 활용되고 있다.
    • Ex) 월급계산, 전화요금계산, 전기요금계산, 성적처리 etc.
*I/O : 화면, 키보드, 마우스 etc.

4. Time-sharing System을 위한 OS

  • 사용자들이 컴퓨터 자원을 짧은 시간 단위로 나눈 다음 공유(sharing)하여 사용하는 것이다.
  • 사용자는 *대화식(Interactive) 단말장치를 이용하여 사용한다.
  • 사용자는 자신이 컴퓨터를 독점하여 사용하고 있다고 생각한다.(실제로는 동시에 사용중)
  • Multi와 비슷하지만 Multi는 효율적인 것을 먼저 처리하고 시분할은 순서가 있다는 것에서 차이가 있다.
  • 사용자의 프로그램을 순서대로 큐에 저장하고 들어온 순대로 CPU -> 기억장치 <-> I/O 처리한다.
*Interactive 단말장치: 화면과 키보드가 있는 단말장치로, 대화식으로 정보를 주고받을 수 있는 기능이 있어 상호 대화를 지원

특징

  • 컴퓨터 자원 제어에 대한 대부분의 책임을 OS에 맡긴다.
  • 다중 프로그래밍 시스템과 동일한 기능 수행을 필요로 한다.
    • OS는 기억 장치에 복수 개의 프로그램을 동시에 유지하는 문제에 대한 책임을 지고 있다.
    • 사용자들에 대한 공정한 자원 공유를 보장하기 위하여 CPU 할당 시간에 대한 스케줄링 책임이 있다.
    • 실행중인 프로그램들 간의 통신 및 I/O 장치 사용에 대한 제어 및 관리 책임이 있다.

5. Real-time System을 위한 OS

  • 프로그램의 작동이나 데이터의 흐름에 엄격한 시간적 제약이 있을 때 사용한다.
  • 사전에 정의된 제약 시간 내에 프로그램이 수행되어야 한다. (반드시 사전에 정의되어야 함)
  • 우선순위를 높여서 다른 프로세스보다 빨리 처리하는 경우 (특정 프로세스에 우선권을 부여)
    • 여기서 프로세스는 실행중인 프로그램으로 메인 메모리에 올라와 있는 경우다.
Ex) 센서 등 사건 발생 신호를 받아 빠른 처리가 필요한 경우, 과학 실험을 제어하는 시스템, 
의학 영상 시스템, 산업 제어 시스템

6. Distributed Processing System을 위한 OS

  • 하나의 대형 컴퓨터에서 수행하던 기능을 지역적으로 분산된 여러 개의 컴퓨터에 분담시킨 후, 통신망을 통하여 상호간에 교신하여 처리하는 방식이다.
  • 분산처리 시스템들의 상호연결은 네트워크에 의해 이루어지고, 현재 자주 쓰이고 있다.
  • 인공지능, 딥러닝, 빅데이터 등에 주로 사용하여 가격이 저렴하다.

분산처리 시스템의 OS 기법

  • 네트워크 OS : 각 컴퓨터(노드)가 독자적인 OS를 가짐
  • 분산 OS : 전체 컴퓨터들(노드들)에 대하여 하나의 OS를 가짐

목적

  1. 컴퓨터 자원의 공유 (CPU, 메모리, 입출력 장치 etc)
  2. 연산 속도 증가 (성능 향상)
  3. 신뢰성(Reliablity) 향상 (대신 수행 가능)
  4. 통신 지원 (인터넷이 없어도 네트워크 연결 가능)

7. Personal Computer System을 위한 OS

  • 대형 시스템(Mainframe)보다 작고 값이 싼 초소형 컴퓨터이다.
  • CPU와 주변장치의 이용률 최대화보다 편리성/응답성을 중요시 한다.
  • 개인 사용자 중심 기능을 제공하기 위한 OS이다.
  • Multi-programming을 지원한다.

8. Embedded System을 위한 OS

  • 마이크로프로세서 or 마이크로컨트롤러를 내장하여 시스템 제작자가 의도한 몇 가지 혹은 특수한 기능만을 수행하도록 제작된 시스템이다.
  • 임베디드 시스템의 한정된 자원들에 맞게 최적화된 OS를 보유하고 있다.
  • Linux, Android 등의 OS가 변형되어 많이 사용된다.
Ex) 셋톱 박스, IOT etc
*마이크로 프로세서 : CPU의 핵심 기능을 통합한 집적 회로(IC)로 아주 작은 CPU다.
*마이크로컨트롤러 : 마이크로프로세서와 이를 사용하기 위한 메모리, 입력장치 등의 필요한 기능이 함께 집적된 장치다.

9. Multimedia System을 위한 OS

  • 이미지/그래픽, 사운드, 애니메이션 및 비디오 등 다양한 미디어를 이용하여 멀티미디어 콘텐츠를 제작하기 위해 필효한 HW와 SW로 구성되어 있다.
profile
개발자가 되고 싶은 1人

0개의 댓글