기출문제/정보처리기사

2020년 4회 정보처리기사 기출문제 77번

엉클지니 2025. 4. 7. 15:56

77. 다음과 같은 세그먼트 테이블을 가지는 시스템에서 논리 주소(2, 176)에 대한 물리 주소는?

  398         400

1928        1930

 

 


📘 문제 분석

문제:
세그먼트 테이블이 주어졌고, 논리 주소 (2, 176)에 대한 물리 주소를 구하는 문제야.

💡 용어 정리

용어 의미

세그먼트 번호 논리 주소에서 사용하는 구분 번호
오프셋 세그먼트 내에서의 위치
물리 주소 실제 메모리 상의 주소 (우리가 구해야 할 것!)

🧠 해결 방법

논리 주소 (세그먼트 번호, 오프셋)를 물리 주소로 바꾸는 공식은?

물리 주소 = 세그먼트의 시작 주소 + 오프셋

하지만! ✋ 여기서 오프셋이 세그먼트 길이보다 크면 오류 (Segmentation Fault) 야.
→ 오프셋이 유효한지 먼저 확인해야 해.


🧾 주어진 세그먼트 테이블

세그먼트번호 시작 주소 길이 (바이트)

0 670 248
1 1752 422
2 222 198
3 996 604

🧮 계산 시작! 논리 주소 (2, 176)

세그먼트 번호 = 2
오프셋 = 176

  1. 세그먼트 2의 시작 주소 = 222
  2. 세그먼트 2의 길이 = 198

👉 오프셋 176 < 198 이니까 유효한 주소야! 🎉

이제 물리 주소 계산:

물리 주소 = 시작 주소 + 오프셋 = 222 + 176 = 398


✅ 정답은?

🎯 정답: ❶ 398


🎓 예시로 더 이해해보자!

예시 1

논리 주소 (1, 500)은?

  • 세그먼트 1의 길이 = 422
  • 오프셋 500 > 422 → ❌ 오류! 주소 범위 초과!

예시 2

논리 주소 (0, 100)

  • 시작 주소 = 670
  • 오프셋 100 → 유효
  • 물리 주소 = 670 + 100 = 770

🔚 결론 정리

단계 설명

1️⃣ 세그먼트 번호를 보고 시작 주소, 길이 확인
2️⃣ 오프셋이 길이보다 작은지 확인 (유효성 검사)
3️⃣ 유효하면 시작 주소 + 오프셋 = 물리 주소 계산
4️⃣ 결과를 정답으로 선택! ✅

공부하는 여러분 모두 화이팅! 🎉
궁금한 문제 또 가져와~ 언제든 도와줄게! 😊📚

반응형