일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Kubernetes Engine
- AWS 자격증
- Google Cloud Platorm
- Cloud Bigtable
- Solution Architect
- Amazon Web Service
- Reverse Proxy
- AWS Certificate
- Google Cloud
- ansible
- Cloud SQL
- AWS Database
- Google Cloud Platrofm
- AWS Solution Architect
- Cloud Spanner
- AWS
- 아마존웹서비스
- 리버스 프록시
- Cloud Storage
- gcp
- container
- playbook
- 앤서블
- VPC
- kubernetes
- Cloud Datastore
- Compute Engine
- Google Cloud Platform
- Solution Architect Certificate
- GKE
- Today
- Total
sungwony
[운영체제의 기초] Computer Hardware 본문
이 포스트는 SNU에서 제공하는 운영체제의 기초 강의를 개인 학습용으로 정리한 포스트입니다
컴퓨터 시스템의 기본 요소 : CPU, Memory, I/O Device
하드웨어의 요소를 연결하는 장치 : System Bus
I/O Device는 자신과 Bus간의 Controller가 존재(Controller가 CPU를 대신해서 I/O Operation을 관장)
System Bus
- CPU와 Memory, CPU와 I/O Device, Memory와 I/O Device간의 데이터 전송을 담당
- Data Bus
- Data 정보를 전달
- Address Bus
- Data의 Source와 Destination을 지정하는 것이 Address
- Address 정보는 Address Bus에 의해 전달
- Bus Transaction의 두 가지 타입 : Read/Write Transaction
- Bus Master
- Bus Transaction을 일으킴
- Bus를 장악(여러 Bus Master가 존재)
- Bus Arbiter : Bus Master가 Bus를 장학하는 것을 관장
- 대표적인 Bus Master H/W : CPU, I/O Controller, DMA Controller 등이 있다
- Bus Slave
- 대표적인 Bus Slave : Memory
- I/O Controller로 Bus Slave가 될 수 있음(정확히는 I/O Controller의 Buffer memory, Register)
두 가지 타입의 I/O Addressing
Memory-mapped I/O
- I/O 레지스터는 메모리 공간과 연결된다
- 메모리와 I/O 둘다 어드레스를 위해 같은 address bus를 사용한다
- input/output을 위해 Load/Store 인스트럭션을 사용한다
- 모토로라 계열
Port-mapped I/O
- I/O 레지스터는 특별한 I/O address port 번호와 연결된다
- 특별한 분리된 I/O address 공간을 갖는다
- 특별한 I/O bus를 사용한다
- 특별한 Input/Output 인스트럭션을 사용한다
- Intel 계열
DMA(Direct Memory Access) Operation
- Block 데이터 전송 시 효율적인 전송을 위해 고안된 방법
- CPU가 Initiation (CPU가 DMA Controller에 Data와 Command 제공 - 시작점, Block의 Size, Read/Write Command)
- CPU의 개입 없이 I/O Controller가 메모리에 직접 접근하여 Data를 읽거나 쓸 수 있도록 하는 기능
- Block Data를 옮길 때 CPU Intervention을 최소한으로 줄이기 위해 사용
- Cycle Stealing 방식
- CPU가 Bus를 사용하고 있지 않을 떄만 DMA Controller가 Bus를 사용하는 방식
- Block Transfer 방식
- CPU와 DMA Contoller가 대등하게 경쟁하여 Bus를 사용하는 방식
Interrupt Mechanism
OS가 존재하기 위해 H/W가 제공해야 하는 가장 중요한 Mechanism
Interrupt 발생시 ISR(Interrupt Service Routine)으로 제어가 넘어감
H/W Interrupt Mechanism
- Hardware Signal에 의해 발생
- Asynchronous(비동기성)
S/W Interrupt Mechanism
- 현재 수행하는 프로그램의 문제가 발생할 때(ex : Exception)
- 혹은 Interrupt를 발생시키는 Instruction(Trap)이 발생할 때
- Synchronous
* OS는 Interrupt Driven하다
Interrupt Mechanism
- CPU의 마이크로 프로세서에 Interrupt Signal을 받아들일 수 있는 pin이 존재해야 함
- 반대쪽에는 Interrupt Source가 존재해야 함
- Interrupt Source : I/O Controller, DMA Controller
- 현재 수행중인 프로그램의 수행을 중단한다(진행중인 Instruction까지는 종료)
- PCB에 현재 프로그램의 Context를 저장
- Interrupt Source를 확인한다. Interrupt Request Number(IRN)을 확인
- Interrupt Vector Table을 검색하여 Interrupt에 대한 Handler의 주소를 얻어오고 Handler를 실행한다
- 이전에 실행중인 프로그램을 다시 실행한다
PIC(Programmable Interrupt Controller)
- Interrupt Source와 CPU 사이에 존재
- 한쪽 끝은 CPU의 Interrupt Pin에 연결하고 다른 쪽은 Interrupt Source에 연결
- 기본 16개 정도의 pin을 지원하지만 Cascading하개 구성할 수 있다
- Interrupt Mask : programmable하게 동작하여 Interrupt를 on/off 하거나 무시 또는 추후 처리하도록 할 수 있다
- IRQ를 PIC의 Register에서 찾을 수 있다
Hardware Protection Mechanism
Dual Mode Operation(수행 모드가 두 가지)
Microprocessor의 특정 Register(Processor Status Register) Mode Bit로 구분한다
- Kernel Mode : Mode Bit가 0인 모드. Privilleged Instruction을 수행할 수 있는 모드
- User Mode : Mode Bit가 1인 모드. User Program을 수행하는 모드
* Privilleged Instruction
- Kernel Mode에서만 수행할 수 있는 Instruction
CPU가 Instruction을 수행하기 위해 Fetch하고 이를 Decode할 때 Mode Bit를 확인
컴퓨터 시스템은 사용자 프로그램을 신뢰하지 않음
사용자 프로그램이 커널 모드에서
Operating System의 Kernel Mode의 특권
- Privileged Instruction 수행
- Memory에 Access할 수 있는 권한
Kernel Mode의 관장은 Operating System
User Program이 수행(User Mode)하다 I/O instruction(Privilleged Instruction)이 필요하다.
그 때 필요한 mechanism이 interrupt mechanism(Kernel Mode로 전환)
Interrupt Handler(Interrupt Service Routine)가 뜨고 이것은 User의 권한을 컨트롤 하는 잘 정의된 함수형태로 제공된다
System Call
Privillege의 변환을 얻을 수 있도록 Operating System이 제공하는 함수
I/O Protection
I/O 자원을 가지고 여러 Job이 경쟁
I/O Register를 Privilleged Instruction으로 만들어서 I/O Protection을 구현
CPU Protection
CPU 자원을 가지고 여러 Job이 경쟁
CPU의 자원을 사용하는 시간을 제한(Timer Interrupt)
'development > 강의노트' 카테고리의 다른 글
[운영체제의 기초] Processes and Threads (1) - Process Concept (0) | 2020.04.02 |
---|---|
[운영체제의 기초] Evolution of OS (2) (0) | 2020.03.17 |
[운영체제의 기초] Evolution of OS (1) (0) | 2020.03.15 |