1. H/W, S/W, App
1. H/W
- 물리적 영역
2. App
- 프로세스 영역
3. S/W
- 논리적 영역
- 가상화 → 소프트웨어로 하드웨어를 만들면 그게 가상화
- OS → platform
- h/w 도 64bit app 도 64bit로 돌아가면 OS는 64bit 플렛폼이다.
OS
- App영역에서 process를 지원한다.
- H/W 영역에서는 H/W를 제어, 관리 한다.
Java에서 System.out.print(”hello”)를 하게 된다면…
- OS 단에 있는 print()라는 API를 call한 것이다.
- API내부에서 어떤 장치를 추상화한 File이라는 인터페이스 통해서 커널의 구성요소로 정보가 넘어간다.
- 커널 진입점에 있는 코드 System call. ~write()라는 함수가 커널 수준에서 작동함.
- 이 함수가 장치 드라이버를 제어함.
- 이때 장치 드라이버가 cpu에게 interrupt를 요청.
- 장치 드라이버와 cpu가 통신.
- 장치 드라이버가 장치에 hello라는 정보를 넘김.
- 장치가 모니터를 제어해서 hello를 출력함.
- 장치가 할일 다 끝났다고 커널 구성 요소에게 인터럽트를 함.
- 커널 구성 요소가 process에게 응답할게 있으면 리턴해줌
인터럽트가 발생하는 이유
- cpu가 주변 기기랑 통신을 할 때 발생함
print() → API → 커널 영역에서 실질적으로 수행된다. → 이때 수행되는 함수를 System call 이라 한다.

Share article