본문 바로가기

운영체제

2: 운영체제 개요

1.운영체제의 정의

2.운영체제의 기능

3.운영체제의 분류

4.운영체제의 예

5.운영체제의 자원 관리 기능


1.운영체제의 정의

 

운영체제란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다.

 

-좁은 의미의 운영체제: 커널(메모리에 상주하는 운영체제의 부분)

-넓은 의미의 운영체제: 커널뿐 아니라 시스템을 위한 유틸리티를 광범위하게 포함

 

2.운영체제의 기능

 

-컴퓨터 시스템의 자원을 효율적으로 관리

-컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 만들어줌

-보안 및 보호 기능

 

3.운영체제의 분류

동시 작업을 지원하는지 여부에 따라 :

단일작업용 운영체제-ex)도스(DOS)

다중작업용 운영체제-ex)MS 윈도우,유닉스

 

*시분할 시스템(Time sharing system):

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

CPU의 처리속도가 워낙 빨라서 수 밀리초(ms)이내의 짧은 시간 규모로 여러 프로그램들이 CPU에서 번갈아 실행.

사용자 입장에서는 여러 프로그램들이 동시에 실행되는 것 처럼 보임

 

*다중 프로그래밍 시스템(multi-programming system)

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

 

*대화형 시스템(interactive system)

다중작업용 운영체제의 경우 여러 프로그램들을 같이 실행시키지만,사용자 개개인의 관점에서는 각 프로그램에 대한 키보드 입력의 결과를 곧바로 화면에 보여줌. 이러한 시스템을 대화형 시스템이라고 함

 

->다중작업,시분할,다중 프로그래밍,대화형 시스템은 모두 여러 프로그램이 하나의 컴퓨터에서 동시에 실행된다.

 

*다중처리기 시스템(multi-processor system):

하나의 컴퓨터 안에 CPU가 여러개 설치된 경우. 여러 프로그램 동시에 실행 가능해서 처리가 더욱 빨라짐.

But 운영체제 입장에서는 여러 CPU 관리 위해 더 복잡한 메커니즘 필요로 함.

 

다중 사용자에 대한 동시 지원 여부에 따라:

단일 사용자용 운영체제:

 ex)한 번에 하나의 작업만 수행할 수 있는 DOS

 ex)혼자 사용하지만 다중 작업이 가능한 MS 윈도우

다중 사용자용 운영체제:ex)이메일서버, 웹서버에 사용됨

 

*작업을 처리하는 방식에 따라:

-일괄처리 방식(batch processing):

요청된 작업을 일정량씩 모아서 한꺼번에 처리

-시분할 방식:

여러 작업 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식.현대의 범용 컴퓨터의 대부분이 사용하는 방식. 대화형 시스템이라는 특징이 있음.

-실시간 운영체제(real time):

  정해진 시간 안에 어떤 일이 반드시 처리됨을 보장해야 하는 시스템.

  경성 실시간 시스템(hard realtime system):주어진 시간 못 지킬 경우 매우 위험 ex:로켓,원자로 제어 시스템

  연성 실시간 시스템(soft realtime system):ex:멀티미디어 스트리밍 시스템 . 시간 안지켜질 경우 동영상 끊김.위험한 결과 초래할 정도는 아님

 

4.운영체제의 예

MS윈도우: 개인용 컴퓨터를 위한 운영체제로서 누구든 사용할 수 있는 편리한 인터페이스,각종 기능들 가짐

유닉스:오랜 전통을 지닌 운영체제. 대형 컴퓨터 및 전문적인 목적의 컴퓨터에 사용되기에 적합.안정성.리눅스의 등장으로 유닉스도 개인용 컴퓨터에서 널리 사용할 수 있게 됨.

 

5.운영체제의 자원 관리 기능

운영체제의 핵심적인 기능은 자원(하드웨어 자원/소프트웨어 자원)을 효율적으로 관리하는 것임

 

*하드웨어 자원의 관리

-CPU스케줄링: 매 시점 어떤 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일. CPU스케줄링의 목표는  CPU를 가장 효율적으로 사용하면서도, 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.

ex)선입선출(First Come First Served:FCFS): 먼저 온 것을 먼저 처리. CPU 자체의 효율적인 사용 측면에서는 문제가 없지만, 전체 시스템 입장에서는 비효율적인 결과를 초래할 수 있다.

ex)라운드 로빈(Round Robin):CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한한다.긴 작업을 요하는 프로세스가 CPU를 할당 받더라도 정해진 시간이 지나면 CPU를 내어 놓고 대기열 제일 뒤에 가서 줄을 서야한다. 다수의 사용자가 동시에 접속할 때에도 각자 1초 이하의 응답시간을 보장받을 수 있게 된다.

ex)우선순위(Priority):대기중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU를 먼저 할당한다.

 

-메모리 관리: 메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치이다. 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 이 때 한정된 메모리 공간에 여러 프로그램을 수용하려면 메모리에 대한 효율적인 관리 메커니즘이 필요하다.운영체제는 주소(address)를 통해 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지 파악해 이를 유지한다.

ex)고정분할 방식(fixed partition):물리적 메모리를 몇 개의 분할로 미리 나누어 관리. 나뉜 각각의 분할에는 하나의 프로그램이 적재될 수 있다.융통성이 없다는 단점. 비효율적으로 낭비되는 내부조각(internal fragmentation)발생 가능.

ex)가변분할 방식(variable partition):매시점 프로그램의 크기에 맞게 메모리를 분할해 사용하는 방식.고정분할과 달리 비교적 큰 프로그램도 실행 가능.But 물리적 메모리 크기보다 큰 프로그램 실행은 여전히 불가. 내부조각은 발생하지 않지만, 비효율적으로 낭비되는 외부조각이 발생 가능.

ex)가상 메모리 방식(virtual memory):현대 범용 컴퓨터 환경에서 가장 널리 사용됨. 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원함.가상 메모리의 크기에 의해 실행가능 프로그램 크기 결정됨. 프로그램 전체가 항상 동시에 사용되는 것은 아님. 그러므로 현재 사용되는 부분만 메모리에 올리고 나머지는 보조기억장치(ex:하드디스크)에 저장해 두었다가 필요할 때 적재하는 방식. 이 때 사용되는 보조기억장치의 영역을 스왑 영역(swap area)라고 함. 프로그램을 구성하는 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작은 단위로 나뉘어 물리적 메모리와 스왑영역에 일부분씩 저장된다. 이렇게 동일한 단위로 메모리를 나누는 기법을 페이징(paging) 기법이라고 한다.

 

-인터럽트(interupt):주변장치 및 입출력장치는 인터럽트라는 메커니즘을 통해 관리가 이루어진다. 주변장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하는데, 이 신호를 인터럽트라고 한다. CPU는 평소에 CPU스케줄링에 따라 주어진 일을 수행하다가 인터럽트가 발생하면 하던일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행한다.

 

-컨트롤러(controller,제어기): 주변장치들은 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위한 일종의 작은 CPU를 가지고 있다. 컨트롤러는 해당 장치에 대한 업무를 처리하고, 이를 메인 CPU에 인터럽트를 발생시켜 보고하는 역할을 한다.

 

 

 

출처:반효경,운영체제와 정보기술의 원리,2020