본문 바로가기
컴퓨터 지식/IT 기술면접 대비

[IT 면접대비] 개발자 기술면접 대비 🖥️/ 2️⃣ - 운영체제 (2)

by 서상혁 2021. 3. 2.

가상 메모리란 무엇인가요?

메모리는 한정적인데 프로세스 용량이라던가, 프로세스의 수가 늘어나면 다중 프로그래밍이 힘들어질 수 있습니다. 그럴 때를 대비해서, 프로세스의 데이터 전체가 메모리에 올라가지 않더라도, 가상의 주소공간을 이용해서 프로세스를 유지할 수 있게끔 해주는 것을 의미합니다.

 

  • 가상메모리와 스왑(swap) 과는 다르다.
  • 더 많은 프로세스를 동시에 실행이 가능해진다.
  • 자동적으로 CPU 이용률 또한 높아진다.

 

페이징이란 무엇인가요?

프로그램은 실제 물리적 메모리를 직접적으로 이용하지 않습니다. 가상 메모리를 이용하게 되고, 그 가상메모리가 결국에는 물리적 메모리에 접근해서 메모리를 이용하게 되는데, 이 때 가상메모리를 일정한 크기의 블록으로 나누어 관리하는 것이 Paging , 물리적 메모리를 나누어 관리하는 것을 Fragmentation 이라고 합니다.

 

  • 가상 메모리의 Paging은 Page Table을 통해 실제 물리 메모리 주소에 접근하게 된다. 사실 Page Table 에 접근하기 전에 먼저 TLB 에 접근한다.
  • TLB (Translation Lookaside Buffer) : 가상 메모리 -> 물리 메모리로 변환하는 속도를 높이기 위한 캐시

 

 

캐시 지역성에 대해 설명해주세요.

프로그램에서 메모리의 접근이 균등하게 일어나지 않는다 를 가정으로, 어떤 메모리에 접근할 때 띄는 특성이 있다는 것을 의미합니다. 예를들면, 최근에 참조됐던 내용이 다시 참조될 확률이 높다는 시간 지역성, 그리고 참조된 주소의 인접한 주소가 참조될 확률이 높다는 공간 지역성 등이 있습니다.

 

 

 

 

 

참고

-

- namu.wiki/w/%EA%B0%80%EC%83%81%20%EB%A9%94%EB%AA%A8%EB%A6%AC?from=%EA%B0%80%EC%83%81%EB%A9%94%EB%AA%A8%EB%A6%AC


출처

github.com/JaeYeopHan/Interview_Question_for_Beginner

 

JaeYeopHan/Interview_Question_for_Beginner

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - JaeYeopHan/Interview_Question_for_Beginner

github.com

'[IT 면접대비] 개발자 기술면접 대비 🖥️' 게시글의 내용들은 위 깃허브를 출처로 합니다.

위 게시글 깃허브에 들어가보시면 이미 자세한 내용들이 기술되어 있고, 저는 그냥 제 생각을 보태서 한번 다시 정리하는 정도로 생각해주세요! 

 
728x90

댓글