운영체제 종류?
컴퓨터를 사용해본자라면 왼쪽과 같은 화면을 본적이 있을거예요
항상 기본으로 시작되는 화면의 이 아이콘은 무엇을 의마할까요
윈도우!!
우리에게 가장 익숙한 운영체제 중에 하나입니다.
최근 가장 많이 사용되는 윈도우 10의 로고는 이와 같이 생겼죠. 요 아이가 바로 운영체제였어요!
윈도우 종류라면,,, windows7, windows8, windowsXP 등등 여러분은 어느 세대의 윈도우를 지나왔나요?ㅎㅎ
이 외에도 운영체제라고 하면 대표적으로 유닉스, 리눅스,맥 등이 있어요
우리 개인 PC나 노트북에 깔려 있는 운영체제는 보통 윈도우이기 때문에 리눅스가 사용되는 것을 본적이 없는 분들도 있을 수 있는데요
리눅스는 오픈 소스 소프트웨어를 가져다가 내 껄로 내 제품에 최적화 시켜서 사용하기 매우 좋게 되어 있는!! (즉 공짜예요!!)
특히 서버에서 가장 많이 사용되는 운영체제입니다.
제일 대표적으로 네이버라는 회사도 리눅스라는 오픈소스 소프트웨어를 가져다가 네이버 서버에 최적화 된 형태로 자신들이 커스터마이징 해서 사용하고 있어요.
서버는 특히 가장 중요한게 안정성이예요 1년 365일 고장나지 않고 돌아가야 해요
우리 게임 서버만 잠깐 터져도 난리나잖아요?ㅎㅎ 게임이면 그나마 덜 민감한편..
서버는 특히 1년 365일 서비스하다가 갑자기 2~3일 서비스가 중단이 되면 회사가 망하기까지 이를 수 있어요
그래서 보통 중요한 서버는 몇십년 동안 검증된 유닉스를 많이 씁니다.
고러니 저런 규모는 운영체제를 돈주고 사가지고 와서 쓰는거죠.
고래서 운영체제는 무엇인가?
An Operating System is a program that manages a computer's hardware
컴퓨터 하드웨어를 관리하는 프로그램이다
* 컴퓨터를 시스템의 각종 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어이다.
* 사용자에게 편리함을 제공하고 시스템의 생산성을 높여주는 역할을 한다
* 운영체제는 사용자가 응용 프로그램을 편리하게 사용하고 하드웨어의 성능을 최적화 할 수 있도록 한다
* 운영체제는 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 한 부분인 "실행 관리자"라고 정의할 수 있다.
등등...
이런 정의? 인터넷에 엄청 많죠! 책에도 나와있고 ㅎㅎ
하지만 운영체제를 처음 시작하는 사람이라면 뭔말인지는 알겠는데 와닿지 않을거예요
#그래서 역사이야기와 함께 운영체제의 기원과 디테일한 설명을 좀 더 풀어보겠습니다.
아래를 다 읽고 나서 다시 위의 정의들을 읽어보면 다 이해가 될거예요
개념을 외우지 말고 이해하세요~!
자 옛~~~적에
폰노이만이라는 천재에 의해서 '애니악' 컴퓨터가 처음 만들어졌어요 (처음이 아니라는 설도 있는데 공식적으로는 최초)
그 때 컴퓨터 크기가 무려 교실의 반만한! 컴퓨터라고 하긴 애매한 그 기계가 컴퓨터였죠
지금으로 얘기하면 한 10KB? 그 정도밖에 안돌아가는 컴퓨터였어요 ㅎㅎ
그 당시에는 프로그래밍 언어가 있어?! 없죠!
기계어로 프로그래밍을 하던 시절입니다. 0101001110 이런 이진수로요 그러다가 어셈블리어가 생길 시절~쯔음입니다
이 시절에는 당연히 운영체제라는 개념이 없었어요
만약 A라는 사람이 수학 행렬을 곱하는 프로그램을 짜고
B라는 사람은 미분 적분하는 것을 짜고
C라는 사람은 어떤 것을 짜고...
이 걸 컴퓨터에서 돌리려고 했는데 이 세 개의 프로그램을 만드는데는 공통적인 기능들을 들어간다는거죠
예를 들면 일단 메모리에 올려야하는건 세 개다 해줘야하고.
수행을 하다가 I/O장치를 사용하게 되면 입출력장치에게 명령을 내리고 결과를 받는 로직은 똑같고..
이런 것들이 공통적인 프로그램임에도 불구하고 그것들이 다 A에도 들어가있어야하고.. B라는 프로그램에도 들어가있어야하고 C프로그램에도 들어가있어야겠죠
기계어랑 어셈블리어로 프로그램을 하려면 매우매우 어려울텐데 말이예요
이것을 뭐하러 ABC다 똑같은 것을 짜고 있냐! 공통적인 기능을 묶어가지고 하나의 프로그램으로 만들고 A는 그 프로그램을 이용해서 짜고 B도 그걸 이용하고 C도 그러면 당연히 훠얼씬 효율적이겠죠
그런데 CPU, 메모리, I/O 이런 컴퓨터 하드웨어가 사실은 진짜 복잡합니다.
이런 컴퓨터 하드웨어를 몰라도 쉽게 프로그램을 만들 수 있게끔 하는 기능들을 한 데 모아가지고 프로그램을 만들어준게 운영체제의 시초예요
예를 들어, 어떤 것은 출력해줘
이 데이터를 디스크에 저장해줘
이런 기능들을 원래는 각 프로그램별로 다 짜야하는데 그런 것들을 운영체제라는 것이 공통적으로 해주고,
어플리케이션이나 그런 것들은 운영체제에게 요청하는 게
바로 운영체제 개념의 핵심입니다!!
즉,
프로그래머가 컴퓨터 하드웨어를 모르더라도 컴퓨터를 쉽게 만들 수 있도록 지원해주는 소프트웨어가 운영체제입니다
시간이 흐를수록~ 더 다양한 기능들이 더해지고 해서 현재 운영체제는 정말 다양한 기능들을 수행하고 있답니다.
그래도 핵심을 알면 전체가 그려지는 법!
이제는 운영체제가 뭔지는 확실히 와닿았을 거라고 생각해요 :)
운영체제의 기능
----------------------------------------------------------------------------------------------------
* 주기억장치, 처리기, 주변 장치 등의 자원을 관리하는 기능이 있다.
* 입출력 관리 및 파일 관리 기능이 있다.
* 사용자에게 편의성을 제공한다.
----------------------------------------------------------------------------------------------------
등등.. 이런 시험용 어려운 말보다는...이해를 하기~!
운영체제의 일은 컴퓨터 하드웨어를 관리하는 것!
어떻게?
1. 컴퓨터 하드웨어를 사용하려는 사람들, 프로그래머들이 하드웨어를 모르더라도 할 수 있도록!!
2. 컴퓨터 하드웨어를 놀리지 않고 (소중한자원이니까요 ☆) 효율적으로 사용할 수 있도록
컴퓨터는 생각 이상으로 방대하고 사용이 무궁무진하기 때문에
어떻게 사용하냐 어떻게 관리하냐 어떻게 시스템이 되어 있냐에 따라 효율적으로 사용할 수도 있고 비효율적이 될 수도 있어요.
그것을 컨트롤 해줄 시스템! 고것도 운영체제의 기능입니다.
결국 편하게 쓰기 위한 거기 때문에 우리 윈도우 운영체제의 화면 있죠? UI? 그것도 운영체제 프로그램이 해준거예요
덕분에 마우스와 클릭만으로 쉽게 장치를 연결했다가 해제할수도 있고, 아이콘을 통해 프로그램을 쉽게 실행할 수도 있고, 컴퓨터 환경을 변경할 수도 있죠. 화면 UI조차 운영체제가 하는 일 중 하나이다! 알고 넘어갑시다~~
자 그래서 제 블로그를 통해 우리가 앞으로 배울 것은 결국 운영체제의 기능입니다
운영체제가 첫 번째로 해야할 일인 대표적 하드웨어, 컴퓨터의 뇌인 CPU관리
즉 CPU 관리에 대해서 배울거예요
그 다음은 컴퓨터 대표적인 하드웨어 메모리 관리! 파일 시스템 등이 있겠죠
마지막으로 입출력장치인 IO장치에 대해서 배울겁니다.
운영체제 목적
운영체제에 대해 감이 잡혔다면
고럼 이론적으로 정리해놓은 운영체제의 목적에 대해 살펴볼게요
처리능력(Throughput) |
시스템의 생산성을 나타내는 단위로, 일정 시간 동안 처리하는 일의 양 |
응답시간(Turnaround Time) |
작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 |
신뢰도 (Reliability) |
주어진 문제를 얼마나 정확하게 처리하는가의 정도 |
사용 가능도(Availability) |
시스템을 얼마나 빠르게 사용할 수 있는가의 정도 |
운영체제의 목적은 말 그대로 컴퓨터를 잘 쓰기 위함이죠
예로 계산을 한다 하면
많은 양의 계산을 할 줄 알면서 계산이 빠르고 답이 정확하고 얼마나 빨리 많은 계산을 넣을 수 있는지!
당연하면서 간단하죠 ㅎ 고냥 어렵게 적어놓은거뿐..ㅎ
즉 운영체제의 목적은 처리능력의 향상, 응답시간의 최소화, 사용 가능동의 향상, 신뢰도의 향상입니다.
운영체제의 구성
*운영체제는 제어프로그램(Control Program)과 처리프로그램(Process Program)으로 구성됩니다.
운영체제라는 시스템은
컴퓨터 안의 정보들과 자원들을 제어하고 상태를 감시하고 실행하는 과정을 지시하고 관리하는 제어 프로그램! 과
제어 프로그램의 지시와 감독을 받아서, 실제로 데이터 처리를 실행하고 결과를 보여주는 처리 프로그램!
으로 이루어져있습니다.
1. 제어 프로그램
각종 처리 프로그램의 실행과 기억장소 및 데이터 제어 또는 연속 처리 작업의 스케줄링 등 감시하는 기능을 수행하며, 데이터 관리 기능, 작업 관리 기능, 태스크 관리 기능을 갖습니다.
감시 프로그램 |
*시스템 전체의 동작 상태를 감독하고 지원함. 제어 프로그램의 중추적 역할을 담당함. * 시스템의 모든 동작 상태를 관리하고 감독하는 제어프로그램을 슈퍼바이저(supervisor)라고 한다. |
작업 관리 프로그램 |
* 어떤 작업을 처리하고 다른 작업으로의 자동적 이행을 위한 준비와 처리를 수행함 |
데이터 관리 프로그램 |
* 주기억 장치와 외부 보조 기억 장치 사이의 데이터 전송, 입출력 데이터와 프로그램의 논리적 연결, 파일 조적 및 처리 등을 담당함 |
2. 처리 프로그램
제어 프로그램 감시하에 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램입니다.
회사 측에서 제공해주는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있습니다.
언어 번역 프로그램 |
* 원시 프로그램을 컴퓨터가 알 수 있는 기계어로 번역시키는 프로그램 * 종류 : 컴파일러, 어셈블러, 인터프리터 등 |
서비스 프로그램 |
* 시스템에서 사용 빈도가 높은 프로그램을 미리 개발하여 놓은 프로그램 * 종류 : 연계 편집 프로그램, 로더, 디버깅 프로그램, 정렬/병합 프로그램, 라이브러리 등 |
문제 처리 프로그램 |
* 컴퓨터 사용자가 필요한 업무에 맞게 개발한 프로그램 * 종류 : 급여 관리, 인사 관리, 회계 관리 등 |
문제
다음 중 운영체제의 목적 중 가장 거리가 먼 것은?
1. 처리 능력 증대
2. 신뢰도 향상
3. 응답 시간 단축
4. 파일 전송
'Server > OS' 카테고리의 다른 글
[OS] 폴더와 디렉토리의 차이 (Folder and Directory) (0) | 2021.05.11 |
---|---|
[OS] 운영체제란 무엇인가? (0) | 2021.03.25 |
댓글