컴퓨터시스템구조(인천대학교).

Download Report

Transcript 컴퓨터시스템구조(인천대학교).

2장 컴퓨터 시스템 구조 (Computer-System Structures)
•
•
•
•
•
•
컴퓨터 시스템 연산 (Computer System Operation)
입출력 구조 (I/O Structure)
저장장치 구조 (Storage Structure)
저장장치 계층 (Storage Hierarchy)
하드웨어 보호 (Hardware Protection)
일반적인 시스템 구조 (General System Architecture)
2000 운영체제
2.1
인천대학교 컴퓨터공학과 성미영
컴퓨터 시스템 연산 ~
•
Bootstrap program (부트스트랩: 편상화의 손잡이 가죽)
– 초기화
– load the OS
– OS개시 (init process: wait for event)
•
•
Bootstrap 완료후 event 기다림
•
Interrupt 처리 절차
1. 하던 일 중단: return address 저장
2. Interrupt 종류 확인
 polling
 vectored interrupt
3. 해당 interrupt의 service routine 실행 완료
4. 하던 일 다시 시작: return address부터 실행
Event
– H/W generated interrupt (I/O 완료 event) -> signal to the CPU
– S/W generated interrupt (trap) -> system call (monitor call)
2000 운영체제
2.2
인천대학교 컴퓨터공학과 성미영
Bootstrap Program
2000 운영체제
2.3
인천대학교 컴퓨터공학과 성미영
컴퓨터 시스템 연산
•
•
Return address의 저장
1. memory 특정위치에 : 초기 컴퓨터
2. system stack에 : 최근 컴퓨터
Interrupt vector
– 장치번호로 인덱스된 포인터들의 배열 (a table of pointers indexed by a
unique device number)
•
Interrupt 진행 중 새로운 interrupt오면
– disable : 기다림
– enable : 우선순위에 따라 처리 (sophisticated system)
•
OS는 interrupt-driven 이다.
2000 운영체제
2.4
인천대학교 컴퓨터공학과 성미영
컴퓨터 시스템 구조
2000 운영체제
2.5
인천대학교 컴퓨터공학과 성미영
출력을 수행하고 있는 단일 프로세스에 대한 인터럽트 시간선
2000 운영체제
2.6
인천대학교 컴퓨터공학과 성미영
입출력 구조 (I/O Structure) ~
•
Device controller (장치 제어기)
– BUS에 연결
– 종류별 1 개가 일반적
– SCSI (Small Computer Systems Interface controller)
 여러 종류의 장치 부착 가능
•
입출력 방식
– Interrupt 기반 전송
– DMA 기반 전송
•
trap : software interrupt
2000 운영체제
2.7
인천대학교 컴퓨터공학과 성미영
I/O Interrupts 기반 구조
•
I/O 시작
– CPU가 device controller의 register들을 set
– device controller 는 register 내용 검사하여 동작 개시
•
I/O 끝
– device controller가 CPU에 interrupt
•
종류
– 동기적(synchronous) I/O
 user program이 I/O 완료를 기다림
 interrupt한 장치 쉽게 인식
– 비동기적(asynchronous) I/O
 I/O완료를 기다리지 않고 user program으로
 I/O 완료를 기다리려면 wait 명령 또는 wait loop으로 다음 interrupt
까지 기다리게 할 수 있음
 simultaneous I/O 가능
•
동시에 many I/O requests의 처리 위해
– device-status table(장치 상태 테이블) 필요 (p24 그림 2.4)
 type, address, state
 list or chain(=linked list) 형태로 request등록(request list)
– I/O interrupt -> OS가 device알아냄 -> I/O device table변경
2000 운영체제
2.8
인천대학교 컴퓨터공학과 성미영
두 가지 입출력 방식
Synchronous
2000 운영체제
Asynchronous
2.9
인천대학교 컴퓨터공학과 성미영
장치 상태 테이블 (Device-Status Table)
2000 운영체제
2.10
인천대학교 컴퓨터공학과 성미영
DMA (Direct Memory Access) 구조
•
•
고속 입출력 장치를 위한 기법
•
DMA 동작 원리
– device driver가 DMA controller의 register들 setting
 출발 주소
 목적지 주소
 전송 길이
 제어 레지스터에 제어 비트 설정하여 I/O 명령
– 끝나면 CPU에 Interrupt
– 메모리는 한 순간에 하나의 워드만 전송 가능
 cycle stealing: DMA 제어기가 기억장치 사이클을 훔침
tape, disk, 통신 네트워크 등 I/O interrupt가 자주 일어남
– 저속: 9600 bps, 1000microsec. 마다 2 micro sec.
– 고속: 4 micro sec. 마다 2 micro sec.
 DMA controller가 직접 CPU 간섭 없이memory와 controller의 buffer
사이에 블록 단위로 I/O
2000 운영체제
2.11
인천대학교 컴퓨터공학과 성미영
DMA (Direct Memory Access) 구조
2000 운영체제
2.12
인천대학교 컴퓨터공학과 성미영
기억장치 구조 (Storage Structure) ~
•
기억장치 연산
– Load : main memory-> CPU의 register
– Store : CPU -> memory
•
Von Neumann 구조의 명령 실행 사이클
– fetch : 명령 -> instruction register
– decode
– execute: 실행 후 결과를 register에 저장
•
•
Main memory : direct-access storage device
– ① too small
– ② volatile
Secondary storage
– ① extremely large
– ② permanent
2000 운영체제
2.13
인천대학교 컴퓨터공학과 성미영
기억장치 구조
•
주기억장치와의 I/O
– 일반적
 device controller의 register에 보관된 데이터를 memory로 전송
– 특별한 경우 memory mapped I/O
 memory의 한 주소는 장치의 한 위치로 mapping
 (예) video controller
– main memory접근은 여러 기억장치 cycle이 필요
 접근동안 CPU 기다림
 접근 시간
– register 접근은 1 마이크로 사이클
– memory 접근은 여러 마이크로 사이클 필요
cache (a memory buffer)
•
자기디스크(Magnetic Disks)
– moving head disk
– floppy disk
•
자기테이프(Magnetic Tapes)
2000 운영체제
2.14
인천대학교 컴퓨터공학과 성미영
이동 헤드 (moving-head) 디스크 메커니즘
2000 운영체제
2.15
인천대학교 컴퓨터공학과 성미영
기억장치의 계층구조 (Storage Hierarchy)
•
계층 요소
– speed
– cost
– volatility
•
캐싱 (caching)
– 더 빠른 저장 장치에 정보를 복사
– main memory: a last cache for secondary storage
•
•
Caching (Cache memory)
– 사용할 가능성이 많은 자료를 cache에 저장
– cache에 없으면 memory access
– (예) index registers 등도 일종의 cache
응집성과 일관성(Coherency and Consistency)
– multitasking: variable copy들의 coherency 문제
– multiprocessor: local cache들의 coherency 문제
– distributed system에서의 coherency 문제: file copy들 + local
cache들의 coherency 문제
2000 운영체제
2.16
인천대학교 컴퓨터공학과 성미영
Storage-Device Hierarchy
2000 운영체제
2.17
인천대학교 컴퓨터공학과 성미영
하드웨어 보호 (Hardware Protection)
•
이중 모드(Dual-Mode Operation)
– mode bit
 1 -> user mode (사용자 모드)
 0 -> monitor mode (Supervisor mode, system mode, privileged
mode)
– H/W : mode bit(1 bit)
– 특권명령(privileged instruction)의 사용 -> trap
(모니터 모드에서만 동작해야 하는 명령)
– interrupt 나 trap 생기면 monitor mode로 전환
Interrupt/fault
monitor
user
set user mode
2000 운영체제
2.18
인천대학교 컴퓨터공학과 성미영
하드웨어 보호
•
입출력 보호
– 사용자 프로그램의 부당한 I/O의 해결
 모든 I/O 명령을 privileged로: 그림 2.9 참조
•
기억장치 보호
– (예) interrupt vector 및 interrupt service routine의 보호
 각 program의 memory 영역에 한계를 줌.
– H/W : 2 registers -> base register, limit register
– 한계 이내에 있는가를 매 memory 접근 마다 CPU가 check
– 허가 영역 이외의 접근은 trap
•
CPU 보호
– Timer (매 clock tick 마다 감소하다 0되면 interrupt) 이용
 1. infinite loop -> timer로 예방
 2. time sharing : 매 N milliseconds 마다 interrupt 걸어 context
switch
 3. current time : 일정주기의 interrupt 개수로 시간 계산, 대부분
독립된 hardware time-of -day clock 이용
– Timer 적재 명령도 특권 명령임
2000 운영체제
2.19
인천대학교 컴퓨터공학과 성미영
논리 주소 공간을 정의하는 기준과 한계 레지스터
2000 운영체제
2.20
인천대학교 컴퓨터공학과 성미영
기준과 한계 레지스터를 이용하는 주소 보호 하드웨어
•
Monitor mode 에서 OS는 monitor 와 사용자 메모리 전체에 무제한
접근권한 가짐
•
기준 (base)과 한계 (limit) 레지스터 적재 명령은 특권 명령임
2000 운영체제
2.21
인천대학교 컴퓨터공학과 성미영
일반적인 시스템 구조
•
I/O 명령이 특권명령이면 어떻게 I/O를 수행하나?
– 그림 2.9 참조
•
시스템 호출 (system call) – 프로세스가 OS에게 행동을 요구하는 방법
– interrupt vector의 특정 위치로 trap
– OS 안의 서비스 루틴으로 제어 이동 (monitor mode)
– OS는 요구의 종류 파악하여 요구를 실행하고 나서 시스템 호출 다음
문장으로 제어 복귀
2000 운영체제
2.22
인천대학교 컴퓨터공학과 성미영
I/O 수행을 위한 시스템 호출의 사용
2000 운영체제
2.23
인천대학교 컴퓨터공학과 성미영