1 / 42

B) 시스템 성능의 극대화

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

Download Presentation

B) 시스템 성능의 극대화

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. B) 시스템 성능의 극대화 4) 신뢰도(Reliability) 향상 “시스템이 정확하게 작동되는 정도” ▶ 하드웨어 오류의 자체 회복 시도 기능 ▶ 소프트웨어적 오류에 대한 상세한 메시지 ▶ 하드웨어적 시스템의 신뢰성 향상 구축 - Dual, Duplex 시스템

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

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

  4. 프로세서 (CPU) 화일 운영체제 프로그램 운영체제 I/O 모듈 데이터 주기억 장치 I/O 모듈 I/O 기기 사용자 프로그램과 데이터 입출력 장치 I/O 모듈 I/O 기기 그림 1.3 운영체제에 의해 관리되는 자원

  5. (3) 운영체제의 구조와 기능의 계층화 1) 간단한 운영체제(그림 1.4) - 단순한 시스템, 제한된 구성 자원, 소형 시스템에 적용 - 단일 사용자용 운영체제에 적용 USER’S PROGRAM 명령어 해석기 컴파일러, 인터프리터 파일 조작 기능 등 시스템 프로그램 시스템 호출 인터페이스 CPU 스케줄링,파일 관리, 기억장치 관리, 보조기억 장치 관리 커널

  6. 2) 계층화된 운영체제(그림 1.5) - 진화되고, 복잡한 하드웨어 구성에 적용 - 운영 체제의 각 모듈이 정교하고 세밀히 구분됨 - 내부 모듈의 변경이 쉬움 - 각 모듈이 계층화 됨 사용자 프로그램 입출력 버퍼링 기능 콘솔 장치 구동 기능 주기억 장치 관리 기능 CPU 스케줄링 기능 하드웨어

  7. 1.2 운영 체제의 발달 ■ 발달 원인 ▶ 하드웨어의 비약적 발전 ▶ 주기억 공간의 대용량화(새로운 기억 소자) ▶ 대용량, 고속의 자기 디스크 출현 ▶ 프로세서(CPU)의 처리 속도 증가 ▶ 주기억 공간의 대용량화 ▶ 컴퓨터 사용자의 서비스 요구 ▶ 시스템 운영자의 서비스 요구 ▶ 컴퓨터 프로그래밍 언어의 발전 - 운영체제의 구현 언어의 발전

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

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

  10. 1.2.2 상주 모니터 개념의 출현 ■ 상주 모니터(Resident Monitor) ▶ 전문적인 조작원(operator)이 하던 일련의 작업 내용을 프로그램으로 작성하여 주기억 공간내에 상주시킴 ▶ 프로그래머가 작성한 프로그램 처리에 대한 각종 지시 사항은 작업 제어 카드 (JCL : Job Control Language)  로 만들고, 이들을 해석하여 자동 처리가 되도록 함. ▶ 작업제어 카드의 예 : 그림 1.6 참조 전문적인 조작원(operator)이 하던 일련의 작업 내용을 프로그램으로 작성하여 주기억 공간내에 상주시킴 ▶ 상주 모니터의 구성 예 : 그림 1.7 참조 - 제어 카드 해석기, 장치 구동기, 작업 순서화 루틴, 인터럽트 처리 루틴 등.

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

  12. 1.2.3 버퍼링과 스풀링 개념의 도입 (2) 스풀링(Spooling) 출현 이유 : 시스템이 보유하고 있는 제한된 개수의 [입출력 장치]의 사용을 원활하게 하며, 입출력 장치의 사용을 원하는 사용자에 대한 자원을 용이하게 함. 자기 디스크의 일부를 [스풀] 영역으로 사용함 컴퓨터(주기억 장치)와 입출력 장치를 직접 연결하지 않고, 그 사이에 [스풀]을 위치시킴. 버퍼와의 차이점 버퍼 : 주기억 공간 사용, 한 작업에 대한 I/O를 대상. 스풀링 : 한 작업의 I/O와 다른 작업의 계산이 중복 실행될 수 있음. 작업 풀(pool)의 구조이므로 작업 스케쥴링이 가능함.

  13. 1.2.3 버퍼링과 스풀링 개념의 도입 1)버퍼링 입력의 예

  14. 1.2.3 버퍼링과 스풀링 개념의 도입 2)버퍼링 출력의 예

  15. 1.2.3 버퍼링과 스풀링 개념의 도입 그림 1.8

  16. 1.2.4 다중 프로그래밍 개념의 도입 (1) 개념 출현 이유 : single user 시스템인 경우, 자원의 낭비가 심해진다. 특히, 저속의 입출력 장치와 고속 CPU인 경우, I/O를 하는 동안에는 CPU가 쉬게 되는 문제점이 발생함. 방안 : 하나의 작업이 I/O를 하는 동안, 다른 작업이 CPU를 쓸 수 있도록 여러 개의 프로그램을 주기억 공간에 적재시킴  다중 프로그래밍(Multiprogramming)

  17. 1.2.4 다중 프로그래밍 개념의 도입 그림 1.9

  18. 1.2.4 다중 프로그래밍 개념의 도입 그림 1.10

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

  20. 1.2.4 다중 프로그래밍 개념의 도입 (2) 보호 개념의 도입 보호의 정의 : 컴퓨터 시스템 내에서 사용할 수 있는 각종 공유 가능한 자원(resource)에 대하여 프로그램, 프로세서 또는 user가 불법적으로 접근하는 것 CPU 보호 주기억 장치 보호 입출력 보호

  21. 1.2.4 다중 프로그래밍 개념의 도입 CPU 보호 사용자 프로그램이 CPU 작업을 시행하는 동안 무한 루프(loop)에 빠져, 모니터(운영체제)로 제어권이 넘어오지 못하는 경우를 방지 Timer에 의한 CPU 사용시간 제어 일정시간 경과후에는 인터럽트 발생시킴 CPU의 일정사용시간 = 시간조각 = Time Slice CPU 스케쥴러가 담당

  22. 1.2.4 다중 프로그래밍 개념의 도입 주기억장치보호 프로그램의 논리적 오류나 고의에 의하여 주기억 장치내의 내용이 불법적으로 지워지거나, 허가없이 접근 또는 유출되는 것을 방지함. 단일 사용자 시스템의 경우 모니터 부분과 사용자 프로그램 부분으로 구분됨 제어권은 [모니터]모드와 [사용자] 모드로 나눔 [모니터] 모드에서는 주기억 공간 전체에 대한 접근 가능 [사용자] 모드에서는 사용자 프로그램 적재 공간만 접근 가능 차폐 레지스터(Fence Register)의 사용

  23. 1.2.4 다중 프로그래밍 개념의 도입 단일 사용자 시스템의 경우 모니터 부분과 사용자 프로그램 부분으로 구분됨 제어권은 [모니터]모드와 [사용자] 모드로 나눔 [모니터] 모드에서는 주기억 공간 전체에 대한 접근 가능 [사용자] 모드에서는 사용자 프로그램 적재 공간만 접근 가능 차폐 레지스터(Fence Register)의 사용

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

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

  26. 1.2.4 다중 프로그래밍 개념의 도입 입출력 보호 한 사용자의 입출력 작업이 끝나지 않은 경우에, 다른 사용자의 입출력 작업이 끼여들지 않도록 방지함. 모니터 모드와 사용자 모드 개념을 도입함(이중 모드 방식) 모든 [입출력 명령]은 모니터 모드에서만 처리할 수 있는 특권 명령화 함. 모든 사용자 프로그램은 [모니터]에게 입출력을 요청하고, 그에 따라 [모니터]가 모든 입출력을 제어함. 모니터에 대한 [입출력 요청]  모니터 호출, 시스템 호출, SVC라 함(표 1-1 참조)

  27. 1.2.4 다중 프로그래밍 개념의 도입 그림 1.13

  28. 1.2.4 다중 프로그래밍 개념의 도입 인터럽트 개념의 도입 인터럽트 : 사용자 프로그램의 모든 서비스 요청을, 운영체제는 인터럽트(Interrupt, trap)로 간주함. 시스템 호출(supervisor call : SVC) 인터럽트 입출력 장치 (I/O Device) 인터럽트 프로그램 검사(Program Check) 인터럽트 외부(External) 인터럽트 기계 검사(Machine Check) 인터럽트

  29. 1.2.4 다중 프로그래밍 개념의 도입 그림 1.14

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

  31. 1.2.4 다중 프로그래밍 개념의 도입 입출력 장치 (I/O Device) 인터럽트 I/O 채널이 행하는 작업의 종료 요청(I/O Channel End) 입출력 장치의 사용 종료 요청 잘못된 입출력 명령을 만날 때(Invalid I/O Command)  I/O 장치의 상태 정보는 [장치 상태 테이블]이 갖고 있음.

  32. 1.2.4 다중 프로그래밍 개념의 도입 프로그램 검사(Program Check) 인터럽트 잘못 사용된 명령어(Invalid CPU Instruction) 특권 명령 실행시 잘못된 계산 결과 발생 프로그램상의 각종 오류 발생시  비 정상 상태로 종료되므로 필요한 각종 오류메시지의 출력 또는 추가(부수)적인 작업이 필요함.

  33. 1.2.4 다중 프로그래밍 개념의 도입 외부(External) 인터럽트 CPU 사용시간 초과(Interval time going out) 오퍼레이터의 콘솔 작업(Operator’s Interrupt Button) CPU간의 통신, 정전 등 기계 검사(Machine Check) 인터럽트 하드웨어적 오류 발생시 CPU 오류 주기억 장치(Main Memory)오류 등

  34. 1.2.4 다중 프로그래밍 개념의 도입 인터럽트시의 동작과정

  35. 1.2.4 다중 프로그래밍 개념의 도입 (4) 채널의 역할과 종류 채널(Channel) : 다중 프로그래밍 작업시, 입출력을 CPU에게 의존하지 않고 독립적으로 처리해 줌. (I/O processor, I/O channel) 채널의 역할 I/O 명령을 CPU로부터 받아서 I/O 장치를 구동시킨다. I/O 장치와 주기억 장치간의 데이터 전송을 제어한다. I/O 동작을 종결시킨다. I/O 장치로부터의 인터럽트를 CPU에게 알려준다.

  36. 1.2.4 다중 프로그래밍 개념의 도입 입출력 채널의 역활

  37. 1.2.4 다중 프로그래밍 개념의 도입 채널 작업 수행을 위한 레지스터 CAW(Channel Address Word) 해당 커맨드의 주소 즉, CCW의 주소 CCW(Channel Command Word) 채널이 동작하여야 할 내용이 들어 있음 CSW(Channel Status Word) 채널의 현재 상태 정보를 갖고 있음

  38. 1.2.4 다중 프로그래밍 개념의 도입 채널의 유형 멀티 플렉스 형(Multiplex Mode) 여러 개의 입출력 장치가 채널의 기능을 공유 여러 개의 입출력 장치가 시분할적으로 데이터 전송 저속의 입출력 장치가 부착됨(그림 1.18a) 버스트 형(Burst Mode) 하나의 입출력 장치가 데이터 전송을 행하는 동안에 채널의 기능을 독점 고속의 입출력 장치가 부착됨(그림1.18b)

  39. 1.2.4 다중 프로그래밍 개념의 도입 채널의 종류 셀렉터(Selector)채널 버스트 형 채널 독점, 고속의 입출력 장치 부착 바이트- 멀티플렉스(Byte-Multiplexer)채널 멀티 플렉스 형 채널 공유, 저속의 입출력 장치 부착 블록-멀티플렉스(Block-Multiplexer)채널 셀렉터 채널의 고속과 바이트-멀티플렉스 채널의 공유 개념을 혼합시킴 입출력 장치의 동시 동작 가능

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

  41. 1.2.5 시분할 시스템과 실시간 처리 시스템 (1) 실시간 처리 시스템(Real-Time processing System) 실시간(Real-Time) 시한성, 직접성을 갖는 데이터를 즉각 입력하고, 즉시 결과를 받아 볼 수 있는 시간 온-라인(On-Line) 개념 도입 의학 진단용, 산업 제어용, 좌석 예약 업무, 은행 업무 등. 그림 1.20 참조

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

More Related