티스토리 뷰

Major/운영체제

[OS-1] 운영체제란?

wan-blog 2019. 4. 6. 14:07
반응형

1.운영체제란?

컴퓨터 하드웨어 바로 위에 설치되어 사용 및 다른 모든 소프트웨어를 연결하는 소프트웨어 계층으로
써 컴퓨터 메모리를 효율적으로 관리하는 역할을 한다.

커널이란
컴퓨터와 전원을 켜면 운영체제는 이와 동시에 수행된다. 한편 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야한다. 마찬가지로 운영 체제 자체도 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라가야한다. 하지만, 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할것이다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이 때 메모리에 상주하는 운영체제의 부분을 커널이라 한다. 또 이것을 좁은 의미의 운영체제라고도 한다. 즉 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다.
이에 반에 넓은 의미의 운영체제는 커널뿐 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다.(보통은 운영체제라고 하면 커널을 말하게 된다.)

1.1 운영체제의 목적

  • CPU, 기억장치, 입출력장등의 컴퓨터 시스템 자원 등을 효율적으로 관리하는것

1.2 운영 체제 목표

  • 컴퓨터 시스템을 편리하게 사용할 수 있도록 운영체제는 동시 사용자/ 프로그램들이 각각 독자적으로 컴퓨터에서 수행되는것같은 황상을 제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
  • 프로세서(CPU), 기억장치, 입출력 장치등을 효율적으로 관리

1.3 운영체제의 분류

운영체의 분류는 크게 동시 자원을 지원하는지 여부 즉 여러 프로그램을 한번에 돌리수 있냐의 분류방식과, 작업을 처리하는 방식 여부에따른 분류등으로 나눌 수 있다.

동시 자원을 지원하는지 여부에 따른 분류

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

단일작업
  • 한번에 하나의 작업만 처리
  • DOS같은 환경
다중작업 운영체제
  • 동시에 두개이상의 작업처리
    아래는 다중 작업 운영체제의 프로그램들이 시스템들이다.

시분할 시스템이란[CPU가 한개있는 컴퓨터의 성질]
컴퓨터 처리 능력을 짧은 시간단위로 구분하고 이를 여러 사용자에게 조금씩 분할해 서비스하는 방식을 말한다. 예를 들어 시분할 방식을 사용하는 메인 프레임 컴퓨터에서는 전국에 있는 여러 은행 지점의 많은 터미너들을 동시에 서비스하는것이 가능하다. 여기에서 '동시'라는 표현을 썻지만 정확하게는 메인 프레임 컴퓨터가 매 시점 하나의 터미널만을 서비스하므로 동시란 말이 정확한것은 아니다. 단지 메인 프레임 컴퓨터가 여러 터미널을 아주 짧은 시간 간격으로 나누어 서비스하기 때문에 각 터미널 입장에서는 동시에 서비스를 받게 되는 느낌이다.

다중 프로그래밍 시스템[CPU가 한개있는 컴퓨터의 성질]
CPU와 달리 메모리의 경우 여러 프로그램들이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라갈 수 있다. 이처럼 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템을 다중 프로그램 시스템이라 한다.

다중처리기 시스템(multi-processor system)[CPU가 한개이상있는 컴퓨터의 성질]
하나의 컴퓨터안에 CPU가 여러개 설치된 경우를 뜻하므로 위의 용어들과는 의미가 다르다. CPU가 여럿 있는 컴퓨터는 서로 다른 CPU안에서 여러 프로그램이 동시에 수행될 수 있어 처리가 더욱 빨라지지만, 운영체제 입장에서는 여러 CPU를 관리하기 위해 더욱 복잡한 매커니즘을 사용해야한다.

작업을 처리하는 방식 여부에 따른 분류

일괄 처리(batch processing)
작업 요청의 일정량을 모아서 한꺼번에 처리 하는 방식이다.
시분할(time sharing)
여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 빠르게 나눠서 처리하는 방식

실시간(real time)
실시간 운영체제는 정해진 시간안에 일이 반드시 종료됨이 보장되어야하는 시스템에서 사용된다.

1.4 운영체제 자원관리 기능

운영 체제의 핵심은 자원을 어떻게 효율적으로 관리할것인가이다. 자원은 하드웨어 자원과 소프트웨어 자원으로 나뉜다. CPU는 통상적으로 컴퓨터 한대에 하나가 장착되기 때문에 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리해야한다. CPU와 메모리는 전원이 꺼지면 처리중이던 정보가 모두 사라지기 때문에 전원이 나가도 기억해야하는 부분은 보조기억장치에 파일형태로 저장된다. 이러한 파일들이 저장되는 방식 및 접근 권한등에 대해서도 운영체제가 관리를 해주어야한다.

먼저 CPU 관리방법부터 알아보자.

CPU 스케줄링

여러개의 프로세스가 실행될 때 어떠한 프로세스에게 CPU 를 처리할지 결정이 필요하다. 이러한 결정을 처리하는것이 CPU 스케줄링이라한다.

선입선출(First Come First Served)

먼저 CPU를 사용하기 위해 도착한 프로세스를 먼저 처리해주는 방식을 말한다. 이는 일상생활에서 줄서기하는것과 같다. 이방법을 사용하면 먼저 CPU를 요청한 프로세스가 작업이 끝날 때 까지 다른 프로세스들은 작업을 할 수 없다. 이방법은 CPU는 효율적으로 계속 작업은 할 수 있으나 전체적인 프로세스를 처리하는 면에서는 비효율적인 방법이다.

라운드 로빈(Round Robin)

선입선출의 방법을 보안하고자 나온 방법이 라운드 로빈 스케줄링이다. 이 기법에서는 CPU를 한 번 할당받아 사용할 수 있는 시간을 일정한 고정된 시간으로 제한한다. 긴작업이 필요한 프로세스가 CPU를 할당받더라도 정해진 시간이 지나면 CPU를 내어놓고 CPU의 서비스를 기다리는 줄의 제일 뒤에서 기다려야한다. 이렇게되면 뒤의 프로세스들이 무작정 오래 기다려야하는 상황은 막을 수 있다.

우선순위(Priority)

이기법은 수행 대기중인 프로세스들에게 프로그램에 따라 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저 할당하게 된다. 또한 지나치게 오래 기다리는 프로세스가 발생하지 않도록, 기다린 시간이 늘어날수록 우선순위를 점차 높여주는 방안도 사용되어질 수 있다.

메모리 관리

물리적 메모리를 관리하는 방식에는 고정분할방식, 가변분할방식, 가상메모리 방식이 있다.

고정 분할(fixed partion)

물리적 메모리를 몇개의 영구적인 분할로 나눈다. 나뉜 각각의 분할에는 하나의 프로그램이 적재된다. 이방식은 단순해서 분할의 크키보다 큰프로그램은 적재가 불가능하다. 이렇기때문에 메모리의 효율적인 사용측면에서도 바람직하지 않다.

가변 분할(variable partion)

매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식이다. 따라서 분할의 큰 프로그램의 실행이제한되는 문제는 발생하지 않는다. 그러나 물리적 메모리크기보다 더 큰 프로그램의 실행은 여전히 불가능하다.

가상 메모리(virtual memory)

최근에 거의 모든 컴퓨터 시스템에서 사용하는 메모리 관리 기법이다. 가상 메모리 기법에서는 물리적 메모리보다 더 큰프로그램이 실행되는것을 지원한다. 이때 실행될 수 있는 프로그램의 크기는 가상 메모리 크기에 의해 결정된다. 운영체제는 물리적인 주소와 가상 메모리에 주소를 매핑하여 관리한다. 실제 이렇게 가상 메모리를 할당할 수 있게하는것은 실행되지 않는 부분의 프로그램은 보조디스크에 두었다가 필요할때 메모리에 적재하는 방식이다. 이때 그리고 보조 기억장치에서 사용되느부분을 스왑 영역이라한다.

주변 장치 및 입출력 장치

CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리한다. 주변 장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게되는데 이 때 발생시키는 신호를 인터럽트라고 한다. CPU는 평소에 CPU 스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행하게 된다.
주변 장치들은 각 장치마다 그 장치에서 일어나는 업무에대한 관리를 위한 일종의 작은 CPU를 가진다. 이를 컨트롤러라고하는데 이컨트롤러를 바탕으로 무언가 입력이되면 CPU 에게 인터럽트를 발생시켜 보고하는 역할을 한다. 그러면 CPU는 하던일을 잠시 멈추고 인터럽트에 대한 처리를 하기 위해 운영체제로 할당이 넘어간다.

참조


반응형

'Major > 운영체제' 카테고리의 다른 글

[OS-2] 컴퓨터 시스템 구조란?  (0) 2019.04.06
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함