45
Week3 : 운운운운 Chapter 2: 운운운 운운운 운운 운운운운 : 운 운 운

Week3 : 운영체제 Chapter 2: 컴퓨터 시스템 소개

  • Upload
    tamera

  • View
    99

  • Download
    0

Embed Size (px)

DESCRIPTION

Week3 : 운영체제 Chapter 2: 컴퓨터 시스템 소개. 담당교수 : 최 윤 정. Contents. 학습목표 : 운영체제의 역할을 통해 OS 의 목적을 이해해본다 . OS 의 발전 과정 및 그에 다른 다양한 OS 유형의 특징 OS 의 기본구성과 제공하는 서비스 운영체제 설계를 위한 모듈과 계층구조 내용 OS 의 역할과 목적 유형별 특징 발전과정 기능 및 서비스 구조. 1. 운영체제의 역할과 목적. 컴퓨터 사용자 : 어떤 일을 수행하기 위해 컴퓨터를 사용하는 - PowerPoint PPT Presentation

Citation preview

Page 1: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

Week3 : 운영체제

Chapter 2: 컴퓨터 시스템 소개

담당교수 : 최 윤 정

Page 2: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

Contents

학습목표 : 운영체제의 역할을 통해 OS 의 목적을 이해해본다 .

OS 의 발전 과정 및 그에 다른 다양한 OS 유형의 특징

OS 의 기본구성과 제공하는 서비스

운영체제 설계를 위한 모듈과 계층구조

내용

OS 의 역할과 목적

유형별 특징

발전과정

기능 및 서비스

구조

2

Page 3: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-1] 컴퓨터 시스템 구성요소와 운영체제

컴퓨터 사용자 : 어떤 일을 수행하기 위해 컴퓨터를 사용하는

사람 , 장치 , 다른 컴퓨터 포함 .

하드웨어 : 연산을 위한 기본 자원을 제공하는 프로세서 (CPU),

메모리 ( 기억장치 ), 다양한 장치 ( 입출력장치 등 ) 로 구

성 .

소프트웨어 : 컴퓨터가 기능을 수행하는데 필요한 프로그램을

총칭 . (ex: 운영체제 , 각종 응용 프로그램 유틸리티 등 )

응용 프로그램 : 어떤 문제를 해결하기 위해 사용자나 전문가에

의해 만들어진 프로그램 . (ex: 웹 브라우저 , 한글 등의

워드

프로세서 , 데이터베이스 관리 프로그램 , 비디오 게임 등 )

1. 운영체제의 역할과 목적

역할

컴퓨터 H/W 와 응용 프로그램 간의 인터페이스 !

CPU, memory 같은 자원을 관리

사용자 편의성

3

Page 4: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

4

운영체제의 역할 : 조정 , 관리 , 제어

컴퓨터 자원을 관리한다는 측면에서 아래와 같이 운영체제의 역할을 정리할 수 있다 .

조정자

운영체제는 시스템을 운영하여 여러 운영 요소 ( 하드웨어 , 소프트웨어 ( 프로그램 ), 데이

터 ) 를 적절하게 사용할 수 있도록 제어한다 .

다른 프로그램이 작업할 수 있는 환경만 제공한다 .

자원 할당자 또는 관리자

컴퓨터 시스템이 문제를 해결하는 데 필요한 자원 ( 프로세서 시간 , 메모리 공간 , 파일 저장

공간 , 입출력장치 등 ) 을 할당하는 업무를 한다 .

컴퓨터 시스템을 공정하고 효율적으로 운영하기 위해 자원을 어떻게 할당할 지를 결정하는

관리자 역할도 수행한다 .

입출력장치와 사용자 프로그램 제어

컴퓨터 시스템의 부적절한 사용이나 오류를 방지하기 위해 사용자 프로그램의 실행을 제어 .

입출력장치를 동작시키고 통제한다 .

Page 5: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-2] 운영체제 역할

운영체제의 역할 : 주요기능

기능

인터페이스 : h/w – user

h/w 의 자원제어 : sharing!

사용자들간의 스케쥴링 및 자원할당

I/O 지원 및 오류처리

5

사용자들 !

Page 6: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 역할 :

6

운영체제의 역할과 기능이 매우 다양하여 완벽히 정의하기 힘드나 , 일반적으로

“ 컴퓨터 자원을 통제하고 할당하는 공통 기능을 컴퓨터 소프트웨어 하나로 통합한 것”

혹은 구체적으로 표현으로

“ 컴퓨터 시스템에서 항상 실행되는 , 응용 프로그램을 제외한 모든 프로그램 또는 커널

(Kernel)” 이라고도 정의된다 .

※ 커널 (Kernel)

운영체제의 핵심으로 메모리에 상주하며 운영체제의 다른 부분 또는 응용 프로그램

수행에 필요한 환경을 설정하는 소프트웨어 .

응용 프로그램 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를

스케줄링하는 역할 .

Page 7: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 목적

2 가지의 주요목적을 달성하고 싶었다 .

( 사용자를 위한 ) 편리성

프로그램 사용 및 개발을 위한 편리한 환경 .!

( 자원관리를 위한 ) 효율성 : 각 프로그램의 유기적으로 결합하도

록 .

처리능력 : 시스템의 생산성 - 단위시간당 처리하는 작업량

신뢰도 : h/w( 펌웨어 ). s/w 가 실패없이 수행하도록 .

응답시간 : 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지의

시간 .

사용가능도 ( 가동율 ) : 사용자가 컴퓨터를 실제로 사용한 시간

고장이나 오류 보수시간 제외 !. 시스템을 중단시키지 않고 운영하자 . 7

Page 8: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 목적 : 요약

8

[ 그림 2-3] 운영체제 목적

Page 9: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제 기능의 발전 : 초기 환경

초기 컴퓨터 시스템 및 환경

작업별 처리 시스템

저성능 , 속도 느림

온라인 판독기아 프린터에 의존 .

예 ) 프로그래머 : 콘솔로 작성 종이테입이나 펀치카드로 저장

카드리더기가 메모리에 저장 콘솔에서 실행 .!

프로그램 형태는 2 진수 8 진수등의 기계어코드로 작성 .

절대주소를 사용했고 , 라이브러리 루틴은 없었다 .

프로그래머는 시스템사용을 위해 예약을 했고 , 시간내에 끝내지 못하면

다른 사용자에게 사용권 넘기고 대기 .

작업을 빨리 마쳐도 남은 시간은 유휴시간 .!

9

Page 10: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 기능의 발전

카드판독기 , 라인프린터 , 자기 테이프가 보편화

어셈블러 , 로더 , 링커 등의 툴이 개발

라이브러리 생성

공통기능을 새로 작성할 필요없이 프로그램에 삽입하여 사용한다 .

예 ) stdio.h, java.io.* 등

컴파일러 개발

포트란 , 코볼 , 베이직 등

프로그래밍 업무는 쉬워졌으나 , 컴퓨터 동작은 복잡해졌다… -

포트란의 경우 8 단계 어셈블리과정이 필요하여 , setup 시간이 많아

시간낭비 . 오류발생시 처음부터 다시 ..!

10

Page 11: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 기능 : 모니터링

모니터링

작업 준비시간의 문제를 해결하여 컴퓨터의 처리율을 높인다 .

방법 1: 운용을 위한 전문 오퍼레이터를 고용한다 .!

방법 2: 유사작업을 묶어 일괄처리하도록 스케쥴링한다 .

11

[ 그림 2-4] 초기의 일괄 처리 시스템

5000

Page 12: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 기능의 발전 : 자동작업순서

자동작업순서 (Automatic Job Sequencing)

작업의 중단 !

오퍼레이터는 정상종료인가 ? 비정상종료인가 ? 를 파악하고

프로세스는 쉰다… 할 일은 많은데 !

순서에 따라 다음 작업을 준비하도록 제어 .

12[ 그림 2-5] 제어 카드 ( 작업 제어 언어 ) 사용 예 [ 그림 2-6] 상주 모니터 영역과 메모리 배치도

Page 13: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 기능의 발전 : Offline

오프라인 연산 ( 장치들의 독립성 )

일괄처리시스템을 자동작업순서로 전환함으로써 성능은 높였음에도 , 종종 유휴시간이 발생 .

왜 ? 기계적 장치와 전자적 장치간의 속도차 !

초당 수백만개의 명령을 수행하는 프로세서 Vs. 초당 17 개의 카드를 읽은 리더기 .!

느린 카드판독기와 라인 프린터 자기테이프로 대체

카드판독기와 라인프린터는 자기테이프에 복사 : Offline

프로세스가 카드를 직접읽는 대신 , 자기테이프를 읽도록 구현 . 장점은 ?

13[ 그림 2-7] 온라인 처리와 입출력장치를 위한 오프라인 처리

Page 14: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-8] 버퍼링

운영체제의 기능의 발전 : 버퍼링

버퍼링

입출력장치의 느린속도를 보완하여 CPU 가 노는 시간이 없도록 ,

바쁘게 움직이도록 수행하는 간단한 방법 : 연산과정과 입출력이

동시에 가능하도록 한다 .

예 ) 프로세서가 어떠한 작업을 처리하기 시작하기 직전 ,

입력장치는 그 작업에 필요한 다음 입력을 받는다 .

데이터 구성단위인 레코드 수에 따라 성능이 좌우된다 .

14

Page 15: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-9] 스풀링

운영체제의 기능의 발전 : 스풀링

스풀링

자기테이프의 문제점 : 테이프의 특성상 프로세서가 다른 부분을 읽고 있는

동안 추가로 기록할 수 없다 .

반면 디스크는 가능하다 .!

‘Simultaneous Peripheral Operation On-Line’ :

디스크를 매우 큰 버퍼처럼 사용하는 , 입력장치에서 미리 읽어

출력 장치가 받을 수 있을 때 까지 출력 파일을 저장한다 .

버퍼링 vs. 스풀링

내부버퍼 - 외부장치

한 작업의 입출력을 수행하면서

다른 작업의 계산도 가능 .

15

Page 16: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 기능의 발전 : 스풀링

스풀링 시스템 : 현재는 표준 .

초기에는 NASA 의 휴스톤 계산 센터에 부가된 특수 기능이었음 .

별개의 오프라인 장치를 사용 , 한 작업의 입출력을 수행하면서 다른 작업의

계산이 가능하고 많은 작업의 입출력과 계산을 함께 할 수 있다 .

작업 풀 (Job Pool) 데이터 구조를 제공한다 .

디스크에 읽혀져 실행을 위해 대하는 여러 작업을 수행할 수 있도록 준비 ,

디스크에 저장된 작업은 프로세서 이용률 향상을 위해 운영체제가 다음

수행할 작업 선택을 돕는다 . 예 ) 프린트 작업 스풀링 .

테이프 스테이징 (Tape Staging) : 기존의 테이프 시스템에도 적용 .

자기 테이프의 전체 내용을 이용하기 전 디스크로 읽어 복사된 디스크에서

빠른 속도로 모든 연산이 수행되고 테이프를 사용하지 않는 방법 .16

Page 17: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-10] 다중 프로그래밍 시스템을 위한 메모리 구조

2. 운영체제의 유형별 특징 : 다중프로그래밍 발전과정과 용도 , 응답시간에 데이터 입력방식에 따라

다중 프로그래밍시스템 시분할시스템 vs. 작업분할 vs 일괄처리 분산처리 vs. 다중처리 Sing-user vs. Multi-user

다중 프로그래밍 시스템 : 프로세서가 항상 수행할 작업을 갖도록 하자 .! 버퍼링 , 스풀링 : 입출력장치와 프로세서를 항상 바쁘게 하자 . But, 한계점이 있음 ( 예 :single-user)

작업의 예1. 운영체제가 메모리에 있는 작업 1 을 실행한다 .2. 작업 1 에서 키보드 입력이 끝날 동안 , 마냥 기다리지않고 간단히 다른 작업으로 전환 - 수행한다 .3. 위에서 입력작업이 끝나면 계속해서 작업 1 을 수행한다 . ** 역시 메모리관리 , 결정방법에 대한 정책이 필요합니다 .

현대 운영체제의 중심주제 인터럽트를 이용한 스케줄링

17

Page 18: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 유형별 특징 : 시분할

시분할 시스템

다중 프로그래밍을 논리적으로 확장한 개념으로 , 프로세서가 다중작업을 교대로

수행한다 .

프로세서 스케쥴링과 다중 프로그래밍을 사용하여 각 사용자에게 컴퓨터를 시간적으로

분할하여 나누어 주는 효과 .

각 사용자는 메모리에 독립된 프로그램을 갖고 ,

프로그램은 입출력을 수행하는 아주 짧은 시간 동안만 실행하는 방식 .

60년 이전에 제안되었으며 , 초기 버전은 MIT 에서 개발한 CTSS 61년 IBM 에

탑재

복잡한 방식과 구현비용이 높아 70년초까지는 일반화되지 못했다 .

18

Page 19: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 유형별 특징 : 시분할 시스템

시분할시스템에서는

여러 작업들이 저장되어 있는 경우 , 데이터 변경이 동시에 일어나지 않도록 보호해야

함 .

다수의 사용자가 접근하는 파일은 접근권한을 두어 해당사용자 그룹만 접근하도록 .!

공유자원의 경우 , 접근순서도 조정할 수 있도록 제어기능이 요구된다 ..

현재의 시스템은 일괄처리방식과 시분할 방식 모두 제공 .

19

Page 20: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 유형별 특징 : 분산처리

분산 처리 시스템 (Distributed Processing System) chapter 11

시스템마다 각각 운영체제와 메모리를 가지고 독립적으로 운영 .! 필요할 때 통신하는 시스템 !

최근의 컴퓨터 환경 : 성능향상 및 신뢰성 등을 위해 여러 개의 컴퓨터에 작업을 분산시켜 연결한 구조 .

분산 시스템 구성 방법

강결합 ( 단단히 결합된 ) 시스템

프로세서 ( 처리기 ) 가 기억장치와 클록 (Clock) 을 공유하며 , 공유된 기억장치를 통해 통신 .

약결합 ( 느슨하게 결합된 ) 시스템

둘 이상의 독립된 컴퓨터 시스템을 통신선으로 연결 .

20[ 그림 2-12] 분산 ( 약결합 ) 처리 시스템의 구성 예

Page 21: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 유형별 특징 : 다중처리

다중처리 시스템

하드웨어 비용이 저렴해짐에 따라 , 마이크로 프로세서 여러 개를 연결해 다중

프로세서를 만든다 .

시스템은 신뢰성 , 가용성 , 컴퓨팅 능력이 증가

비용이 큰 초고속 프로세서를 사용하지 않고도 대형컴퓨터에 근접하는 능력을 얻을 수

있다 .

주 / 종 (Master/Slave) 다중처리 시스템 – 비대칭구조

대칭적 구성 다중처리 시스템

21

Page 22: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

운영체제의 유형별 특징 : 다중처리

22

[ 그림 2-13] 주 / 종 다중 처리 시스템 구성

[ 그림 2-13] 대칭적 구성 다중 처리 시스템

• 마스터프로세서가 주가되어 부가적인 슬레이브

프로세서를 관리하는 단일처리 시스템 !

• 형태가 단순하지만 마스터 프로세서에 부하가 많아서

신뢰도나 자원사용면에서 비효율적이다 .

• 모든 프로세스가 동등한 성능일때 최적으로 구현된다 .

• 교착상태나 기아상태등 프로세서 관리를 위한 동기화

작업의 구현이 매우 어려우나 , 약결합 시스템보다

신뢰성이 높고 오버헤드를 균형있게 분산할 수 있어

효율적이다 .

Page 23: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

23

운영체제의 유형별 특징 : single/multi-user

단일 사용자 시스템

예 ) 개인 컴퓨터

하드웨어 비용이 저렴해짐에 따라 컴퓨터 시스템 하나를 사용자 한 명이 전용하는 것 .

다중 사용자 시스템

예 ) 서버 : 파일공유사이트 , 네이버 , 다음 등의 포털 ,

해당시스템에 여러 사용자가 로그인하여 동시에 사용할 수 있는 작업 환경을 제공

최근 사용자의 편리함과 빠른 응답을 제공하기 위해 다중 작업 (Multi-Tasking),

다중 사용자 (Multi-User) 환경으로 변하고 있다 .

Page 24: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

3. 운영체제의 발전과정

운영체제 -- 컴퓨터 구조의 발전 단계

24

[ 표 2-1] 운영체제의 발전 과정

Page 25: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

25

3. 운영체제의 발전과정 : 제 0 세대

제 0 세대 (1940년대 )

초기 시스템에는 운영체제가 없었다 .!

프로그래밍 : 사용자가 직접 기계어를 사용해 명령문을 작성

카드리더기는 언제 작업을 시작하고 종료하는지

데이터는 어떻게 해석하는지

무엇을 계산하여 결과는 어디에 어떻게 , 출력은 ?

프로그램을 작성할 때 컴퓨터에 필요한 작업을 모두 포함하고 , 모든 명령어를

명시적으로 표현하였다 . 기계어로… !

모든 작업은 예약을 통해 진행되고 컴퓨터는 프로그래머가 메인 콘솔에서

수동으로

운영하였다 ..

Page 26: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

3. 운영체제의 발전과정 : 제 1 세대

제 1 세대 (1950년대 ) – 버퍼링 , 스풀링 , 일괄처리 시스템

1952년 초 , 자동차 제조회사 GM 의 연구실에서 IBM 701 운영체제 개발 .

1955년 , GM 과 북아메리가 항공사가 IBM 704 운영체제를 공동으로 개발 .

IBM 사용자협회 SHARE(Semi-Automatic Business Research Environment) 에서

운영체제에 대한 토론회를 육성 , 1957년까지 IBM 704 를 위한 자체 운영체제를 개

발 .

버퍼링 , 스풀링 기법 적용

설치시간 (setup time), 철거시간 (teardown time) 을 줄이자 .

일괄처리 기법 적용

프로세스가 쉬는 시간을 줄이기 위하여 .

시스템 화일명

하드웨어 장치의 독립성을 위해 하드웨어 장치번호를 사용하는 대신 표준입출력

파일을 지정했다 .

어셈블러 vs. 컴파일러

링커와 로더로의 변환이 원활해짐 26

Page 27: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

27

3. 운영체제의 발전과정 : 제 2 세대

제 2 세대 (1960년대 초기 ) – 다중 프로그래밍 , 다중 처리 , 시분할 시스템

일괄 처리 형태로 처리량을 향상 .

장치 독립성이라는 개념으로 하드웨어 관리가 편리해 짐 .

다중 프로그래밍

여러 프로그램이 메인 메모리에 공존 , 프로세서를 작업 간에 수시로 번갈아 할당 .

다중 처리 시스템

시스템의 처리 능력을 증진시키기 위해 한 컴퓨터에 여러 개의 프로세서 사용 .

시분할 시스템

사용자와 대화 방식으로 작동하며 , 사용자가 컴퓨터에 요구 사항을 입력하고

컴퓨터가 요구를 처리하여 사용자의 터미널로 응답하는 대화형 .

실시간 시스템

가솔린 정제용 공정작업이나 , 군사용 실시간 시스템에 적용되면서 발전 .

비용이 크고 활용도가 높지 못하지만 , 빠른 응답과 즉각적인 사용을 위해 적용되었

다 .

트랜잭션 (Transaction) 처리 : 사용자 - 컴퓨터가 대화를 하되 , 간단히 요구하고

즉각 응답하는 작업 . 예 ) 마트에서 계산하기 .

Page 28: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

28

3. 운영체제의 발전과정 : 제 3 세대

제 3 세대 (1960년 중반 ~ 1970년대 중반 ) – 범용 시스템 , 다중 모드 시스템

1964년 IBM 시스템 /360 계열 컴퓨터로부터 시작 .

범용 시스템으로 설계되어 덩치가 크며 , 모든 사용자에게 모든 기능을 제공할 수 있도록

제작되어 무거웠다 .

다량의 컴퓨터가 판매되었으나 , 이러한 기능이 필요 없는 사용자에게 실행 시간의

과부하 , 시스템 이해를 위한 기간 , 오류 발생 시 수정 시간 , 시스템 유지 등에 있어

많은 비용 부담의 단점을 가짐 .

다중 모드 시스템

일괄 처리 , 시분할 처리 , 실시간 처리 , 다중 처리를 모두 제공 .

고가이며 계획한 시간과 예산을 초과하여 완성되었다 .

사용하려면 고도의 훈련이 필요 .!

사용자와 하드웨어 사이에 소프트웨어 계층 도입 .

하드웨어에 대한 관점 없이 소프트웨어로 접근하게 되어

사용이 어려우며 , 간단한 작업도 복잡한 작업 제어 언어 (JCL, Job Control Language) 의

이해가 필요함 .

Page 29: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

29

3. 운영체제의 발전과정 : 제 4 세대

제 4 세대 (1970년대 중반 이후 ) – 네트워크 , 가상 머신 , 분산 처리 시스템 ,

개인 컴퓨터

통신 발달과 더불어 컴퓨터 네트워크와 온라인 처리가 사용됨 .

다양한 형태의 단말기를 이용하여 네트워크 기능을 이용 .

마이크로프로세서의 등장으로 개인용 컴퓨터를 가짐 .

개인용 컴퓨터

데이터 통신 인터페이스를 갖추어 터미널로 사용 : 예 ) 서버에 접속하여 작업

정보의 안전성에 관한 문제가 대두되어 정보 보호에 대한 중요성 인식 .

1980년대 , 메뉴 지향적 시스템 .

컴퓨터를 사용하는 인구가 급증하며 , 컴퓨터를 쉽게 사용할 수 있도록

“ user-friendly“( 사용자에게 친숙한 시스템 ) 이란 문구 등장 .

1990년대 , GUI(Graphical User Interface) 시스템 .

도형 ( 아이콘 ) 과 마우스를 기반으로 한 시스템 - apple 의 맥킨토시

Page 30: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

30

3. 운영체제의 발전과정 : 제 4 세대

가상 머신 (Virtual Machine) 개념 출현

더 이상 컴퓨터 시스템의 물리적인 부분을 신경 쓰지 않고 , 운영체제에 의해

만들어진 가상 머신의 관점으로 이해한다 .

오늘날의 사용자는 머신 내부의 기능보다 실제로 컴퓨터 작업을 수행하는 데

관심을 가진다 .

리눅스를 윈도우 위에 설치할 수 있었던 이유 .!

vmware 나 virtual box 등의 가상머쉰을 설치한 후 , 그 위에 리눅스를 설치합니다 .

데이터베이스 시스템의 중요성

정보를 제공받을 권리가 있는 사람에게만 일정한 통제 하에서 정보를 제공한다 .

수많은 온라인 데이터베이스를 통신 네트워크의 터미널을 통해 사용 가능하다 .

분산 처리의 개념 확립 .

컴퓨터가 있는 곳으로 데이터를 가져가기 보다 ,

데이터가 발생하는 곳에 컴퓨터의 능력이 사용되도록 ..

Page 31: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

31

4. 운영체제의 기능

기본 역할 :

운영체제는 프로그램을 실행하는 데 필요한 환경과 자원을 제공하고 관리하기 위한 크고

복잡한 시스템이다 .

논리적으로 작은 모듈로 구성되며 각 부분은 명확하게 정의된다 .

대부분의 시스템은 자원 관리와 프로그램을 위한 인터페이스 역할을 수행한다 .

[ 그림 2-15] 운영체제의 자원 관리 기능

• 자원관리기능

• 메모리관리

• 보조기억장치관리

• 프로세스관리

• 입출력장치 관리

• 파일 관리

• 주요 기능 :

• 시스템 보호

• 네트워킹

• 명령어 해석과

시스템 관리

• 기타기능

Page 32: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

5. 운영체제 서비스

기본 서비스 :

프로그램 실행을 위한 환경을 제공하고 프로그램과 사용자에게 정해진 서비스를

제공한다 .

프로그래밍을 위한 편리한 환경도 제공한다 .

32

• 부트스트래핑 (

부팅 )

• 사용자서비스

• 시스템 서비스

• 시스템 호출서비스

• 주요 서비스

[ 그림 2-16] 부트스트래핑 과정

Page 33: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

5. 운영체제 서비스

사용자 서비스

목적 : 프로그래밍 작업을 쉽게 수행할 수 있도록 .

사용자 인터페이스의 형태 : Command line, GUI

프로그램 수행

입출력 동작

파일 시스템 조작

통신

오류탐지

33

Page 34: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

34

5. 운영체제 서비스

시스템 서비스

사용자가 아닌 시스템 자체의 효율적인 동작을 보장하는 기능이다 .

다수의 사용자를 위해 컴퓨터 자원을 공유하여 효율성을 높인다 .

자원 할당

다수의 사용자나 다수의 작업이 동시에 실행 시 운영체제는 자원을 작업에 할당하여 관리 .

계정

계정 정보를 이용해 각 사용자의 시스템 이용 정보를 알 수 있다 .

시스템 사용 통계를 수집하기 위해 보관 , 사용자 서비스 개선을 위한 연구 자료로 이용

가능하다 . 에 ) 시스템 로그 기록들

보호

시스템 호출을 위해 전달된 모든 매개변수의 타당성을 검사 , 시스템 자원에 모든 접근을

제어하도록 보장한다 .

다중 사용자 컴퓨터 시스템에서 저장된 정보의 소유자는 정보 사용을 제한할 수 있다 .

Page 35: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

35

5. 운영체제 서비스

시스템 호출 (System Call) 서비스 : API

실행 중인 프로그램과 운영체제 간의 인터페이스로 , 이를 이용하여 운영체제의 기능을 서비스 받으

며 , API(Application Programming Interface) 라고도 부른다 . 예 ) Win32API, POSIX API, JAVA

API.. 등

호출 방법 : 크게 두 가지

프로그램에서 명령 또는 서브 루틴의 호출 형태로 실행 , 일반적으로 어셈블리 명령어로 제공 .

고수준 언어 (C, C++) 로 작성한 프로그램에서 직접 수행 가능하며 , 이때 호출은 미리 정의된

기능이나 서브루틴 호출과 비슷하다 .

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

[ 그림 2-17] 시스템 호출 구조

Page 36: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

5. 운영체제 서비스

일반적인 시스템 호출기능

36

프로세스 제어

파일 조작

장치 조작

정보 관리

통신

• 통신 연결의 생성 , 제거 , 메시지

송수신

• 상태 정보 전달

• 원격 장치의 부착 및 제거

• 종료 , 취소 , 적재 ( 로드 , Load), 수행

• 프로세스 생성 , 종료 , 속성 획득 , 속성

지정

• 대기 , 대기 이벤트 (Event), 신호 이벤트

• 파일 생성 , 삭제 , 오픈 (Open), 폐쇄

(Close), 속성 획득 및 지정

• 읽기 , 쓰기 , 재배치 (Reposition)

• 논리적 부착 (Logically Attach)• 장치 요구 , 해제 , 속성 획득 및

설정

• 읽기 , 쓰기 , 재배치

• 논리적 부착 또는 장치 제거

• 시간과 일자 , 데이터의 설정과 획득

• 프로세스 , 파일 , 장치 속성의 설정과

획득

Page 37: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

6. 운영체제 구조

각 구성요소가 커널과 상호접속하는 방법에 따라 .

단순구조 운영체제

계층구조 운영체제

마이크로 커널 운영체제

37

현대 운영체제처럼 크고 복잡한 시스템일 수록 , 수정 -변경이 용이하도록 설계되어야 한다 .

독립적인 기능을 가진 작은 부분으로 분할하여 개발과정을 단순화하고 체계화 한다 .

모듈화 . 프로그래밍 과정에서도 매우 중요한 요소 !

Page 38: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

6. 운영체제 구조 : 단순구조

단순구조 운영체제

작고 간단하며 시스템 기능이 제한됨 - MS-DOS

구조적이긴 했으나 모듈이 효율적으로 분할되어 있지 않았다 .

초기 유닉스

커널과 시스템 프로그램으로 구성

커널 : OS 의 주요기능이 포함되 있으며 , 여러 인터페이스와 장치드라이버로 분리되어 있도록 확

장 .

단일 (Monolithic) 커널 구조의 운영체제는 대부분의 기능이 프로시저들의 집합으로 구현되어 있어

직접 통신하여 효율이 높으나 새 기능 추가를 위한 수정과 유지 보수가 매우 어렵다 .

38[ 그림 2-18] MS-DOS 계층 구조 [ 그림 2-19] 유닉스 운영체제 구조

Page 39: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

[ 그림 2-21] 운영체제 계층

6. 운영체제 구조 : 계층구조

계층구조 운영체제

계층구조와 정보의 추상화 개념의 도입

유사한 기능을 수행하는 요소를 그룹으로 묶는다 .

최하위계층 : level 0 – 하드웨어

최상위계층 : level n - 사용자 인터페이스

전형적으로 상위계층에 의해 수행될 수 있는 데이터구조와 루틴의 집합으로 구성 .

각 계층은 인접한 계층과 상호작용이 가능하나

요청을 수행하는데 많은 계층을 거쳐야 하므로 성능은 저하된다 .

39

[ 그림 2-20] 계층적 구조 운영체제

Page 40: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

6. 운영체제 구조 : 계층구조

계층 시스템 : 시스템설계나 구현이 단순해짐

각 계층은 자신보다 하위 계층이 제공하는 연산을 사용하여 구현한다 .

연산이 어떻게 수행되나 ? 가 아니라 무슨일을 하는지 !

캡슐화 ( 정보은닉 ) : 데이터 구조의 존재와 동작방법 / 상위계층으로 부터 하드웨어들을

숨길 수 있다 .

대표 운영체제

THE

Venus

OS/2

40[ 그림 2-22] THE 운영체제의 계층 구조 [ 그림 2-23] Venus 운영체제의 계층 구조 [ 그림 2-24] OS/2 운영체제의 계층 구조

Page 41: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

6. 운영체제 구조 : 마이크로커널구조

41

Page 42: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

42

Page 43: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

SUMMARY

운영체제 목적

운영체제는 편리성과 효율성의 두 가지 목적을 달성하기 위해 발전해왔다 .

운영체제의 역할

운영체제는 조정자 , 자원 할당자 또는 관리자 , 다양한 입출력 장치와 사용자 프로그램을 제어하는

역할을 한다 .

운영체제 기능의 발전

초기의 작업별 처리 시스템은 콘솔을 사용 , 소프트웨어를 통해 프로그래밍하는 데

편리함을 제공하였으나 , 준비 시간 (Set-Up Time) 이 많이 필요했다 .

일괄처리 시스템은 상주 모니터를 이용 , 자동 작업 순서를 실현하여 컴퓨터 이용률을

전반적으로 높였으나 입출력장치의 느린 속도로 프로세서 이용률이 낮았다 .

이를 위해 버퍼링 , 스풀링 기법이 제안되었다 .

다중 프로그래밍과 시분할 시스템

다중 프로그래밍은 시스템 전체의 성능을 향상 시키기 위해 프로세서 (CPU) 하나가 둘 이상의

프로그램을 처리하는 방식이다 .

시분할 시스템은 프로세서 스케줄링과 다중 프로그래밍을 사용 , 각 사용자에게 컴퓨터를 시간적으로

분할하여 제공하며 , 다수의 사용자가 컴퓨터를 대화형으로 사용할 수 있다 .

Page 44: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

SUMMARY

다중 처리 시스템

둘 이상의 프로세서 ( 처리기 ) 가 여러 프로그램을 동시에 처리하는 것으로 신뢰성과

가용성 , 컴퓨터 능력 향상 등의 목적을 달성할 수 있다 .

주 / 종 다중 처리 시스템 구성 , 대칭적 다중 처리 시스템이 제안되었다 .

운영체제 발전 과정

제 1 세대 (버퍼링 , 스풀링 , 일괄 처리 시스템 ), 제 2 세대 ( 다중 프로그래밍 , 다중 처리 , 시분할

시스템 ), 제 3 세대 (범용 시스템 , 다중모드 시스템 ), 제 4 세대 (네트워크 , 가상

머신 , 분산 처리 , 개인 컴퓨터 ) 로 발전하였다 .

운영체제 기능

자원 관리 , 시스템 보호 , 네트워킹 , 명령 해석기 시스템 관리 등의 기능을 수행한다 .

운영체제 서비스

부트스트래핑 서비스 , 사용자 서비스 , 시스템 서비스 , 시스템 호출 서비스 등을 제공한다 .

단순 구조 운영체제

시스템 호출 계층은 프로세스 제어 , 파일 및 장치 처리와 같은 기본적인 기능을 제공한다 .

시스템 서비스는 프로그램 제어 , 자원 할당 , 보호 등의 다양한 형태로 분류할 수 있다 .

Page 45: Week3 :  운영체제 Chapter 2:  컴퓨터 시스템 소개

SUMMARY

계층적 구조 운영체제

유사한 기능을 수행하는 요소를 그룹으로 묶어 최하위 계층 (layer 0) 인 하드웨어에서

최상위 계층 (layer n) 인 사용자 인터페이스에 이르는 다수의 계층 ( 수준 ) 으로

구성된다 .

시스템 설계나 구현이 단순해지고 시스템 검증과 오류 수정이 쉽다 .

마이크로 커널 구조 운영체제

커널의 최소 기능만 내부에 포함 , 커널의 크기를 대폭 축소하고 나머지 기능은 사용자

공간으로 이전하여 사용자 영역에서 수행되는 서버로 구현한다 .