Skip to content

Latest commit

 

History

History
46 lines (41 loc) · 2.88 KB

File metadata and controls

46 lines (41 loc) · 2.88 KB
  • 높은 이식성의 장단점에 대해 논하시오.

    • 이식성
      • 특정 시스템의 코드가 얼마나 쉽게 다른 시스템으로 옮겨질 수 있는가를 의미한다.

    높은 이식성을 가진다는 것은 많은 추상화 단계를 거친 것이다.

    • 장점
      • 코드를 다른 아키텍쳐로 비교적 쉽게 옮길 수 있으므로, 코드가 시스템 아키텍쳐에 구애받지 않는다.
        • 간단한 추가 작업으로 다른 아키텍쳐로 코드를 이식할 수 있다.
      • 코드 유지 보수에 용이하다.
    • 단점
      • 특정 아키텍쳐에 적합한 설계를 지양하고 일반적인 형태로 추상화하기에 아키텍쳐에 최적화된 코드를 사용할 수 없다.

    이식성 <-> 최적화 는 Trade-off 이다

  • 이식성 있는 코드를 작성하려면 어떤 문제를 고려해야 하는지 논하시오.

    • 아키텍쳐 의존적인 연산을 사용하지 않는다.
    • 시스템 워드 크기에 영향을 받지 않도록 코드를 일반화한다.
    • 데이터 형 크기 불가지론자가 되어야 한다.
    • 문자 데이터 형의 부호를 신경써야 한다.
    • 항상 SMP, 선점, 상위 메모리를 사용한다고 가정하고 코드를 작성해야 한다.
  • 이식성 있는 코드를 작성하기 위해 데이터 형 크기를 고려해야 하는 이유를 설명하시오.

    • C언어를 예로 들면, long형은 시스템의 워드 크기와 같다. 즉, 32비트 시스템에서와 64비트 시스템에서의 long형의 크기가 다르다.
    • 이 점을 무시하고 long형의 데이터 크기를 하나로 확정하는 코드를 작성한다면 워드의 크기가 다른 시스템에서 오류가 발생할 수 있다.
  • 빅 엔디안과 리틀 엔디안의 차이와 장단점을 알아보고, 이것들을 활용하는 아키텍쳐에 대해 논하시오.

    • 빅 엔디안
      • 최상위 바이트가 낮은 주소, 즉 처음에 나오는 방식
      • 장점
        • 사람이 숫자를 읽고 쓰는 방식과 같다.
        • 큰 자리수부터 확인하는 숫자 비교 시 유리하다.
      • 단점
        • 하위 바이트를 사용하려면 포인터 조작이 필요하다.
        • 올림수를 고려해야 하는 수치 계산 시 불리하다.
      • 활용 아키텍쳐
        • PA-RISC, z/Architecture, MIPS, SPARC
    • 리틀 엔디안
      • 최상위 바이트가 높은 주소, 즉 마지막에 나오는 방식
      • 장점
        • 하위 바이트를 사용하기 용이하다.
        • 올림수를 고려해야 하는 수치 계산 시 유리하다.
      • 단점
        • 사람이 숫자를 읽고 쓰는 방식과 반대다.
        • 큰 자리수부터 확인하는 숫자 대소 비교 시 불리하다.
      • 활용 아키텍쳐
        • x86, x64, Alpha, Itanium