반응형

운영체제가 없어도 컴퓨터 하드웨어는 사용이 가능하다. 다만, 운영체제는 컴퓨터의 사용을 용이하게 해주는 역할을 한다.

 

1. 운영체제 서비스

: 프로그래머와 사용자들에게 편리한 서비스 제공

: 자원관리의 효율성을 위한 서비스

 

 

2. 운영체제의 구성요소

: 인터페이스 / 자원관리 / 자체관리기능

 

- 인터페이스

: 명령어 해석기 시스템

 

- 자원관리 -> 전통적 의미의 운영체제

: 프로세스

: 메모리, 보조 기억 장치

: 입출력, 파일, 네트워크

 

-자체관리

: 부팅 및 초기화

: 시스템 생성 및 튜닝

운영체제의 구성요소

 

 

 

 

 

 

3.  사용자 인터페이스

명령 라인 해석기(Command Line Interpreter) : Shell

Graphic User Interface 

 

 

시스템 호출

: 프로세스와 운영체제 간의 인터페이스(API)

- 프로그램에서 명령 또는 서브 루틴의 호출 형태로 실행한다.

- 시스템에서 명령 해석기를 통해 대화 형태로 호출한다.

 

시스템 호출의 원리

 

 

 

 

 

4. 자체 관리

- 부트스트래핑(부팅)

: 운영체제에서 자기 자신을 적재하는 과정

 

1) 부트스트랩 로더

: 전원 입력시 ROM에 있는 작은 로더가 실행된다.

: 로더는 디스크에 있는 부트스트랩 로더를 메모리에 적재하고 실행시킨다.

: 운영체제를 적재하고 초기화시킨다.

2) 운영체제의 초기화

: 시스템 장치의 초기화

: 명령어 해석기 등을 적재하여 실행시킨다.

 

 

 

 

 

 

4. 운영체제 구조

1) 단순 구조

: 모듈로 분할되지 않는다.

: 수행효율은 높으나 기능 추가 및 유지 보수에 어려움이 있다.

: MS-DOS, 초기의 UNIX

 

 

 

2) 계층 구조

- 모듈성

: 하나의 프로그램을 서로 영향받지 않는 부분들로 분리한다.

: 시스템 오류 제거와 검증에 용이하다.

 

- 계층 기법(Layer)

: 운영체제를 여러 계층으로 나눈다.

: 각 계층은 하위 계층에서 제공되는 기능과 서비스만을 사용한다.

 

- 계층 구조의 어려움

: 계층의 정의 또는 결정

: 계층 정의에 위배되는 경우가 자주 발생한다.

 

 

 

3) 마이크로커널 구조

: 커널로부터 많은 기능을 제거하고 "사용자"공간으로 이전

: 커널은 최소한의 프로세스 및 메모리 관리와 통신 기능을 담당한다.

MACH, QNX, Windows NT

 

[ 장점 ] 

- 운영체제 확장의 용이성

- 운영체제를 새로운 하드웨어로 포맷하기가 쉽다.

- 보안과 신뢰성

 

 

 

 

 

 

 

4) 가상 기계(Virtual Machine)

: 하드웨어와 운영체제 커널을 모두 하드웨어처럼 취급한다.

: 각 프로세스는 실제 컴퓨터의 사본을 제공함으로써 마치 실제 컴퓨터를 사용하는 것과 같은 환경을 제공한다.

-> 조금 더 진화된 것이 "도커"

 

- 자바 가상 기계(JVM)

 

 

 

 

 

 

 

5. 운영체제의 발전 과정

1970년대 UNIX 개발

1980년대 개인용 컴퓨터를 위한 운영체제의 발전

 

 

 

 

1) 일괄처리 시스템(Batch System)

: 유사한 작업들을 묶어서 순차적으로 처리한다.

 

- 상주 모니터

: 메모리에 상주하여 CPU 등 자원의 비효율적 사용을 해결한다.

: 입출력 관리 또는 인터럽트 처리 루틴들의 집합

 

- 제어 카드

: 상주 모니터의 프로그램 수행을 지시한다.

 

- 오프라인 처리

: 위성 컴퓨터, 테이프, 카드, 프린트, 장치 독립성 보장

 

 

 

 

 

 

2) 다중 프로그래밍

: 동시에 실행 상태에 있는 프로세스가 여러 개

-> 자원의 공유가 필요하다. (CPU, 메모리, 주변장치 등)

 

 

 

 

 

 

3) 시분할 시스템(Time Sharing) = 대화형 처리 시스템

: 시간을 나누어서 처리한다.

-> 다중 프로그래밍을 통해 각 사용자가 컴퓨터를 분할하여 사용

-> 메모리와 디스크 사이에 교체 필요

 

 

 

대화형 처리 시스템 vs 일괄 처리 시스템

- 일괄 처리 시스템

: 한 사용자가 주문을 끝까지 받고, 그 다음 사람이 순서대로

: 작업을 준비하여 제출하면 일정 시간 내 결과가 나온다 .

: 반환 시간이 길다. 대화가 거의 필요없는 대형 작업에 적합하다.

 

- 대화형 처리 시스템

: 여러 사용자를 이 사람, 저 사람 번갈아가며 동시에

: 사용자와 시스템 간에 온라인 통신 마련

: 사용자가 컴퓨터에 직접 명령을 주고 응답을 받는다.

 

 

 

 

 

 

 

 

4) 입출력 버퍼링

: 입출력 데이터를 버퍼에 미리 담아오는 것

: 입출력장치와 CPU의 속도 차이를 해소시킨다.

: 한 작업의 계산과 함께 입출력을 동시에 수행한다.

: 버퍼를 사용하여 문자나 데이터를 미리 읽어온 후, 필요할 때마다 사용하게 하면 효율적이다.

 

 

 

 

 

 

 

 

5) 스풀링

: 버퍼를 하드디스크로

: 디스크의 일부 공간을 스풀 공간이라고 부르는 매우 큰 버퍼처럼 사용한다.

: 입출력장치와 CPU의 속도 차이 해소해준다.

 

- 다중 프로그래밍 환경에서 스풀링을 사용한다.

: 다수의 프로세스들이 동시에 입출력을 요구하거나 입출력 장치 수에 제한이 있기 때문에 스풀링을 사용한다.

: 다수의 프로세스에게 각각 독립적인 입출력 장치를 제공한다.

 

 

 

 

 

 

 

 

 

 

6) 병렬 시스템 = 다중 처리기

: 고만고만한 CPU가 여러개 있는 시스템

 

<장점>

- 처리율 증가

- 다양한 주변 장치 공유

- 신뢰성 향상 

 

<단점>

- 프로그래밍 작성이 어려움

 

연결구조

 

 

 

 

7) 분산 시스템

: CPU와 메모리가 각각 별도로 존재 (병렬 시스템은 CPU만 여러개이고, 메모리와 입출력장치는 하나이다)

: 느슨하게 결합

<장점> 자원공유, 계산의 신속화, 신뢰성, 통신

 

 

 

 

 

 

 

 

 

8) 실시간 시스템

: 실행 완료 데드라인이 있다.

-> 특수 목적 시스템에 이용 (공정 제어, 의료 영상, 자동차 엔진 제어)

 

- 경성 실시간 시스템 : 데드라인 반드시 만족

ex) 항공 제어

- 연성 실시간 시스템 : 데드라인 일정 수준 이상 만족

ex) 멀티미디어 서비스

반응형

+ Recent posts