[OS] 1. Introduction to Operating Systems
- IT/OS
- 2020. 12. 14.
1. 운영체제란?
-
소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 함
⇒ 운영체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라감
⇒ 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것.
⇒ 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 됨.
⇒ 메모리에 상주하는 운영체제의 부분을 커널(kernel)이라고 부르며 이를 좁은 의미의 운영체제라고도 부름.
⇒ 즉, 커널은 OS 코드 중에서도 핵심적인 부분
⇒ 넓은 의미의 OS는 커널뿐 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념
ex) 윈도우에서 파일을 복사(copy)하는 프로그램 등. 유틸리티들은 항상 메모리에 올라가 있는 것이 아니라 별도의 프로그램으로서, 사실상 OS의 일부라고 보기 힘들지만 시스템을 위한 유틸리티로 OS에 함께 설치되기 때문에 넓은 의미로는 OS에 포함 시킴.
2. 운영체제의 목적
* OS의 핵심 기능은 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것. (OS를 자원 관리자(resource manager)라고 부르기도 함)
⇒ 자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원뿐 아니라 프로세스, 파일, 메시지 등 소프트웨어 자원까지 통칭.
3. 운영체제의 분류
-
동시 작업 가능 여부
-
사용자의 수
-
처리 방식
1) 동시 작업 가능 여부에 따른 분류
⇒ 현대의 운영체제는 다중 작업
⇒ UNIX, Windows, 심지어 스마트폰까지 여러 프로그램이 동시에 실행되는 것을 지원
⇒ 단일 작업의 예 (엘리베이터, 옛날의 휴대폰(전화만) 등). 특수 목적으로 제작.
⇒ OS가 다중작업을 처리할 때에는 여러 프로그램이 CPU와 메모리를 공유
⇒ 비록 CPU가 하나밖에 없더라도 빠른 CPU의 처리속도로 짧은 시간 규모를 가지고 여러 프로그램들이 CPU에서 번갈아 실행되면 사용자 입장에서는 여러 프로그램이 동시에 실행되는 것처럼 보임.(시분할 시스템)
-
시분할 시스템(time sharing system)
CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
-
다중 프로그래밍 시스템(multi-programming system)
⇒ CPU와 달리 메모리의 경우 여러 프로그램들이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라가 있을 수 있음
⇒ 이처럼 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템을 다중 프로그래밍 시스템(multi-programming system)이라고 함
-
대화형 시스템(interactive system)
⇒ 각 프로그램이 사용자의 입력에 대해 곧바로 응답
⇒ 여러 사용자가 동시에 접속해서 쓰는 서버인 경우에도 서버 컴퓨터에 사용자가 입력을 전달하면 곧바로 서버가 응답하여, 각 사용자 입장에서는 그 서버를 자기 혼자 사용하는 것처럼느끼게 해주므로 대화형 시스템에 해당
-
다중처리기 시스템(multi-processor system)
⇒ 하나의 pc안에 cpu가 여러 개 설치된 경우를 뜻하므로 위의 용어들과는 다른 의미
⇒ 서로 다른 CPU에서 여러 프로그램이 동시에 실행될 수 있어 처리가 더욱 빨라지지만, OS입장에서는 여러 cpu를 관리하기 위해 더욱 복잡한 메커니즘을 필요
2) 사용자의 수에 따른 분류
⇒ pc 한 대를 여러 사용자가 동시에 접속해서 사용할 수 있는지에 따른 분류
⇒ 리눅스, 유닉스 같은 경우, 여러 사용자의 계정을 만들어서 동시 접속
⇒ 이메일 서버나 웹서버 등 우리가 흔히 서버라고 부르는 PC는 여러 사용자가 동시에 접속해 사용할 수 있으므로 다중 사용자용 OS가 이용되는 대표적인 경우
3) 처리 방식에 따른 분류
▣ 일괄 처리
⇒ 어떤 작업이 주어졌을 때 바로바로 처리를 하는 것이 아니라 작업을 모아서 한꺼번에 처리하는 방식
⇒ 옛날 방식(역사 속 시스템)
⇒ 이것으로 어떻게 프로그래밍을 할까? 프로그래밍을 할 때 어떤 카드에 마킹을 하고 구멍을 뚫음. OMR카드를 생각. 이것들을 전산소에 가서 제출을 하면 거기 컴퓨터에 집어 넣어서 정상적으로 컴파일이 되는지 확인을 함. 다음 날 찾으러 가면 알려줌. (컴파일 오류가 하나 났습니다.)
⇒ C언어처럼 코드를 입력하고 compile 했을 때 결과를 바로 받을 수 있는 것이 아님. → interactive 하지 않음(요청, 응답이 바로 이루어지지 않음)
실생활에서의 일괄 처리 예) 이전에는 주민등록등본을 뽑는 것도 일괄 처리 방식. 등본 접수 process "직원이 신청서를 받고 창고에 들어간 후 해당 서류를 꺼낸 다음 복사를 하고 접수자에게 전달". 그때그때 접수를 받을 때마다 이렇게 하는 것은 비효율적. 그래서 동사무소에 가서 등본 접수를 하고 서류 작성을 한 후 신청을 하면 30분 이따가 오라고 함. 어느 정도 신청서가 쌓이면 모아놨다가 한꺼번에 처리하려고.
▣ 시분할 방식(Time sharing)
⇒ 현재 우리가 사용하는 pc라고 생각하면 됨
⇒ 명령을 했을 때 응답이 바로 나타남(interactive)
⇒ 짧은 응답 시간을 가진다는 것이 시간의 deadline이 있다는 의미는 아님. (시간의 제약조건을 만족하지 않음) 사용자가 늘어날 경우, 명령에 반응하는 시간이 어떨 때는 0.01초, 또 어떨 때는 0.1초가 될 수도 있음. Time sharing의 목적은 사람들이 느끼기에 빠르면서 동시에 주어진 자원을 최대한 활용하는 것. 정확한 시간을 지켜주거나 그런 시스템은 아님.
▣ 실시간 방식(real time)
⇒ deadline이 있음. 정해진 시간안에 반드시 결과가 나오는 것을 보장
⇒ 특수한 목적(special purpose)을 가진 시스템에서 그 작업이 반드시 정해진 시간내에 처리 되도록 하는 정교한 시스템.
ex) 미사일 제어. 미사일을 발사하는데 시간이 0.1초의 오차라도 있으면 문제가 생김
ex) 반도체. 여러 공정을 거쳐서 완성하는 것(파이프라이닝). 중간 공정에서 문제가 생기면 그 이전에서 중간으로 넘어오는 모든 반도체에 영향. 이전에 삼성 반도체 공장에서 정전 사태가 발생. 정전이 났으면 다시 전원을 켜면 되지? No. 반도체 장비도 실시간 시스템. 어느 한 공정에서 deadline을 못 지켜서 느려지게 되면 전체 공정이 영향을 받음. 반도체를 만들 때 중간 공정에서 문제가 생기면 그건 그냥 버려야 한다고 함. 반도체를 하나 만드는데 30일이 걸린다고 가정하면 정전이 났을 경우 30일 동안 반도체를 납품 할 수 없는 상황이 발생하는 것.
◈ 시간 제약의 중요성에 따라 두 가지로 세분화. 경성 실시간 시스템과 연성 실시간 시스템
⇒ 경성 실시간 시스템(Hard realtime system) : 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말함(위에서 설명한 것)
⇒ 연성 실시간 시스템(Soft realtime system) : 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템을 말함. 시간이 지켜지지 않을 경우 동영상 재생이 끊기거나 그 내용이 정확히 전달되지 않을 우려가 있지만 경성 실시간 시스템처럼 위험한 결과를 초래하지는 않음
4. 운영체제의 구조
⇒ 나 자신을 OS라 생각하고 하드웨어, 프로그램을 어떻게 관리 해야할 지를 생각!
⇒ 마치 한 나라의 대통령이 되어서 모든 분야를 통치해야 하는 것처럼 OS로서 어떤 일을 해야될 것인가를 생각.
출처 : 반효경 교수님(이화여대) 강의
반효경 교수님의 강의를 들으며 정리한 것입니다.
'IT > OS' 카테고리의 다른 글
[OS] 4. Process Management (0) | 2020.12.24 |
---|---|
[OS] 3-2. Process 2 (0) | 2020.12.24 |
[OS] 3-1. Process 1 (0) | 2020.12.18 |
[OS] 2-2. System Structure & Program Execution 2 (0) | 2020.12.16 |
[OS] 2-1. System Structure & Program Execution 1 (0) | 2020.12.15 |