2 장컴퓨터시스템구조 (Computer-System Structures) 컴퓨터시스템연산 (Computer System Operation) 입출력구조 (I/O Structure) 저장장치구조 (Storage Structure) 저장장치계층 (Storage Hierarchy) 하드웨어보호 (Hardware Protection) 일반적인시스템구조 (General System Architecture) 네트워크구조 (Network Structure) 2.1
컴퓨터시스템연산 Bootstrap program ( 부트스트랩 : 편상화의손잡이가죽 ) 초기화 load the OS OS개시 (init process: wait for event) ( 예 ) GRUB (GRand Unified Bootloader), LILO (LInux LOader) Bootstrap 완료후 event 기다림 Event H/W generated interrupt (I/O 완료 event) -> signal to the CPU S/W generated interrupt (trap) -> system call (monitor call) OS는 interrupt-driven 이다 2.2
컴퓨터시스템연산 Interrupt 처리절차 1. 하던일중단 : return address 저장 Return address 의저장 memory 특정위치에 : 초기컴퓨터 system stack에 : 최근컴퓨터 2. Interrupt 종류확인 polling ( 인터럽트요청신호만전달, 단일회선인터럽트요청 ) vectored interrupt ( 하드웨어적으로확인 : 인터럽트를요청한장치의주소전달, 다중회선인터럽트요청 ) 3. 해당interrupt의service routine 으로제어이동후실행완료 Interrupt vector: 장치번호로인덱스된포인터들의배열 (a table of pointers indexed by a unique device number) 4. 하던일다시시작 : return address부터실행 Interrupt 진행중새로운 interrupt오면 disable : 기다림 enable : 우선순위에따라처리 (sophisticated system) 2.3
현대의컴퓨터시스템 컴퓨터-시스템연산 (computer-system operation) 공유메모리접근을지원하는공통버스 (common bus) 를통해연결된하나이상의 CPU와장치제어기 (device controllers) 들로구성됨 CPU와장치제어기들은메모리사이클을얻기위해경쟁하면서병행수행 (concurrent execution) 될수있음 2.4
출력을수행하고있는단일프로세스에대한인터럽트시간선 2.5
입출력구조 (I/O Structure) ~ Device controller ( 장치제어기 ) BUS 에연결 종류별 1 개가일반적 SCSI (Small Computer Systems Interface controller) 여러종류의장치부착가능 입출력방식 Interrupt 기반전송 DMA 기반전송 trap : software interrupt 2.6
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( 장치상태테이블 ) 필요 ( 그림 2.4) type, address, state list or chain(=linked list) 형태로 request 등록 (request list) I/O interrupt -> OS 가 device 알아냄 -> I/O device table 변경 2.7
두가지입출력방식 Synchronous Asynchronous 2.8
장치상태테이블 (Device-Status Table) 2.9
DMA (Direct Memory Access) 구조 고속입출력장치를위한기법 tape, disk, 통신네트워크등 I/O interrupt 가자주일어남 PIO (Programmed I/O): CPU 가장치제어기의상태비트를반복적으로검사하여 1 바이트씩옮기는방식 저속 : 9600 bps(cf. baud, 보 ), 1000microsec. 마다 2 micro sec. 고속 : 4 micro sec. 마다 2 micro sec. DMA controller 가직접 CPU 간섭없이memory 와 controller 의 buffer 사이에블록단위로 I/O DMA 동작원리 (p419 참조 ) device driver 가 DMA controller 의 register 들 setting 출발주소 목적지주소 전송길이 제어레지스터에제어비트설정하여 I/O 명령 끝나면 CPU에 Interrupt 메모리는한순간에하나의워드만전송가능 cycle stealing: DMA 제어기가기억장치사이클을훔침 2.10
DMA 전송을수행하는 6 단계처리 2.11
DMA (Direct Memory Access) 구조 2.12
저장장치구조 (Storage Structure) ~ 기억장치연산 Load : main memory-> CPU 의 register Store : CPU -> memory Von Neumann 구조 (stored program) 의명령실행사이클 fetch : 명령 -> instruction register decode execute: 실행후결과를 register에저장 Main memory : direct-access storage device 1 too small 2 volatile Secondary storage 1 extremely large 2 permanent Hard disk Tertiary storage 1 slower and lower in cost than secondary storate 2 Backups of disk data CD, DVD 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 전송률 (transfer rate) 위치시간 (positioning time) = 입의접근시간 (random access time) = 탐색시간 (seek time) + 회전지연시간 (rotational latency time) floppy disk 자기테이프 (Magnetic Tapes) 2.14
이동헤드 (moving-head) 디스크메커니즘 2.15
저장장치계층구조 (Storage-Device 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 문제 (17장참조 ) 2.16
저장장치계층구조 (Storage-Device( Hierarchy) 2.17
저장장치의성능 2.18
Integer A 의 Disk 에서 Register 로의이동 Multitasking 환경에서는프로세스들이가장최신의데이터를사용할수있게해야함 Multiprocessor 환경에서는 CPU가최신의 cache 데이터를사용할수있도록 cache coherency 를제공해야함 Distributed 환경에서는 coherency 문제가더욱복잡해짐 데이터의여러복사본이여러 cache 에존재할수있음 여러해법들 Chapter 17 참조 2.19
하드웨어보호 (Hardware Protection) 이중모드 (Dual-Mode Operation) mode bit 1 -> user mode ( 사용자모드 ) 0 -> kernel mode (monitor mode, supervisor mode, system mode, privileged mode) H/W : mode bit(1 bit) MS-DOS for Intel 8088 (no mode bit) has no dual mode 특권명령 (privileged instruction) 의사용 -> trap ( 모니터모드에서만동작해야하는명령 ) interrupt 나 trap 생기면 monitor mode로전환 Interrupt/fault monitor user set user mode 2.20
User Mode 에서 Kernel Mode로의전환 타이머로무한루프또는프로세스의자원독차지방지 일정기간후인터럽트발생하도록설정 OS가카운터감소 카운터가제로가되면인터럽트발생 제한시간지난프로그램을종료하고스케줄링프로세스가제어를시작하도록설정 2.21
하드웨어보호 입출력보호 사용자프로그램의부당한 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 적재명령도특권명령임 2.22
논리주소공간을정의하는기준과한계레지스터 2.23
기준과한계레지스터를이용하는주소보호하드웨어 Monitor mode 에서 OS 는 monitor 와사용자메모리전체에무제한접근권한가짐 기준 (base) 과한계 (limit) 레지스터적재명령은특권명령임 2.24
일반적인시스템구조 I/O 명령이특권명령이면어떻게 I/O를수행하나? 그림 2.9 참조 시스템호출 (system call) 프로세스가 OS에게행동을요구하는방법 interrupt vector 의특정위치로 trap OS 안의서비스루틴으로제어이동 (monitor mode) OS는요구의종류파악하여요구를실행하고나서시스템호출다음문장으로제어복귀 2.25
I/O 수행을위한시스템호출의사용 2.26
Local Area Network Structure 2.27
Wide Area Network Structure 2.28