6회차 운영체제 | 메모리 구조 관련 질문 정리

728x90

24.01.19 금 질문 내용  |  24.04.04 답변 업데이트 

1) 메모리 구조에서 데이터 영역는 어떤 정보가 들어가는지 설명

- BSS 영역 (Block Started by Symbol) : 명시적으로 초기화 되지 않은 XX (전역, 정적 변수들 저장됨)
- Data 영역 : 명시적으로 초기화 된 OO (전역, 정적 변수들 저장됨)

2) 메모리 영역에서 런탐임에 할당되는것들

- 영역 크기/사이즈 : (런타임) 힙 | (정적) 코드, 데이터, 스택 크기
- 메모리 할당 : (런타임) 힙, 스택 | (정적) 코드, 데이터

3) 다른 메모리 영역을 (침범) 접근하려 할 때 어떤일이 발생하는가?

CPU 예외 > OS 예외처리를 통해 프로세스 종료 시킨다.

인터럽트 = 하드웨어 + 소프트웨어(트랩)

트랩 - 응용sw에서 시스템콜 호출시, 메모리 잘못 접근

4) 스레드 stack 영역만 독립적으로 사용하는 이유

스택 영역에서는 함수 호출을 통해 변수들을 저장 >> 독립적으로 실행 흐름을 만들기 위해

PC 레지스터도 따로 사용 > 스레드 문맥 교환시 사용하기 때문

5) 힙, 스택 영역에 대한 비교

힙(Heap) 영역은 동적 메모리 구조를 가지고, 스택(Stack) 영역은 정적 메모리 구조를 가진다.
[스택] : 함수 내에 정의된 지역 변수/매개변수 등이 저장된다. 
[힙] : 동적 할당에 의해 생성된 동적 변수 관리하기 위한 영역, 보통 new 연산자로 생성된 객체, 배열 저장하는 공간이며 GC를 통해 메모리를 반환한다. 메모리 크기는 실행중에 결정된다.

6) TCP 데이터 신뢰성을 보장하는 방법중, 흐름제어 어떤 상황에 사용되는지

수신 측이 송신측의 전송속도를 감당하지 못할 수도 있기 때문

7) HTTP 정의 & 특징

8) 컨텍스트 스위칭을 하는 이유

CPU 를 최대한 활용하기 위해서 (eg. I/O 등의 작업)

멀티 프로세싱을 하기 위해

9) 쿠키와 세션의 차이점

 


추가 정리 필요한 부분

1) 메인 메모리(물리)도 실제로 Data, Code, Heap 등으로 나뉘어져 있는 건지 (물리적 vs 논리적) 분리

2) 메모리 구조 중 Data 영역 상에 BSS 따로 사용하는 이유 ?

→ BSS에는 초기화 안된 정적/전역 변수가 저장되는데, 추후에 초기화를 해야 하기 때문에 RAM을 사용해야 하고,

→ data segments에는 이미 초기화된 정적/전역 변수가 저장되므로 ROM을 사용한다 .

3) RAM과 ROM 에 대한 추가 조사 필요

4) 인터럽트에 대한 조사

- HW 인터럽트
- SW 인터럽트 (= 트랩) -> 시스템콜

- 메모리 구조 관련 질문 내용 모음

Q. 캐시(Cache) 메모리 왜 사용하는지, CPU 적중률 높이기 위해 어떤 원리 이용해야 하는지 설명해주세요.

CPU와 메모리 사이의 속도 차이를 완화하기 위해 사용합니다. 

메모리의 데이터를 미리 가져와 저장해두는 임시 장소로, 캐시의 크기는 메인 메모리보다 작기 때문에 앞으로 사용될 것으로 예상하는 데이터를 미리 저장하는 것이 중요한 포인트입니다.

따라서 이 캐시에 있는 데이터를 사용하는 것을 '적중'이라고 하고, 이러한 적중률을 높이기 위해서 참조 지역성의 원리를 사용합니다.

- 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성 (ex. 반복문)

- 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성 (ex. 배열)

Q. RAM을 주기억장치라고 표현하는 이유는 무엇인가요?

컴퓨터가 어떠한 프로그램을 실행하는 동작에 대해 설명해보겠다.

먼저 보조기억장치에서 주기억장치로 프로그램을 불러온다.(부팅, 로딩)

주기억장치에서 프로그램을 기억하고 CPU와 통신할 준비가 끝나면 CPU에서 데이터를 주고받으며 프로그램을 구동한다. (동작, 구동)

따라서 컴퓨터 입장에서는 RAM은 작업실, CPU는 작업자와 같은 역할을 하게 된다. 이런 역할 때문에 주기억장치라고 표한한다.  

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

  • 지역성 : 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것
    • 시간적 지역성(Temporal locality) : 특정 데이터가 한 번 접근되었을 경우,가까운 미래에 또 한 번 데이터에 접근할 가능성이 높음
    • 공간적 지역성(Spatial locality) : 액세스 된 기억장소와 인접한 기억장소가 액세스 될 가능성이 높음

Q. 왜 불편하게 전원이 차단되면 모든 기억된 내용이 지워지는 휘발성 장치를 사용할까요?

아직 휘발성 특성, 단점을 가진 기계적 부품 이외에는 주기억장치의 역할을 할 부품이 상용, 양산화가 힘들기 때문이다.

빠른 속도와 효율을 제공해주기 때문에 휘발성임에도 불구하고 사용된다. 만일 기술의 발전으로 다른 방법이 생기면 이러한 단점이 사라질 수도 있다.

728x90