Virtualization

kudos·2021년 1월 4일
1

컴퓨터구조

목록 보기
1/5

1. Virtualization이란

컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술"로 정의할 수 있다.

2. 예시

1) process


single physical CPU에 대해 가상화를 통해 프로그래머에게 무한 개의 logical CPU가 있다는 illusion을 만들어주는 것이 process

  • state : register와 memory로 구성. 각각의 logical CPU가 서로 다른 state를 유지하도록 하기 위해서는, memory는 virtual memory를 이용해서 각각의 process가 memory space를 유지하도록 하고, register는 virtual memory에 두고 process가 사용할 수 있도록 하면 됨
  • 한 process가 single physical CPU를 계속 사용하지 않도록 하기 위한 것이 timer interrupt

2) virtual machine


computer system은 하나인데 무한 개의 computer system이 있는 것 같은 illusion을 만들어주는 것

  • state : hdd의 내용 등 computer system이 가진 모든 state

이러한 state를 각각의 virtual machine이 유지하고 있음

3) cache memory


속도는 SRAM, 용량은 DRAM인 것 같은 illusion을 만들어주는 것

  • locality
    - spatial locality: 어떤 주소가 참조되면 가까운 시간 내에 그 근처의 주소가 참조되는 경향이 높다는 것
    - temporal locality: 어떤 주소가 참조되면 가까운 시간 내에 그 주소가 다시 참조되는 경향이 높다는 것

  • memory technology : memory 소자가 여러 종류라서, 어떤 memory는 속도에 장점을, 어떤 memory는 가격과 용량의 장점을 가지는 trade-off가 있다는 것

이러한 locality와 memory technology의 특성을 조합해서 만든 것이 cache memory

참고사항: interrupt & exception

  • 공통점 : 둘 다 OS가 control을 가져가는 event

  • 차이점
    - exception : 지금 돌고 있는 프로그램이 유발한 event, 따라서 synchronous
    ex) page fault, add instruction에서의 overflow
    - interrupt : 지금 돌고 있는 프로그램과 무관한 event, 따라서 asynchronous
    ex) timer interrupt, disk i/o가 끝났을 때의 interrupt

참조

http://olc.kr/classroom/index.jsp?cuid=310525 5, 6강

profile
kudos

0개의 댓글