B) 시스템 성능의 극대화

Download Report

Transcript B) 시스템 성능의 극대화

B) 시스템 성능의 극대화
4) 신뢰도(Reliability) 향상
“시스템이 정확하게 작동되는 정도”
▶ 하드웨어 오류의 자체 회복 시도 기능
▶ 소프트웨어적 오류에 대한 상세한 메시지
▶ 하드웨어적 시스템의 신뢰성 향상 구축
- Dual, Duplex 시스템
1.1.2 운영체제의 두가지 관점
(1) 사용자/컴퓨터 인터페이스 관점
“운영체제가 사용자에게 무엇을 지원?”
▶ 프로그램 생성 작업을 지원
▶ 프로그램의 정상적 수행을 지원
▶ 입출력 기기에 대한 정상적 접근을 지원
▶ 원하는 화일에 대한 각종 접근 요구를 지원
▶ 시스템 자원과 데이터의 불법적 접근 보호
▶ 통신 지원, 계정 관리, 오류 검출과 조치
(2) 시스템 자원 관리자
“한정된 자원의 원활한 관리를 어떻게?”
▶ 관리해야 할 자원 : 기억장치, 프로세서(CPU),
입출력 장치, 파일 등
▶ 관리해야 할 내용
1) 각종 자원에 대한 현재 상태 파악
2) 자원 분배를 위한 스케쥴링 정책 결정
3) 분배 정책 수행을 위한 자원 할당 작업
4) 자원의 회수 작업 및 그에 따른 정보 변경
프로세서
(CPU)
화일
운영체제
프로그램
I/O 모듈
데이터
I/O 모듈
I/O 기기
운영체제
주기억
장치
사용자
프로그램과
데이터
입출력
장치
I/O 모듈
I/O 기기
그림 1.3 운영체제에 의해 관리되는 자원
(3) 운영체제의 구조와 기능의 계층화
1) 간단한 운영체제(그림 1.4)
- 단순한 시스템, 제한된 구성 자원, 소형 시스템에 적용
- 단일 사용자용 운영체제에 적용
USER’S PROGRAM
시스템
프로그램
커널
명령어 해석기
컴파일러, 인터프리터
파일 조작 기능 등
시스템 호출 인터페이스
CPU 스케줄링,파일 관리,
기억장치 관리, 보조기억 장치 관리
2) 계층화된 운영체제(그림 1.5)
-
진화되고, 복잡한 하드웨어 구성에 적용
운영 체제의 각 모듈이 정교하고 세밀히 구분됨
내부 모듈의 변경이 쉬움
각 모듈이 계층화 됨
사용자 프로그램
입출력 버퍼링 기능
콘솔 장치 구동 기능
주기억 장치 관리 기능
CPU 스케줄링 기능
하드웨어
1.2 운영 체제의 발달
■ 발달 원인
▶ 하드웨어의 비약적 발전
▶ 주기억 공간의 대용량화(새로운 기억 소자)
▶ 대용량, 고속의 자기 디스크 출현
▶ 프로세서(CPU)의 처리 속도 증가
▶ 주기억 공간의 대용량화
▶ 컴퓨터 사용자의 서비스 요구
▶ 시스템 운영자의 서비스 요구
▶ 컴퓨터 프로그래밍 언어의 발전
- 운영체제의 구현 언어의 발전
1.2.1 NO-OS : 초기 시스템
▶ 컴퓨터 출현 초기 (1940-50년대 초기)
▶ 사용자가 컴퓨터 하드웨어를 직접 조작
▶ 입력장치 : 카드 리더
▶ 실행 상황은 표시 램프로서 확인, 수동으로 조작
▶ 작업(Job) 실행을 위한 여러 단계를 수작업으로
진행하기 때문에 시스템의 유휴 상태가 길어짐
▶ 컴퓨터 사용 예약시간 예측 불가
▶ 정상 실행을 위한 준비 시간이 길어짐
1.2.2 상주 모니터 개념의 출현
■ 출현 원인
▶ NO-OS의 문제점인 작업 준비 단계와 실행 단계에서
수작업으로 처리되는 부분을 프로그램(OS)하여
주기억 공간에 상주시킴
▶ 컴퓨터 조작원(Operator)은 프로그래머의 요청에
따라서 작업을 진행시키게 되는데, 이에 따른 유휴
시간의 방지를 위하여 다른 작업으로 자동적으로 진행
될 수 있도록 주기어 공간에 상주하는 프로그램의 필요
성이 대두됨
▶ 컴퓨터 프로그래밍 언어의 발전
- 운영체제의 구현 언어의 발전
1.2.2 상주 모니터 개념의 출현
■ 상주 모니터(Resident Monitor)
▶ 전문적인 조작원(operator)이 하던 일련의 작업 내용을
프로그램으로 작성하여 주기억 공간내에 상주시킴
▶ 프로그래머가 작성한 프로그램 처리에 대한 각종 지시 사항은 
작업 제어 카드 (JCL : Job Control Language)  로 만들고, 이들을 해
석하여 자동 처리가 되도록 함.
▶ 작업제어 카드의 예 : 그림 1.6 참조
전문적인 조작원(operator)이 하던 일련의 작업 내용을
프로그램으로 작성하여 주기억 공간내에 상주시킴
▶ 상주 모니터의 구성 예 : 그림 1.7 참조
- 제어 카드 해석기, 장치 구동기, 작업 순서화 루틴, 인터럽트 처리
루틴 등.
1.2.3 버퍼링과 스풀링 개념의 도입
(1) 버퍼링(Buffering)
출현 이유 : CPU보다 상대적으로 느린 [입출력
장치]의 문제점을 해소시킴
 주기억 장치의 일부를 [버퍼]로 설정함
 입출력 작업은 가상의 I/O 기기인 [버퍼]에서 행
함.
 실제 입출력은 [블록(Block)]단위로 버퍼와 I/O기
기사이에서 처리됨
 느린 I/O 기기로 인한 CPU의 대기시간을 최소화
하며, CPU의 효율적 관리가 가능해짐

1.2.3 버퍼링과 스풀링 개념의 도입
(2) 스풀링(Spooling)
출현 이유 : 시스템이 보유하고 있는 제한된 개수의
[입출력 장치]의 사용을 원활하게 하며, 입출력 장치의
사용을 원하는 사용자에 대한 자원을 용이하게 함.
 자기 디스크의 일부를 [스풀] 영역으로 사용함
 컴퓨터(주기억 장치)와 입출력 장치를 직접 연결하지
않고, 그 사이에 [스풀]을 위치시킴.
 버퍼와의 차이점

버퍼 : 주기억 공간 사용, 한 작업에 대한 I/O를 대상.
 스풀링 : 한 작업의 I/O와 다른 작업의 계산이 중복 실행될 수
있음. 작업 풀(pool)의 구조이므로 작업 스케쥴링이 가능함.

1.2.3 버퍼링과 스풀링 개념의 도입
1)버퍼링 입력의 예
1.2.3 버퍼링과 스풀링 개념의 도입
2)버퍼링 출력의 예
1.2.3 버퍼링과 스풀링 개념의 도입

그림 1.8
1.2.4 다중 프로그래밍 개념의 도입
(1) 개념
출현 이유 : single user 시스템인 경우, 자원의 낭비
가 심해진다. 특히, 저속의 입출력 장치와 고속 CPU인
경우, I/O를 하는 동안에는 CPU가 쉬게 되는 문제점이
발생함.

방안 : 하나의 작업이 I/O를 하는 동안, 다른 작업이
CPU를 쓸 수 있도록 여러 개의 프로그램을 주기억 공간
에 적재시킴  다중 프로그래밍(Multiprogramming)

1.2.4 다중 프로그래밍 개념의 도입

그림 1.9
1.2.4 다중 프로그래밍 개념의 도입

그림 1.10
1.2.4 다중 프로그래밍 개념의 도입

다중 프로그래밍의 전제 조건
여러
개의 프로그램을 적재할 수 있는 충분한 기
억공간
중아처리장치 ( CPU)스케쥴링 기법및 CPU 보호
문제
입출력 작업을 독립적으로 수행할 수 있는 방안
강구
(I/O 프로세서 또는 Channel 개념 등 도입)
교착상태(deadlock) 처리 방법
병행 제어 (Concurrent Control)를 위한 기법
인터럽트(Interrupt) 개념 도입등
1.2.4 다중 프로그래밍 개념의 도입
(2) 보호 개념의 도입
보호의
정의 : 컴퓨터 시스템 내에서 사용할 수 있는
각종 공유 가능한 자원(resource)에 대하여 프로그램,
프로세서 또는 user가 불법적으로 접근하는 것
CPU 보호
 주기억 장치 보호
 입출력 보호

1.2.4 다중 프로그래밍 개념의 도입
CPU 보호
사용자 프로그램이 CPU 작업을 시행하는 동안 무한 루프
(loop)에 빠져, 모니터(운영체제)로 제어권이 넘어오지 못하
는 경우를 방지

Timer에 의한 CPU 사용시간 제어
 일정시간 경과후에는 인터럽트 발생시킴
 CPU의 일정사용시간 = 시간조각 = Time Slice
 CPU 스케쥴러가 담당

1.2.4 다중 프로그래밍 개념의 도입
주기억장치 보호
프로그램의 논리적 오류나 고의에 의하여 주기억 장치내의
내용이 불법적으로 지워지거나, 허가없이 접근 또는 유출
되는 것을 방지함.


단일 사용자 시스템의 경우
모니터 부분과 사용자 프로그램 부분으로 구분됨
 제어권은 [모니터]모드와 [사용자] 모드로 나눔
 [모니터] 모드에서는 주기억 공간 전체에 대한 접근 가능
 [사용자] 모드에서는 사용자 프로그램 적재 공간만 접근 가능


차폐 레지스터(Fence Register)의 사용
1.2.4 다중 프로그래밍 개념의 도입

단일 사용자 시스템의 경우
모니터 부분과 사용자 프로그램 부분으로 구분됨
 제어권은 [모니터]모드와 [사용자] 모드로 나눔
 [모니터] 모드에서는 주기억 공간 전체에 대한 접근 가능
 [사용자] 모드에서는 사용자 프로그램 적재 공간만 접근 가능


차폐 레지스터(Fence Register)의 사용
1.2.4 다중 프로그래밍 개념의 도입

다중사용자 시스템의 경우
1개의 [모니터]부분과 여러 개의 [사용자]부분으로 나누어짐
 각각의 사용자 프로그램 영역에 대해서는 한계 레지스터
(Limit Register) 또는 기준 레지스터(Base Register)를 두어서
보호를 함.
 한계 레지스터, 기준 주소값은 [모니터]모드에서 시행되는
[특권 명령어]에 의해서만 적재됨
 이러한 주소값은 [프로세서 제어 블록(PCB)]에 저장되어 사
용됨 : PCB  118쪽 그림 3.7 참조

1.2.4 다중 프로그래밍 개념의 도입
1.2.4 다중 프로그래밍 개념의 도입
입출력 보호
한 사용자의 입출력 작업이 끝나지 않은 경우에, 다른 사용
자의 입출력 작업이 끼여들지 않도록 방지함.

모니터 모드와 사용자 모드 개념을 도입함(이중 모드 방식)
 모든 [입출력 명령]은 모니터 모드에서만 처리할 수 있는 특
권 명령화 함.
 모든 사용자 프로그램은 [모니터]에게 입출력을 요청하고, 그
에 따라 [모니터]가 모든 입출력을 제어함.
 모니터에 대한 [입출력 요청]  모니터 호출, 시스템 호출,
SVC라 함(표 1-1 참조)

1.2.4 다중 프로그래밍 개념의 도입

그림 1.13
1.2.4 다중 프로그래밍 개념의 도입
인터럽트 개념의 도입
인터럽트 : 사용자 프로그램의 모든 서비스 요청을, 운영체제는 인터럽
트(Interrupt, trap)로 간주함.

시스템 호출(supervisor call : SVC) 인터럽트
 입출력 장치 (I/O Device) 인터럽트
 프로그램 검사(Program Check) 인터럽트
 외부(External) 인터럽트
 기계 검사(Machine Check) 인터럽트

1.2.4 다중 프로그래밍 개념의 도입

그림 1.14
1.2.4 다중 프로그래밍 개념의 도입
시스템
호출(supervisor call : SVC) 인터럽트
SVC명령을 발할 때
 SVC명령은 사용자 프로그램이 생성
 프로그램의 정상 종료 / 비정상 종료 요청
 자원 상태에 대한 요청
 필요한 자원 할당 요청
 입출력 요청 등

1.2.4 다중 프로그래밍 개념의 도입
입출력
장치 (I/O Device) 인터럽트
I/O 채널이 행하는 작업의 종료 요청(I/O Channel End)
 입출력 장치의 사용 종료 요청
 잘못된 입출력 명령을 만날 때(Invalid I/O Command)
 I/O 장치의 상태 정보는 [장치 상태 테이블]이 갖고 있음.

1.2.4 다중 프로그래밍 개념의 도입

프로그램 검사(Program Check) 인터럽트
잘못 사용된 명령어(Invalid CPU Instruction)
 특권 명령 실행시
 잘못된 계산 결과 발생
 프로그램상의 각종 오류 발생시

 비 정상 상태로 종료되므로 필요한 각종 오류메시지의 출력
또는 추가(부수)적인 작업이 필요함.
1.2.4 다중 프로그래밍 개념의 도입
외부(External)
인터럽트
CPU 사용시간 초과(Interval time going out)
 오퍼레이터의 콘솔 작업(Operator’s Interrupt Button)
 CPU간의 통신, 정전 등


기계 검사(Machine Check) 인터럽트
하드웨어적 오류 발생시
 CPU 오류
 주기억 장치(Main Memory)오류 등

1.2.4 다중 프로그래밍 개념의 도입

인터럽트시의 동작과정
1.2.4 다중 프로그래밍 개념의 도입
(4) 채널의 역할과 종류
채널(Channel) : 다중 프로그래밍 작업시, 입출력을 CPU에
게 의존하지 않고 독립적으로 처리해 줌.
(I/O processor, I/O channel)

채널의 역할




I/O 명령을 CPU로부터 받아서 I/O 장치를 구동시킨다.
I/O 장치와 주기억 장치간의 데이터 전송을 제어한다.
I/O 동작을 종결시킨다.
I/O 장치로부터의 인터럽트를 CPU에게 알려준다.
1.2.4 다중 프로그래밍 개념의 도입

입출력 채널의 역활
1.2.4 다중 프로그래밍 개념의 도입

채널 작업 수행을 위한 레지스터

CAW(Channel Address Word)
해당 커맨드의 주소
 즉, CCW의 주소


CCW(Channel Command Word)

채널이 동작하여야 할 내용이 들어 있음
CSW(Channel

Status Word)
채널의 현재 상태 정보를 갖고 있음
1.2.4 다중 프로그래밍 개념의 도입

채널의 유형

멀티 플렉스 형(Multiplex Mode)
여러 개의 입출력 장치가 채널의 기능을 공유
 여러 개의 입출력 장치가 시분할적으로 데이터 전송
 저속의 입출력 장치가 부착됨(그림 1.18a)


버스트 형(Burst Mode)
하나의 입출력 장치가 데이터 전송을 행하는 동안에 채널의
기능을 독점
 고속의 입출력 장치가 부착됨(그림1.18b)

1.2.4 다중 프로그래밍 개념의 도입

채널의 종류

셀렉터(Selector)채널
버스트 형
 채널 독점, 고속의 입출력 장치 부착


바이트- 멀티플렉스(Byte-Multiplexer)채널
멀티 플렉스 형
 채널 공유, 저속의 입출력 장치 부착


블록-멀티플렉스(Block-Multiplexer)채널
셀렉터 채널의 고속과 바이트-멀티플렉스 채널의 공유 개념
을 혼합시킴
 입출력 장치의 동시 동작 가능

1.2.5 시분할 시스템과 실시간 처리 시스템
(1)시분할 시스템(TSS : Time Sharing System)

CPU의 시간을 각 사용자가 균등하게 분할하여 사용

모든 사용자를 동일하게 취급

대화형 체제 가능

CPU 할당 시 1회 최대 사용시간  시간 조각(Time slice)

시분할 처리 시스템의 작업 처리 예

그림 1.19
1.2.5 시분할 시스템과 실시간 처리 시스템
(1) 실시간 처리 시스템(Real-Time processing System)

실시간(Real-Time)

시한성, 직접성을 갖는 데이터를 즉각 입력하고, 즉시 결과를 받아
볼 수 있는 시간

온-라인(On-Line) 개념 도입

의학 진단용, 산업 제어용, 좌석 예약 업무, 은행 업무 등.

그림 1.20 참조
1.2.6 다중 CPU를 가진 시스템

다중 처리기 시스템






여러 개의 CPU를 하나의 시스템이 보유함
주기억 공간, 주변기기는 공유함
다수개의 프로그램이 동시에 처리가 가능해 짐.
시스템의 안정성이 높아짐(CPU 고장시)
프로그램의 병렬 처리(concurrent processing)가 가능함
그림 1.21 참조