[운영체제] 운영체제의 개념

Letmegooutside·2022년 1월 5일
1

운영체제

목록 보기
1/16

운영체제란 ?

컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공하는 소프트웨어

운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종으로 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

운영체제도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 발생한다.

따라서 운영체제 중 항상 필요한 부분만 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다. 이 때 메모리에서 상주하는 운영체제의 부분을 커널(Kernel) 이라고 한다. 커널은 운영체제 코드 중에서 핵심적인 부분이다.

종류

Windows, Unix, Linux, MS-DOS 등이 있다.
주로 Windows는 개인용, UnixLinux는 서버용 운영체제로 사용된다.

기능

운영체제는 컴퓨터 하드웨어와 사용자 사이에 존재하며, 사용자가 직접 운영하기 힘든 하드웨어에 대해서 운영체제가 관리하기도 하고 사용자에게 편리한 인터페이스를 제공하는 역할도 한다.

  • 컴퓨터 시스템 내의 자원을 효율적으로 관리한다.
    - CPU, 메모리 및 주변 장치, 입출력 장치 등 하드웨어 자원과 소프트웨어 자원을 관리한다.
    - CPU 스케줄링, 메모리, 파일, 입출력, 프로세스(생성,삭제,자원 할당 및 반환, 프로세스 간 통신) 등을 관리한다.

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

  • 사용자 및 프로그램들 간에 자원이 형평성 있게 분배되도록 균형자 역할을 한다.


분류

동시 작업을 지원하는지 여부에 따라 단일 작업용 운영체제다중 작업용 운영체제로 나누어 볼 수 있다.

1. 단일 작업용 운영체제

한 번에 하나의 프로그램만 수행시킬 수 있는 운영체제

DOS 환경에서는 하나의 프로그램이 수행되는 동안 다른 프로그램을 수행시킬 수 있는 명령어 입력 라인이 뜨지 않아 한 번에 하나만 작업할 수 있었다.

2. 다중 작업용 운영체제

하나의 프로그램의 수행이 끝나기 전에 다른 프로그램을 수행시킬 수 있는 운영체제

최근에는 대부분의 운영체제가 다중 작업을 지원하고 있다.

  • 다중 작업용 운영체제에서는 여러 프로그램이 CPU와 메모리를 공유하게 된다. 하지만 일반적으로 CPU는 하나밖에 없으며, 다중 작업용 운영체제라도 CPU에서는 매 순간 하나의 프로그램만이 수행된다.

  • 이는 CPU의 처리속도가 워낙 빨라 수 ms 이내의 짧은 시간 간격으로 여러 프로그램이 CPU에서 번갈아 수행되기 때문에 여러 프로그램이 동시에 수행되는 것처럼 보이게 된다.

1. 시스템에 따른 분류

  • 시분할 시스템 : CPU의 작업 시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템

  • 다중 프로그래밍 시스템 : 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템

  • 다중처리기 시스템 : 하나의 컴퓨터 안에 CPU가 여러 개 설치된 시스템.

2. 다중 사용자의 동시 지원 여부에 따른 분류

  • 단일 사용자용 운영체제 : 한 번에 한명의 사용자만이 사용하도록 허용하는 운영체제

  • 다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제 (이메일 서버, 웹 서버, MS 윈도즈 등)

3. 작업을 처리하는 방식에 따른 분류

  • 일괄 처리 : 작업 요청의 일정량을 모아서 한꺼번에 처리하는 방식. 따라서 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다. ⇒ 응답시간이 길다.

  • 시분할 방식 : 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식 ⇒ 일괄 처리 방식에 비해 짧은 응답 시간을 갖는다.
    - 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라 부르며, 시분할 방식이 대표적인 예이다.

  • 실시간 처리 : 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 시스템
    시간 제약의 중요성에 따라 아래와 같이 두 가지로 나뉜다.
    - 경성 실시간 시스템 : 주어진 시간을 지키지 못할 경우, 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말한다.
    - 연성 실시간 시스템 : 멀티미디어 스트리밍 시스템과 같이 데이터가 시간을 맞추어 전달되어야 올바른 기능을 수행할 수 있는 시스템. (위험한 결과를 초래하지는 않는다.)





Reference

https://github.com/WooVictory/Ready-For-Tech
https://coding-factory.tistory.com/300

0개의 댓글