본문 바로가기

Basic/운영체제

운영체제의 정의와 역할, 필요성, 목표

반응형

 

1. 운영체제의 정의(OS operating system ) 

 

- 컴퓨터를 어떻게 운영할것인가에 대한 체제를 제공하는것을 뜻함

 

- 운영체제는 응용 프로그램, 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다.

 

- 하드웨어에 대한 모든 책임을 맡고 있는 운영체제를 거치지 않고는 하드웨어에 접근할 수 없다. 

 

- 운영체제는 컴퓨터에 있는 하드웨어(자원)를 조정하고 관리하는 역할을 할때, 하드웨어의 도 움 없이 작동하기가 어렵기 때문에 운영체제를 소프트웨어와 하드웨어의 결합 형태인 펌웨어 firmware 라고 부르기도 한다.

 

- 컴퓨터의 하드웨어와 컴퓨터를 사용하는 사용자 사이에 중재자 역할을 담당한다. 

 

- 운영체제는 시스템 소프트웨어이다

 

- 운영체제는 주로 사용의 편리와 자원의 이용 간에 적절히 조화를 이루도록 설계된다.

 

 

참고해 볼 포스팅 : https://ndb796.tistory.com/28?category=950819

 

 

2. 운영체제의 역할 및 필요성

 

1) 운영체제는 사용 규칙의 역할을 수행한다.

 

초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요 없었다.

 

그러나 메모리, CPU 등의 성능이 향상되고,여러 작업을 동시에 할 수 있는 컴퓨팅 환경이 조성되

 

서 사용 규칙이 필요해졌다. 복잡한 작업 환경에 규칙이 없으면 기계를 망가뜨릴 수도 있기 때문

 

에 등장한 것이 바로 운영체제이다.

 

2) 운영체제는 새로운 기능의 추가나 성능의 향상을 위해 필요하다.

 

운영체제가 없는 기계는 만들 당시에 구현한 기능 외에 다른 기능을 추가하거나 성능을 향

 

상할 수 없기 때문에 처음에 설계한 대로만 사용할 수 있다. 

 

에니악과 운영체제가 없는 기계는 전선으로 고정되어 정해진 계산만 가능하다.

 

반면에 운영체제가 있는 기계는 새로운 기능의 추가나 성능의 변경이 가능하므로 성능 및 효율성

 

의 향상을 꾀할 수 있으며,이러한 기계를 프로그램이 가능한programmable 기계라고 부른다.

 

유선전화기와 스마트폰은 큰 차이가 있다. 둘 다 전화기이지만 유선전화기는 통화만 가능하고 

 

운영체제가 있는 스마트폰은 새로운 프로그램을 설치하여 다양한 기능을 사용할 수 있다.

 

이렇게 운영체제가 있는 기계는 기능을 계속 향상할 수 있다.

 

3) 운영체제는 자원보호를 해준다.

 

컴퓨터는 CPU와 메모리, 키보드, 모니터, 하드디스크, 마우스, 사운드카드, 그래픽카

 

드, 네트워크카드, 터치패드와 같이 다양하게 구성된다. 이렇게 컴퓨터에

 

부착된 모든 장치를 컴퓨터 자원(computer resource)이라고 한다.

 

운영체제는 사용자가 직접 자원에 접근하는 것을 막음으로써 자원을 보호하고 관리한다.

 

예를 들어 사용자가 하드디스크에 데이터를 저장하려는 경우를 생각해보자.

 

이때 사용자는 하드디스크의 특정 위치에 데이터를 저장할 수 없으며,

 

운영체제에 부탁하면 운영체제가 알아서 하드디스크의 적당한 위치에 저장한다.

 

만약 사용자가 하드디스크에 데이터를 저장할 수 있다면 악의적인 사용자가 데이터를 지우거나 덮

 

어쓰는 일이 발생할 수도 있을 것이다. 

 

이를 방지하기 위해 운영체제는 응용 프로그램과 사용자에게 모든 자원을 숨긴다.

 

그리고 정해진 방법으로만 컴퓨터 자원을 사용할 수 있도록 제한한다. 

 

3) 운영체제는 자원관리(resource management)를 한다.

 

우리는 컴퓨터를 사용할 때 워드프로세서, 웹 브라우저, 채팅, 음악 재생 소프트웨어 등을 동시

 

에 사용하며, 이러한 소프트웨어를 응용 프로그램 application program이라고 한다.

 

그런데 많은 응용 프로그램에 비해 컴퓨터를 구성하는 장치는 매우 제한적이다.

 

즉 대부분이 하나의 키보드, CPU, 메모리, 모니터, 마우스, 하드디스크로 이루어져 있어

 

각각의 응용 프로그램이 이 장치를 서로 독차지하려 한다.

 

운영체제는 이러한 자원을 응용 프로그램에 적절히 나누어주어 사용자가 원활하게 작업할 수 있도

 

록 돕는다.

 

예를 들어 워드프로세서와 채팅 프로그램을 동시에 실행하는 경우를 생각해보자.

 

두 응용 프로그램은 모니터와 키보드를 필요로 하기 때문에 한 응용 프로그램이 CPU나 모니터를

 

독차지하려 하거나 다른 응용 프로그램을 파괴하려 할 것이다. 이러한 문제를 해결하려면

 

자원을 관리하는 강력한 중재자가 필요하다. 이 중재자는 각각의 응용 프로그램이 활동할 수 있는 

 

환경을 제공한다. 

 

구에게 먼저 키보드를 주어야할지, 누구에게 먼저 모니터를 주어야 할지 등 적당한 순서로 자원 

 

배분을 결정하고, 또한 적당한 시점에 응용 프로그램으로 부터 자원을 회수하여 다른 응용 프로그

 

램에게 나누어 준다. 그럼으로써 악의적인 응용 프로그램으로부터 컴퓨터 자원을 보호하는 역할

 

을 담당한다.

 

4) 운영체제는 사용자에게 편리한 인터페이스 환경을 제공한다.

 

운영체제는 사용자가 자원에 직접 접근하지 못하도록 하는 대신 자원을 이용할 수 있는 여

 

방법을 제공한다. 즉, 사용자는 운영체제가 제공하는 사용자 인터페이스와 하드웨어 인터페이스

 

를 이용하여 숨어있는 원에 접근한다.

 

이렇게 사용자가 컴퓨터를 보다 쉽게 사용할 수 있도록 다양한 인터페이스(하드웨어 인터페이

 

스 , 사용자 인터페이스)를 제공함으로써 컴퓨터 자원을 보호함과 동시에 사용자의 편의를 도모한

 

다.

 

3. 운영체제의 목표

 

운영체제가 지향하는 목표는 여러 가지지만, 운영체제의 역할과 연결지어 목표를 봐보자.

 

 

1) 효율성

 

운영체제는 같은 자원을 관리하더라도 효율적으로 관리해야 한다.

 

적은 자원을 사용하여 결과를 빨리 보여주는 것이 효율적인 운영체제이다.

 

다시 말해 같은자원을 사용하여 더 많은 작업량을 처리하거나, 같은 작업량을 처리하는 데 

 

보다 적은 자원을 사용하는 것이다.

 

효율적인 자원 관리는 다양한 방법으로 이루어질 수 있는데, 일반적으로 운영체제의 크기

 

를 최소화하고 운영체제가 사용하는 코드를 최적화해야 한다. 

 

2) 안정성

 

운영체제는 하드웨어 전체를 관리하는 소프트웨어로, 사용자와 응용 프로그램은 운영체제

 

위에서 작업을 한다고 볼 수 있다. 따라서 운영체제가 불안정하면 모든 작업이 불안할 수

 

밖에 없다. 운영체제가 불안하면 그 피해가 고스란히 사용자에게 돌아가기 때문에 운영체

 

제는 안정성이 담보되어야 한다. 한 예로 밤을 새가며 문서 작업을 하고 있는데 갑자기 컴

 

퓨터가 꺼져버린다거나 운영체제가 먹통이 되는 일이 일어나서는 안 된다.

 

안정성은 운영체제의 역할 중 자원 보호와 연관된다. 운영체제가 안정적이려면 사용자와

 

응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며, 시스템에

 

문제가 발생했을 때 이전으로 복구하는 결함 포용fault tolerant 기능을 수행해야 한다.

 

3) 확장성 

 

운영체제는 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다. 즉 확장성이 좋아 

 

야 한다. 이는 운영체제의 역할 중 하드웨어 인터페이스 제공과 연관되는 것으로, 운영체제

 

는 하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이 기능을 제

 

공해야 한다. 또한 앞으로 개발될 하드웨어도 제약 없이 사용할 수 있도록 확장성을 보장하

 

려면 사용자의 편리성뿐만 아니라 하드웨어 제작자의 편리성도 고려해야 한다.

 

4) 편리성

 

사용자가 편리하게 작업할 수 있는 환경을 제공하는 것 또한 운영체제의 목표이다.

 

운영체제의 역할 중 사용자 인터페이스 제공과 연관된다.

 

사실 운영체제의 입장에서는 효율성만 높이려면 응용 프로그램이나 사용자에게 제약을 가하

 

면 된다. 예를 들어 사용자에게 GUI를 제공하지 않고 텍스트만 사용하게 하면 운영체제의 효

 

율성이 높아지고 컴퓨터의 속도가 빨라진다. 그러나 사용자는 마우스를 사용할 수 없어 키보

 

드로만 명령을 내리는 불편을 감수해야 한다.

 

또 다른 예로,응용 프로그램의 효율성을 높이기 위해 메모리를 100MB 이상 사용하지 못

 

하게 하거나 하드디스크의 사용 공간을 제약하면 시스템의 효율성이 높아질 것이다. 

 

그러나 이러한 제약은 사용자를 불편하게 할 뿐 아니라 다양한 응용 프로그램의 개발을 방해

 

한다. 따라서 응용 프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소

 

를 막아야 한다.

 

 

참고자료

https://www.youtube.com/watch?v=TpjdbdGGjsQ

 

 

 

반응형

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

ssl 인증서 재발급 과정  (0) 2020.11.11
버퍼의 개념  (0) 2020.08.11
운영체제의 구조  (0) 2020.02.02
Context Switching  (0) 2020.01.28
Linux - Permission  (0) 2019.11.07