Computer HardWare
운영체제 ---(가장 먼저 Interection)---> HardWare
1. Computer System
1.1 System Bus
1.1.1 System Bus란 :
CPU, Memory, I/O -> 상호간 Data 전송 역할
1.1.2 System Bus의 종류 :
Data Bus, Address Bus
1.1.3 System Bus의 행동 :
Read & Write
- CPU <- Memory : Read
- CPU -> Memory : Write
1.2 Bus Master / Bus Arbiter / Bus Slave
1.2.1 Bus Master :
-Bus Transaction을 시작하는 요소
-System에는 여러개의 Bus Master가 존재함
* 대표적인 Bus Master : CPU, I/O Controller, DMA Controller 등
1.2.2 Bus Arbiter :
여러Bus Master중 특정 Bus Master에게 Bus를 제공해주는 조정자
1.2.3 Bus Slave :
데이터를 담고 있는 장치(Memory)
(*Transaction : CPU의 작업단위)
1.3 I/O Controller
1.3.1 Interrupt-Driven I/O :
I/O 동작이 완료되면 I/O Controller가 CPU에게 '비동기'적으로 완료되었음을 알려주는 방식
1.3.2 Polling I/O :
I/O 동작이 완료 될 때까지 CPU가 반복해서 I/O Controller의 Resgister 상태를 확인하는 방식
1.4 DMA Operation (Direct Memory Access)
1.4.1 DMA 이란 :
CPU의 개입 없이 I/O Controller가 메모리에 직접 접근하여 Data를 읽거나 쓸 수 있도록 하는 기능
1.4.2 CPU가 DMA에게 전달하는 요소 :
CPU -----------> DMA Controller
- 전송 될 Block의 시작
- Block의 Size
- Operation Command (Read & Write)
(*DMA는 Block 단위로 전달 됨)
1.4.3 DMA 사용 이유 :
Block Data를 옮길 때 CPU Intervention을 최소화하기 위해 사용
1.4.4 DMA가 Block Data를 전송하는 방식
1. Cycle Stealing :
CPU 성능에 영향이 없지만 DMA시간이 증가함
->CPU가 BUS를 사용하고 있지 않을 때만 DMA Controller가 Bus를 사용
2. Block Transfer :
CPU 성능에 영향이 있지만 DMA시간이 감소
->CPU와 DMA Controller가 대등하게 경쟁하여 Bus를 사용
2. Interrupt Mechanism
2.1 Interrupt Mechanism이란
1. 비동기적 Mechanism
2. Hardware Interrupt
- CPU 외부에서 CPU가 관심을 가져야 될 상황에 대에서 CPU에게 전달 (비동기)
3. Software Interrupt
- 현재 수행하는 Program의 문제를 알리기 위해 사용
ex) Exception funtion
-코드분석을 통해 문제를 알 수 있음
(동기적)
2.2 Interrupt의 구현
1. Interrupt Source
- I/O Controller, DMA Controller 등
2. Interrupt의 처리과정
- 현재 Instruction을 완료하고 마이크로 프로세서의 프로그램 카운터(PC)값을 안전한 곳에 저장
- 현재 수행중인 프로그램 중단
- Interrupt Request Number(IRN)를 통해 Interrupt Source 확인
- Interrupt Vector Table을 검색해서 Interrupt Service Routine(ISR)의 주소를 확인하고 수행
3. PIC(Programmable Interrupt Controller)
- CPU의 Interrupt PIN의 유동적 확장을 위해 사용
- PIC 하나당 16개 Interrupt 처리 가능
3. Hardware Protection Mechanism
3.1 Hardware Protection Mechanism 이란
- Multi Programming을 할 때 Memory에 Active한 여러 Job들이 다른 영역에 접근하지 못하게 하는 기법
*Privileged Instruction
-> Operation System만 수행할 수 있는 Instruction
3.2 Duel Mode Operation
- Kernel Mode : Privileged Instruction들을 수행 시킬 수 있는 Mode
- User Mode : Privileged Instruction들을 수행 시킬 수 없는 Mode
- Mode변환은 Kernel Mode만 가능
- User Mode에서 Kernel Mode로 변환하기 위해선 Interrupt를 이용
*본 자료는 서울대학교 홍성수 교수님의 '운영체제' 수업을 바탕으로 개인적으로 정리하여 올립니다. 관련 이미지 자료는 홍성수 교수님 수업 PPT자료가 출처임을 알립니다. 문제 시 말씀해주시면 삭제 조치 하겠습니다. 감사합니다.
'프로그래밍 > 운영체제' 카테고리의 다른 글
MultiThreading (0) | 2016.10.13 |
---|---|
Context Switching(2) (0) | 2016.10.11 |
Context Switching(1) (0) | 2016.10.11 |
Process Scheduling (0) | 2016.10.09 |
Process Concept (0) | 2016.10.09 |