Operating System

운영체제(OS) 종류와 목적

Share this post on:

운영체제 종류

컴퓨터를 전원을 켰을 때 위와 같은 화면을 본 적이 있을거에요. 항상 기본으로 시작되는 이 화면 아이콘은 무엇을 의미할까요? ‘윈도우!’ 우리에게 가장 익숙한 운영체제 중에 하나 입니다. 우리가 친숙하게 봐왔던 이것이 바로 운영체제예요.

윈도우 종류라면, Windows7, Windows8, WindowsXP 최근에 나온 Windows 11까지 여러가지가 있는데요

여러분은 어느 세대의 윈도우를 거치셨나요? 우리에게 가장 친숙한 운영체제는 윈도우지만, 그 외에도 다양한 운영체제들이 있습니다.

다나와 노트북 필터 조건 중 운영체제 항목

윈도우 운영체제 외에 대표적인 또 다른 운영체제는 유닉스, 리눅스 등을 말할 수 있습니다. 우리 개인 PC나 노트북에 깔려 있는 운영체제는 보통 윈도우이기에 서버를 접해보지 않은 사람은 리눅스와 같은 운영체제를 겪어보지 않았을 수 있어요. 하지만 노트북을 살때 윈도우 미포함 노트북을 사면 프리도스(운영체제 미포함)이나 리눅스를 겪어봤을 수도..!

리눅스는 오픈 소스 소프트웨어를 가져다가 내 것으로 내 제품에 최적화 시켜 사용하기 매우 편리한 운영체제 중 하나입니다. 제일 대표적으로 네이버라는 회사도 리눅스라는 오픈소스 소프트웨어를 가져다가 네이버 서버에 최적화 된 형태로 자신들이 커스터마이징 해서 사용하고 있습니다.

노트북을 구매할 때 윈도우 정품의 경우 상당히 가격대가 있죠. 리눅스의 가장 큰 장점 중 하나는 오픈소스이기에 공짜라는 거예요. 리눅스는 서버 운영체제로 많이 사용됩니다.

이외에 서버에서 많이 사용하는 또 다른 운영체제로는 유닉스가 있는데요. 서버는 특히 안정성이 중요합니다. 1년 365일 고장나지 않고 돌아가야 한다는 점이 핵심이예요. 우리 게임 서버 잠깐 터져도 난리나잖아요?ㅎㅎ 게임이면 그나마 덜 민감한편..

서버는 1년 365일 서비스하다가 갑자기 2~3일 서비스가 중단이 되면 회사가 망하기까지 이를 수 있어요. 특히 돈이나 신용과 관련될수록 민감하겠죠? 그래서 보통 중요한 서버는 검증된 유닉스를 많이 씁니다. 돈을 내고 사가지고 오더라도 안정성이 검증된 것을 우선시 하는 것이죠. 다수의 회사가 리눅스 운영체제나 AIX 운영체제를 서버 운영체제로 채택하고 있어요.


고래서..

운영체제는 무엇인가?

  • 컴퓨터를 시스템의 각종 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어이다.
  • 사용자에게 편리함을 제공하고 시스템의 생산성을 높여주는 역할을 한다
  • 운영체제는 사용자가 응용 프로그램을 편리하게 사용하고 하드웨어의 성능을 최적화 할 수 있도록 한다
  • 운영체제는 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 한 부분인 “실행 관리자”라고 정의할 수 있다.

등등… 운영체제에 관한 정의는 인터넷에 검색을 조금만 해봐도 많이 찾아볼 수 있습니다. 책에도 잘 나와있고 ㅎㅎ 

하지만 운영체제를 처음 시작하는 사람이라면 정의 문을 읽어도 무엇을 의미하는지 와 닿지 않을 수 있어요.

그래서 역사 이야기와 함께 운영체제의 기원에 관해 좀 더 자세한 설명을 풀어보려고 합니다.

글을 다 읽고 나서 다시 위의 항목들을 읽어보면 조금 더 명확히 이해할 수 있을거예요. 개념을 외우지 말고 이해할 것!

자 이전에 폰노이만이라는 천재에 의해서 ‘애니악’ 컴퓨터가 처음 만들어졌어요 (처음이 아니라는 설도 있는데 공식적으로는 최초) 그 때 컴퓨터 크기가 무려 교실의 반만했다죠. 컴퓨터라고 하긴 애매한 그 기계가 그 당시에는 컴퓨터였습니다

지금으로 얘기하면 한 10KB? 그 정도밖에 안돌아가는 컴퓨터였어요 ㅎㅎ 그 당시에는 프로그래밍 언어조차도 없었습니다. 기계어로 프로그래밍을 하던 시절이예요. 0101001110 이런 이진수로 말이죠. 그러다 어셈블리어가 생길 즈음 시기정도 되겠네요.

이 시절에는 당연하게도 운영체제라는 개념이 없었어요. 만약 A라는 사람이 수학 행렬을 곱하는 프로그램을 짜고 B라는 사람은 미분적분하는 것을 짜고 C라는 사람은 어떤 다른 기능을 짜고… 이렇게 개발을 했으면 이 기능들을 컴퓨터에서 돌려야겠죠? 그러다보니 이 세 개의 프로그램에 공통적인 기능들이 들어간다는 것을 알게 됩니다. 예를 들어 일단 메모리에 올려야 하는 건 세 기능 모두 공통적으로 작업을 해줘야해요, 또 수행을 하다가 I/O장치를 사용하게 되면 입출력 장치에게 명령을 내리고 결과를 받는 로직도 동일하게 들어가줘야 합니다.

각 프로그램에 동일하게 포함되어있어야 함에도 불구하고 그러한 기능들이 A에도 들어가있어야하고.. B라는 프로그램에도 들어가 있어야하고 C프로그램에도 들어가 있어야겠죠. 기계어랑 어셈블리어로 프로그램을 만들려면 매우 어려울텐데 말이예요

뭐하러 ABC에 들어가야 하는 것은 동일한대 중복으로 짜고 있냐! 공통적인 기능을 묶어가지고 하나의 프로그램으로 만들고 A는 그 프로그램을 이용해서 짜고 B도 그걸 이용하고 C도 그러면 당연히 훨씬 효율적이겠죠. 그런데 CPU, 메모리, I/O 이런 컴퓨터 하드웨어가 사실은 매우 복잡합니다. 이런 컴퓨터 하드웨어를 몰라도 쉽게 프로그램을 만들 수 있게끔 기능들을 한 데 모아 가지고 프로그램을 엮어준 것이 운영체제의 시초예요. 재밌죠?

예를 들어, 어떤 것은 출력해줘 , 이 데이터를 디스크에 저장해줘,

이런 기능들이 본래에는 각 프로그램 별로 다 포함되어 있었어야 하는데 이와 같은 복잡한 것들은 운영체제가 공통적으로 처리해주고, 어플리케이션이과 같은 윗단의 서비스가 운영체제에게 작업을 요청해 처리시키는 방식이 바로 운영체제 개념의 핵심입니다!!

프로그래머가 컴퓨터 하드웨어를 모르더라도, 컴퓨터 프로그램을 쉽게 만들 수 있도록 지원해주는 소프트웨어가 운영체제이다.

시간이 흐를수록~ 더 다양한 기능들이 더해지고 해서 현재 운영체제는 정말 많은 기능들을 수행하고 있습니다. 그래도 핵심을 알면 전체가 그려지는 법! 이제는 운영체제가 무엇인지 그림이 그려졌을거라고 생각해요.


운영체제의 기능

  • 주기억장치, 처리기, 주변 장치 등의 자원을 관리하는 기능이 있다.
  • 입출력 관리 및 파일 관리 기능이 있다.
  • 사용자에게 편의성을 제공한다

즉 간단히 요약해서 운영체제의 일은 컴퓨터 하드웨어를 관리하는 것! 어떻게?

1. 컴퓨터 하드웨어를 사용하려는 사람들, 프로그래머들이 하드웨어를 모르더라도 처리 할 수 있도록!!

2. 컴퓨터 하드웨어를 놀리지 않고 (소중한 자원이니까요 ☆) 효율적으로 사용할 수 있도록 

컴퓨터는 생각 이상으로 방대하고 사용이 무궁무진하기 때문에

어떻게 사용하는가 어떻게 관리하는가 어떻게 시스템이 구성되어 있는가 등에 따라 효율적으로 사용할 수도 있고 비효율적으로 사용될 수도 있어요. 그것을 컨트롤 해주는 기능 또한 운영체제의 또 다른 역할입니다. 결국 운영체제란 사람이 편하게 쓸 수 있도록 돕는 것이 목적입니다. 우리 컴퓨터 들어가면 윈도우 운영체제 바탕화면에 여러 아이콘과 같은 UI들이 있죠. 그것들로 인해 우리가 손쉽게 클릭만으로 웹서핑도 하고 파일탐색기에서 파일 저장도 하고 여러 작업을 수행할 수 있어요. 요런 기능들도 운영체제 프로그램이 사용자 편의성을 위해 수행하고 있는 역할입니다.

덕분에 마우스와 클릭만으로 쉽게 장치를 연결했다가 해제할 수도 있고, 아이콘을 통해 프로그램을 쉽게 실행할 수도 있고, 컴퓨터 환경을 변경할 수도 있죠. 화면 UI조차 운영체제가 하는 일이었다는 것 짚고 넘어갑시다~~

그래서 제 블로그를 통해(?)  앞으로 배울 것은 결국 운영체제의 기능입니다. 운영체제가 첫 번째로 해야할 일인 하드웨어 관리, 대표적으로 컴퓨터의 뇌인 CPU관리에 대해서 배울거예요. 그 다음은 또 다른 컴퓨터 하드웨어인 메모리 관리! 파일 시스템 등이 있겠죠. 마지막으로 입출력장치인 IO장치에 대해서 적어보려고 합니다.


운영체제의 목적

마지막 글을 정리하는 느낌으로 운영체제의 목적에 대해 이론적으로 정리한 표를 살펴볼게요

 처리능력(Throughput) 시스템의 생산성을 나타내는 단위로, 일정 시간 동안 처리하는 일의 양 
 응답시간(Turnaround Time) 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 
 신뢰도 (Reliability) 주어진 문제를 얼마나 정확하게 처리하는가의 정도 
 사용 가능도(Availability) 시스템을 얼마나 빠르게 사용할 수 있는가의 정도 

운영체제의 목적은 말 그대로 컴퓨터를 잘 쓰기 위함이죠. 예로 계산을 한다 하면 무엇이 중요할까요?

많은 양의 계산을 하면서 계산 속도도 빨라야겠죠? 그리고 답도 정확해야해요. 얼마나 빨리 많은 계산을 넣을 수 있는지! 당연하면서 간단하죠 ㅎ 고냥 어렵게 적어놓은거뿐..ㅎ 

즉 운영체제의 목적은 처리능력의 향상, 응답시간의 최소화, 사용 가능동의 향상, 신뢰도의 향상입니다.


운영체제의 구성

운영체제는 제어프로그램(Control Program)과 처리프로그램(Process Program)으로 구성됩니다.

운영체제라는 시스템은 

컴퓨터 안의 정보들과 자원들을 제어하고 상태를 감시하고 실행하는 과정을 지시하고 관리하는 제어 프로그램과 제어 프로그램의 지시와 감독을 받아서, 실제로 데이터 처리를 실행하고 결과를 보여주는 처리 프로그램으로 이루어져 있습니다.

1. 제어 프로그램

각종 처리 프로그램의 실행과 기억장소 및 데이터 제어 또는 연속 처리 작업의 스케줄링 등 감시하는 기능을 수행하며, 데이터 관리 기능, 작업 관리 기능, 태스크 관리 기능을 갖습니다.

  감시 프로그램 *시스템 전체의 동작 상태를 감독하고 지원함. 제어 프로그램의 중추적 역할을 담당함.
 * 시스템의 모든 동작 상태를 관리하고 감독하는 제어프로그램을 슈퍼바이저(supervisor)라고
 한다.
  작업 관리 프로그램 * 어떤 작업을 처리하고 다른 작업으로의 자동적 이행을 위한 준비와 처리를 수행함 
  데이터 관리 프로그램 * 주기억 장치와 외부 보조 기억 장치 사이의 데이터 전송,
 입출력 데이터와 프로그램의 논리적 연결, 파일 조적 및 처리 등을 담당함 

2. 처리 프로그램

제어 프로그램 감시하에 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램입니다. 회사 측에서 제공해주는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있습니다.

  언어 번역 프로그램 * 원시 프로그램을 컴퓨터가 알 수 있는 기계어로 번역시키는 프로그램
 * 종류 : 컴파일러, 어셈블러, 인터프리터 등
  서비스 프로그램 * 시스템에서 사용 빈도가 높은 프로그램을 미리 개발하여 놓은 프로그램
 * 종류 : 연계 편집 프로그램, 로더, 디버깅 프로그램, 정렬/병합 프로그램, 라이브러리 등
  문제 처리 프로그램 * 컴퓨터 사용자가 필요한 업무에 맞게 개발한 프로그램
 * 종류 : 급여 관리, 인사 관리, 회계 관리 등 

연습 문제

다음 중 운영체제의 목적 중 가장 거리가 먼 것은?

1. 처리 능력 증대

2. 신뢰도 향상

3. 응답 시간 단축

4. 파일 전송

Leave a Reply

Your email address will not be published. Required fields are marked *