42
B) 시시시 시시시 시시시 4) 시시시 (Reliability) 시시 “ 시시시시 시시시시 시시시시 시시” 시시시시 시시시 시시 시시 시시 시시 시시시시시시 시시시 시시 시시시 시시시 시시시시시 시시시시 시시시 시시 시시 - Dual, Duplex 시시시

B) 시스템 성능의 극대화

Embed Size (px)

DESCRIPTION

B) 시스템 성능의 극대화. 4) 신뢰도( Reliability) 향상 “ 시스템이 정확하게 작동되는 정도 ” ▶ 하드웨어 오류의 자체 회복 시도 기능 ▶ 소프트웨어적 오류에 대한 상세한 메시지 ▶ 하드웨어적 시스템의 신뢰성 향상 구축 - Dual, Duplex 시스템. 1.1.2 운영체제의 두가지 관점. (1) 사용자/컴퓨터 인터페이스 관점 “ 운영체제가 사용자에게 무엇을 지원? ” ▶ 프로그램 생성 작업을 지원 ▶ 프로그램의 정상적 수행을 지원 - PowerPoint PPT Presentation

Citation preview

Page 1: B)  시스템 성능의 극대화

B) 시스템 성능의 극대화

4) 신뢰도 (Reliability) 향상 “ 시스템이 정확하게 작동되는 정도”

▶ 하드웨어 오류의 자체 회복 시도 기능 ▶ 소프트웨어적 오류에 대한 상세한 메시지 ▶ 하드웨어적 시스템의 신뢰성 향상 구축 - Dual, Duplex 시스템

Page 2: B)  시스템 성능의 극대화

1.1.2 운영체제의 두가지 관점

(1) 사용자 / 컴퓨터 인터페이스 관점 “ 운영체제가 사용자에게 무엇을 지원 ?” ▶ 프로그램 생성 작업을 지원 ▶ 프로그램의 정상적 수행을 지원 ▶ 입출력 기기에 대한 정상적 접근을 지원 ▶ 원하는 화일에 대한 각종 접근 요구를 지원 ▶ 시스템 자원과 데이터의 불법적 접근 보호 ▶ 통신 지원 , 계정 관리 , 오류 검출과 조치

Page 3: B)  시스템 성능의 극대화

(2) 시스템 자원 관리자

“ 한정된 자원의 원활한 관리를 어떻게 ?”

▶ 관리해야 할 자원 : 기억장치 , 프로세서 (CPU), 입출력 장치 , 파일 등▶ 관리해야 할 내용 1) 각종 자원에 대한 현재 상태 파악 2) 자원 분배를 위한 스케쥴링 정책 결정 3) 분배 정책 수행을 위한 자원 할당 작업 4) 자원의 회수 작업 및 그에 따른 정보 변경

Page 4: B)  시스템 성능의 극대화

I/O 모듈

I/O 모듈

I/O 모듈

I/O 기기

I/O 기기

운영체제

사용자프로그램과

데이터

운영체제

프로그램

데이터

주기억장치

화일프로세서(CPU)

입출력장치

그림 1.3 운영체제에 의해 관리되는 자원

Page 5: B)  시스템 성능의 극대화

(3) 운영체제의 구조와 기능의 계층화

1) 간단한 운영체제 ( 그림 1.4) - 단순한 시스템 , 제한된 구성 자원 , 소형 시스템에 적용 - 단일 사용자용 운영체제에 적용USER’S PROGRAM

명령어 해석기 컴파일러 , 인터프리터

파일 조작 기능 등

시스템 호출 인터페이스 CPU 스케줄링 , 파일 관리 ,

기억장치 관리 , 보조기억 장치 관리

시스템프로그램

커널

Page 6: B)  시스템 성능의 극대화

2) 계층화된 운영체제 ( 그림 1.5)

- 진화되고 , 복잡한 하드웨어 구성에 적용 - 운영 체제의 각 모듈이 정교하고 세밀히 구분됨 - 내부 모듈의 변경이 쉬움 - 각 모듈이 계층화 됨

사용자 프로그램

입출력 버퍼링 기능콘솔 장치 구동 기능

주기억 장치 관리 기능

CPU 스케줄링 기능

하드웨어

Page 7: B)  시스템 성능의 극대화

1.2 운영 체제의 발달

■ 발달 원인 ▶ 하드웨어의 비약적 발전 ▶ 주기억 공간의 대용량화 ( 새로운 기억 소자 )

▶ 대용량 , 고속의 자기 디스크 출현 ▶ 프로세서 (CPU) 의 처리 속도 증가 ▶ 주기억 공간의 대용량화 ▶ 컴퓨터 사용자의 서비스 요구 ▶ 시스템 운영자의 서비스 요구 ▶ 컴퓨터 프로그래밍 언어의 발전 - 운영체제의 구현 언어의 발전

Page 8: B)  시스템 성능의 극대화

1.2.1 NO-OS : 초기 시스템 ▶ 컴퓨터 출현 초기 (1940-50 년대 초기 )

▶ 사용자가 컴퓨터 하드웨어를 직접 조작 ▶ 입력장치 : 카드 리더 ▶ 실행 상황은 표시 램프로서 확인 , 수동으로 조작 ▶ 작업 (Job) 실행을 위한 여러 단계를 수작업으로 진행하기 때문에 시스템의 유휴 상태가 길어짐 ▶ 컴퓨터 사용 예약시간 예측 불가 ▶ 정상 실행을 위한 준비 시간이 길어짐

Page 9: B)  시스템 성능의 극대화

1.2.2 상주 모니터 개념의 출현■ 출현 원인 ▶ NO-OS 의 문제점인 작업 준비 단계와 실행 단계에서 수작업으로 처리되는 부분을 프로그램 (OS)하여 주기억 공간에 상주시킴 ▶ 컴퓨터 조작원 (Operator) 은 프로그래머의 요청에 따라서 작업을 진행시키게 되는데 , 이에 따른 유휴 시간의 방지를 위하여 다른 작업으로 자동적으로 진행 될 수 있도록 주기어 공간에 상주하는 프로그램의 필요 성이 대두됨 ▶ 컴퓨터 프로그래밍 언어의 발전 - 운영체제의 구현 언어의 발전

Page 10: B)  시스템 성능의 극대화

1.2.2 상주 모니터 개념의 출현■ 상주 모니터 (Resident Monitor) ▶ 전문적인 조작원 (operator) 이 하던 일련의 작업 내용을프로그램으로 작성하여 주기억 공간내에 상주시킴

▶ 프로그래머가 작성한 프로그램 처리에 대한 각종 지시 사항은 작업 제어 카드 (JCL : Job Control Language) 로 만들고 , 이들을 해석하여 자동 처리가 되도록 함 .

▶ 작업제어 카드의 예 : 그림 1.6 참조전문적인 조작원 (operator) 이 하던 일련의 작업 내용을 프로그램으로 작성하여 주기억 공간내에 상주시킴 ▶ 상주 모니터의 구성 예 : 그림 1.7 참조 - 제어 카드 해석기 , 장치 구동기 , 작업 순서화 루틴 , 인터럽트 처리 루틴 등 .

Page 11: B)  시스템 성능의 극대화

1.2.3 버퍼링과 스풀링 개념의 도입

(1) 버퍼링 (Buffering) 출현 이유 : CPU 보다 상대적으로 느린 [입출력장치 ] 의 문제점을 해소시킴 주기억 장치의 일부를 [ 버퍼 ] 로 설정함 입출력 작업은 가상의 I/O 기기인 [ 버퍼 ]에서 행함 . 실제 입출력은 [ 블록 (Block)] 단위로 버퍼와 I/O 기기사이에서 처리됨 느린 I/O 기기로 인한 CPU 의 대기시간을 최소화하며 , CPU 의 효율적 관리가 가능해짐

Page 12: B)  시스템 성능의 극대화

(2) 스풀링 (Spooling) 출현 이유 : 시스템이 보유하고 있는 제한된 개수의 [ 입출력 장치 ] 의 사용을 원활하게 하며 , 입출력 장치의 사용을 원하는 사용자에 대한 자원을 용이하게 함 . 자기 디스크의 일부를 [ 스풀 ] 영역으로 사용함 컴퓨터 ( 주기억 장치 ) 와 입출력 장치를 직접 연결하지 않고 , 그 사이에 [ 스풀 ] 을 위치시킴 . 버퍼와의 차이점

버퍼 : 주기억 공간 사용 , 한 작업에 대한 I/O 를 대상 . 스풀링 : 한 작업의 I/O 와 다른 작업의 계산이 중복 실행될 수 있음 . 작업 풀 (pool) 의 구조이므로 작업 스케쥴링이 가능함 .

1.2.3 버퍼링과 스풀링 개념의 도입

Page 13: B)  시스템 성능의 극대화

1.2.3 버퍼링과 스풀링 개념의 도입

1) 버퍼링 입력의 예

Page 14: B)  시스템 성능의 극대화

1.2.3 버퍼링과 스풀링 개념의 도입

2) 버퍼링 출력의 예

Page 15: B)  시스템 성능의 극대화

그림 1.8

1.2.3 버퍼링과 스풀링 개념의 도입

Page 16: B)  시스템 성능의 극대화

(1) 개념 출현 이유 : single user 시스템인 경우 , 자원의 낭비가 심해진다 . 특히 , 저속의 입출력 장치와 고속 CPU 인 경우 , I/O 를 하는 동안에는 CPU 가 쉬게 되는 문제점이 발생함 .

방안 : 하나의 작업이 I/O 를 하는 동안 , 다른 작업이 CPU 를 쓸 수 있도록 여러 개의 프로그램을 주기억 공간에 적재시킴 다중 프로그래밍(Multiprogramming)

1.2.4 다중 프로그래밍 개념의 도입

Page 17: B)  시스템 성능의 극대화

그림 1.9

1.2.4 다중 프로그래밍 개념의 도입

Page 18: B)  시스템 성능의 극대화

그림 1.10

1.2.4 다중 프로그래밍 개념의 도입

Page 19: B)  시스템 성능의 극대화

다중 프로그래밍의 전제 조건여러 개의 프로그램을 적재할 수 있는 충분한 기억공간중아처리장치 ( CPU) 스케쥴링 기법및 CPU 보호 문제입출력 작업을 독립적으로 수행할 수 있는 방안 강구(I/O 프로세서 또는 Channel 개념 등 도입 )교착상태 (deadlock) 처리 방법병행 제어 (Concurrent Control) 를 위한 기법인터럽트 (Interrupt) 개념 도입등

1.2.4 다중 프로그래밍 개념의 도입

Page 20: B)  시스템 성능의 극대화

(2) 보호 개념의 도입보호의 정의 : 컴퓨터 시스템 내에서 사용할 수 있는 각종 공유 가능한 자원 (resource) 에 대하여 프로그램 , 프로세서 또는 user 가 불법적으로 접근하는 것

CPU 보호 주기억 장치 보호 입출력 보호

1.2.4 다중 프로그래밍 개념의 도입

Page 21: B)  시스템 성능의 극대화

CPU 보호사용자 프로그램이 CPU 작업을 시행하는 동안 무한 루프(loop) 에 빠져 , 모니터 ( 운영체제 ) 로 제어권이 넘어오지 못하는 경우를 방지

Timer 에 의한 CPU 사용시간 제어 일정시간 경과후에는 인터럽트 발생시킴 CPU 의 일정사용시간 = 시간조각 = Time Slice CPU 스케쥴러가 담당

1.2.4 다중 프로그래밍 개념의 도입

Page 22: B)  시스템 성능의 극대화

주기억장치 보호프로그램의 논리적 오류나 고의에 의하여 주기억 장치내의 내용이 불법적으로 지워지거나 , 허가없이 접근 또는 유출되는 것을 방지함 .

단일 사용자 시스템의 경우 모니터 부분과 사용자 프로그램 부분으로 구분됨 제어권은 [ 모니터 ] 모드와 [ 사용자 ] 모드로 나눔 [ 모니터 ] 모드에서는 주기억 공간 전체에 대한 접근 가능 [ 사용자 ] 모드에서는 사용자 프로그램 적재 공간만 접근 가능

차폐 레지스터 (Fence Register) 의 사용

1.2.4 다중 프로그래밍 개념의 도입

Page 23: B)  시스템 성능의 극대화

단일 사용자 시스템의 경우 모니터 부분과 사용자 프로그램 부분으로 구분됨 제어권은 [ 모니터 ] 모드와 [ 사용자 ] 모드로 나눔 [ 모니터 ] 모드에서는 주기억 공간 전체에 대한 접근 가능 [ 사용자 ] 모드에서는 사용자 프로그램 적재 공간만 접근 가능

차폐 레지스터 (Fence Register) 의 사용

1.2.4 다중 프로그래밍 개념의 도입

Page 24: B)  시스템 성능의 극대화

다중사용자 시스템의 경우 1 개의 [ 모니터 ] 부분과 여러 개의 [ 사용자 ] 부분으로 나누어짐 각각의 사용자 프로그램 영역에 대해서는 한계 레지스터(Limit Register) 또는 기준 레지스터 (Base Register) 를 두어서 보호를 함 . 한계 레지스터 , 기준 주소값은 [ 모니터 ] 모드에서 시행되는 [ 특권 명령어 ] 에 의해서만 적재됨 이러한 주소값은 [ 프로세서 제어 블록 (PCB)] 에 저장되어 사용됨 : PCB 118 쪽 그림 3.7 참조

1.2.4 다중 프로그래밍 개념의 도입

Page 25: B)  시스템 성능의 극대화

1.2.4 다중 프로그래밍 개념의 도입

Page 26: B)  시스템 성능의 극대화

입출력 보호 한 사용자의 입출력 작업이 끝나지 않은 경우에 , 다른 사용자의 입출력 작업이 끼여들지 않도록 방지함 .

모니터 모드와 사용자 모드 개념을 도입함 ( 이중 모드 방식 ) 모든 [ 입출력 명령 ] 은 모니터 모드에서만 처리할 수 있는 특권 명령화 함 . 모든 사용자 프로그램은 [ 모니터 ] 에게 입출력을 요청하고 , 그에 따라 [ 모니터 ] 가 모든 입출력을 제어함 . 모니터에 대한 [ 입출력 요청 ] 모니터 호출 , 시스템 호출 , SVC 라 함 ( 표 1-1 참조 )

1.2.4 다중 프로그래밍 개념의 도입

Page 27: B)  시스템 성능의 극대화

그림 1.13

1.2.4 다중 프로그래밍 개념의 도입

Page 28: B)  시스템 성능의 극대화

인터럽트 개념의 도입 인터럽트 : 사용자 프로그램의 모든 서비스 요청을 , 운영체제는 인터럽트 (Interrupt, trap) 로 간주함 .

시스템 호출 (supervisor call : SVC) 인터럽트 입출력 장치 (I/O Device) 인터럽트 프로그램 검사 (Program Check) 인터럽트 외부 (External) 인터럽트 기계 검사 (Machine Check) 인터럽트

1.2.4 다중 프로그래밍 개념의 도입

Page 29: B)  시스템 성능의 극대화

그림 1.14

1.2.4 다중 프로그래밍 개념의 도입

Page 30: B)  시스템 성능의 극대화

시스템 호출 (supervisor call : SVC) 인터럽트 SVC 명령을 발할 때 SVC 명령은 사용자 프로그램이 생성 프로그램의 정상 종료 / 비정상 종료 요청 자원 상태에 대한 요청 필요한 자원 할당 요청 입출력 요청 등

1.2.4 다중 프로그래밍 개념의 도입

Page 31: B)  시스템 성능의 극대화

입출력 장치 (I/O Device) 인터럽트 I/O 채널이 행하는 작업의 종료 요청 (I/O Channel End) 입출력 장치의 사용 종료 요청 잘못된 입출력 명령을 만날 때 (Invalid I/O Command)

I/O 장치의 상태 정보는 [ 장치 상태 테이블 ] 이 갖고 있음 .

1.2.4 다중 프로그래밍 개념의 도입

Page 32: B)  시스템 성능의 극대화

프로그램 검사 (Program Check) 인터럽트 잘못 사용된 명령어 (Invalid CPU Instruction) 특권 명령 실행시 잘못된 계산 결과 발생 프로그램상의 각종 오류 발생시

비 정상 상태로 종료되므로 필요한 각종 오류메시지의 출력 또는 추가 ( 부수 ) 적인 작업이 필요함 .

1.2.4 다중 프로그래밍 개념의 도입

Page 33: B)  시스템 성능의 극대화

외부 (External) 인터럽트 CPU 사용시간 초과 (Interval time going out) 오퍼레이터의 콘솔 작업 (Operator’s Interrupt Button) CPU 간의 통신 , 정전 등

기계 검사 (Machine Check) 인터럽트 하드웨어적 오류 발생시 CPU 오류 주기억 장치 (Main Memory) 오류 등

1.2.4 다중 프로그래밍 개념의 도입

Page 34: B)  시스템 성능의 극대화

인터럽트시의 동작과정

1.2.4 다중 프로그래밍 개념의 도입

Page 35: B)  시스템 성능의 극대화

(4) 채널의 역할과 종류채널 (Channel) : 다중 프로그래밍 작업시 , 입출력을 CPU에게 의존하지 않고 독립적으로 처리해 줌 .

(I/O processor, I/O channel)

채널의 역할 I/O 명령을 CPU 로부터 받아서 I/O 장치를 구동시킨다 . I/O 장치와 주기억 장치간의 데이터 전송을 제어한다 . I/O 동작을 종결시킨다 . I/O 장치로부터의 인터럽트를 CPU 에게 알려준다 .

1.2.4 다중 프로그래밍 개념의 도입

Page 36: B)  시스템 성능의 극대화

입출력 채널의 역활

1.2.4 다중 프로그래밍 개념의 도입

Page 37: B)  시스템 성능의 극대화

채널 작업 수행을 위한 레지스터 CAW(Channel Address Word)

해당 커맨드의 주소 즉 , CCW 의 주소

CCW(Channel Command Word) 채널이 동작하여야 할 내용이 들어 있음

CSW(Channel Status Word) 채널의 현재 상태 정보를 갖고 있음

1.2.4 다중 프로그래밍 개념의 도입

Page 38: B)  시스템 성능의 극대화

채널의 유형 멀티 플렉스 형 (Multiplex Mode)

여러 개의 입출력 장치가 채널의 기능을 공유 여러 개의 입출력 장치가 시분할적으로 데이터 전송 저속의 입출력 장치가 부착됨 ( 그림 1.18a)

버스트 형 (Burst Mode) 하나의 입출력 장치가 데이터 전송을 행하는 동안에 채널의 기능을 독점 고속의 입출력 장치가 부착됨 ( 그림 1.18b)

1.2.4 다중 프로그래밍 개념의 도입

Page 39: B)  시스템 성능의 극대화

채널의 종류 셀렉터 (Selector) 채널

버스트 형 채널 독점 , 고속의 입출력 장치 부착

바이트 - 멀티플렉스 (Byte-Multiplexer) 채널 멀티 플렉스 형 채널 공유 , 저속의 입출력 장치 부착

블록 -멀티플렉스 (Block-Multiplexer) 채널 셀렉터 채널의 고속과 바이트 -멀티플렉스 채널의 공유 개념을 혼합시킴 입출력 장치의 동시 동작 가능

1.2.4 다중 프로그래밍 개념의 도입

Page 40: B)  시스템 성능의 극대화

(1) 시분할 시스템 (TSS : Time Sharing System) CPU 의 시간을 각 사용자가 균등하게 분할하여 사용 모든 사용자를 동일하게 취급 대화형 체제 가능 CPU 할당 시 1 회 최대 사용시간 시간 조각 (Time slice) 시분할 처리 시스템의 작업 처리 예 그림 1.19

1.2.5 시분할 시스템과 실시간 처리 시스템

Page 41: B)  시스템 성능의 극대화

(1) 실시간 처리 시스템 (Real-Time processing System) 실시간 (Real-Time) 시한성 , 직접성을 갖는 데이터를 즉각 입력하고 , 즉시 결과를 받아 볼 수 있는 시간

온 - 라인 (On-Line) 개념 도입 의학 진단용 , 산업 제어용 , 좌석 예약 업무 , 은행 업무 등 . 그림 1.20 참조

1.2.5 시분할 시스템과 실시간 처리 시스템

Page 42: B)  시스템 성능의 극대화

다중 처리기 시스템 여러 개의 CPU 를 하나의 시스템이 보유함 주기억 공간 , 주변기기는 공유함 다수개의 프로그램이 동시에 처리가 가능해 짐 . 시스템의 안정성이 높아짐 (CPU 고장시 ) 프로그램의 병렬 처리 (concurrent processing) 가

가능함 그림 1.21 참조

1.2.6 다중 CPU 를 가진 시스템