운영체제(OS) 목차 &책 추천
운영체제 종류?
컴퓨터를 사용해본자라면 왼쪽과 같은 화면을 본적이 있을거예요
항상 기본으로 시작되는 화면의 이 아이콘은 무엇을 의마할까요
윈도우!! 우리에게 가장 익숙한 운영체제 중에 하나입니다.
최근 가장 많이 사용되는 윈도우 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. 컴퓨터 하드웨어를 놀리지 않고 (소중한자원이니까요 ☆) 효율적으로 사용할 수 있도록
처리능력(Throughput) | 시스템의 생산성을 나타내는 단위로, 일정 시간 동안 처리하는 일의 양 |
응답시간(Turnaround Time) | 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 |
신뢰도 (Reliability) | 주어진 문제를 얼마나 정확하게 처리하는가의 정도 |
사용 가능도(Availability) | 시스템을 얼마나 빠르게 사용할 수 있는가의 정도 |
운영체제의 목적은 말 그대로 컴퓨터를 잘 쓰기 위함이죠
예로 계산을 한다 하면
많은 양의 계산을 할 줄 알면서 계산이 빠르고 답이 정확하고 얼마나 빨리 많은 계산을 넣을 수 있는지!
당연하면서 간단하죠 ㅎ 고냥 어렵게 적어놓은거뿐..ㅎ
즉 운영체제의 목적은 처리능력의 향상, 응답시간의 최소화, 사용 가능동의 향상, 신뢰도의 향상입니다.
운영체제의 구성
*운영체제는 제어프로그램(Control Program)과 처리프로그램(Process Program)으로 구성됩니다.
운영체제라는 시스템은
컴퓨터 안의 정보들과 자원들을 제어하고 상태를 감시하고 실행하는 과정을 지시하고 관리하는 제어 프로그램! 과
제어 프로그램의 지시와 감독을 받아서, 실제로 데이터 처리를 실행하고 결과를 보여주는 처리 프로그램!
으로 이루어져있습니다.
1. 제어 프로그램
각종 처리 프로그램의 실행과 기억장소 및 데이터 제어 또는 연속 처리 작업의 스케줄링 등 감시하는 기능을 수행하며, 데이터 관리 기능, 작업 관리 기능, 태스크 관리 기능을 갖습니다.
감시 프로그램 | *시스템 전체의 동작 상태를 감독하고 지원함. 제어 프로그램의 중추적 역할을 담당함. * 시스템의 모든 동작 상태를 관리하고 감독하는 제어프로그램을 슈퍼바이저(supervisor)라고 한다. |
작업 관리 프로그램 | * 어떤 작업을 처리하고 다른 작업으로의 자동적 이행을 위한 준비와 처리를 수행함 |
데이터 관리 프로그램 | * 주기억 장치와 외부 보조 기억 장치 사이의 데이터 전송, 입출력 데이터와 프로그램의 논리적 연결, 파일 조적 및 처리 등을 담당함 |
2. 처리 프로그램
제어 프로그램 감시하에 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램입니다.
회사 측에서 제공해주는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있습니다.
언어 번역 프로그램 | * 원시 프로그램을 컴퓨터가 알 수 있는 기계어로 번역시키는 프로그램 * 종류 : 컴파일러, 어셈블러, 인터프리터 등 |
서비스 프로그램 | * 시스템에서 사용 빈도가 높은 프로그램을 미리 개발하여 놓은 프로그램 * 종류 : 연계 편집 프로그램, 로더, 디버깅 프로그램, 정렬/병합 프로그램, 라이브러리 등 |
문제 처리 프로그램 | * 컴퓨터 사용자가 필요한 업무에 맞게 개발한 프로그램 * 종류 : 급여 관리, 인사 관리, 회계 관리 등 |
문제
다음 중 운영체제의 목적 중 가장 거리가 먼 것은?
1. 처리 능력 증대
2. 신뢰도 향상
3. 응답 시간 단축
4. 파일 전송
'별걸다하는 IT > 운영체제 OS' 카테고리의 다른 글
[운영체제]CPU burst VS I/O burst (5) | 2019.01.27 |
---|---|
[운영체제 IPC]메세지 교환(Message passing) vs 데이터 공유(Shared memory) 프로세스간 통신! (2) | 2019.01.27 |
[운영체제]스케줄링과(Scheduling algorithm & criteria) 디스패쳐 dispatcher란? (4) | 2019.01.22 |
[운영체제]프로세스 상태(Process State-ready, waiting etc) (11) | 2019.01.22 |
[운영체제]프로세스와 프로그램 차이는? (Process vs Program) (2) | 2019.01.22 |
최신 댓글