본문 바로가기

컴퓨터와 보안/OS(운영체제)

william stallings OS(운영체제) Chapter 16 문제풀이

16.1 클라이언트/서버 컴퓨팅이랑 무엇인가?

클라이언트/서버 컴퓨팅이란 조직의 생산성을 현저하게 향상시키기 위하여 정보 시스템과 네트워크의 잠재성을 현실화한 핵심 기술이다.

 

16.2 클라이언트/서버 컴퓨팅과 일반 분산 데이터 처리를 구분하는 특징은 무엇인가?

비록 application들은 사용자나 부서에 분산되어 있지만, 회사의 데이터베이스, 네트워크 관리, 유틸리티 기능은 중앙 집중화 되어 있다. 이것은 컴퓨팅과 정보 시스템에 대한 총 자본 투자를 전체적으로 관리할 수 있게 하며, 함께 연결된 시스템에 대한 상호 운용성을 제공할 수 있게 한다. 또한 이것은 각 개인이나 부서에서 복잡한 컴퓨터 기반 설비들을 직접 유지 보수하는 부담을 경감해준다. 따라서 개인이나 부서는 데이터나 정보를 접근하는데 필요한 기계나 인터페이스를 선택하기만 하면 된다

 

16.3 클라이언트/서버 환경에서 TCP/IP와 같은 통신 구조의 역할은 무엇인가?

클라이언트와 서버가 상호 작용을 가능하게 한다.

 

16.4 응용들을 클라이언트, 서버 또는 클라이언트/서버 상에서 분리하는 이론적 분류를 설명하라.

호스트 기반 처리, 서버 기반 처리, 클라이언트 기반 처리, 협력 처리

 

16.5 중량 클라이언트와 경량 클라이언트는 무엇인가? 두 접근 방식의 설계 철학은 무엇인가?

중량 클라이언트에는 클라이언트 기반 처리, 협력 처리가 있고 부하의 상당 부분이 클라이언트에 있는 구성을 나타낸다.

경량 클라이언트에는 서버 기반 처리가 있다. 이 접근 방식은 전통적인 호스트 처리 방법을 모방한 것이고, 메인 프레임에서 분산 환경으로 회사의 전체적인 응용을 교체하기 위한 중간 과정이다.

 

16.6 중량 클라이언트와 경량 클라이언트 기법의 장단점을 설명하라.

중량 클라이언트의 주요 이점은 데스크탑의 성능을 이용하며, 서버 응용 처리 부하를 줄여주고 서버를 더 효율적으로 만들어 주며 병목현상이 덜 생기게 한다. 단점은 설치나 유지보수가 복잡할 수 있다.

경량 클라이언트의 장점은 사용자 워크스테이션이 친숙한 사용자 인터페이스를 제공하는데 최상이고, 데이터베이스와 응용은 중앙 시스템에서 쉽게 관리된다는 것이다. 단점은 생산성에서의 중요한 이득이나 시스템을 지원하는 실질적 업무 기능에서 어떤 기본적인 변화를 주지는 못한다.

 

16.7 3계층 클라이언트/서버 구조를 사용하는 이유를 설명하라.

각 계층을 담당하는 팀들을 구성하여 업무 분담이 가능해지므로 업무 효율성이 증가할 수 있다. 또한 서로 다른 물리적인(혹은 논리적인)서버들을 구성하므로 리스크를 어느 정도 완화할 수 있다. 또한 여러 대의 서버로 나누어서 각 계층이 동작 하므로 서버의 부하를 줄여줄 수도 있으며, 경우에 따라 부하가 발생하는 특정 계층의 서버에 대해서만 합리적인 스케일업을 고려할 수 있다.

 

16.8 미들웨어란 무엇인가?

미들웨어는 운영체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어이다. 기본적으로 숨겨진 변환 계층으로 기능하는 미들웨어는 분산 응용 프로그램의 통신 및 데이터 관리를 가능하게 한다.

 

16.9 TCP/IP와 같은 표준을 이미 가지고 있는데, 왜 미들웨어가 필요한가?

클라이언트/서버 접근 방식의 진정한 이점을 얻기 위해서는, 다양한 플랫폼들에 분산되어 있는 모든 시스템 자원을 일관된 수단과 방식으로 접근할 수 있는 툴들의 집합이 제공되어야 한다. 이를 통해 개발자는 클라이언트/서버 환경을 가상적으로 동일한 시스템으로 보게 되며, 자신이 원하는 데이터가 어떤 위치에 존재하는가를 인식할 필요 없이 동일한 방법으로 접근할 수 있게 된다.

 

16.10 메시지 전달에서 블로킹과 비블로킹 기법의 장점과 단점을 나열하시오.

비블로킹 기법은 프로세스에 의한 메시지 전달을 효율적이고 유연하게 수행될 수 있게 한다. 하지만 이 접근방식의 단점은 비블로킹 프리미티브를 사용하는 프로그램을 테스트하고 디버깅하는 것이 어렵다는 것이다. 재생산이 불가능하고, 시간에 의존하는 순서들은 더욱 미묘하고 어려운 문제를 야기할 수 있다.

 

16.11 원격 프로시저 호출(RPC)사용의 장점을 기술하시오.

프로시저 호출이 광범위하게 받아들여지고 사용되며 잘 알려진 추상화 개념이다.

표준화되고 자세히 정의된 인터페이스가 명시되었기 때문에, 응용을 위한 통신 코드가 자동으로 생성될 수 있다.

표준화되고 자세히 정의된 인터페이스가 명시되었기 때문에, 개발자는 매우 적은 코드 작성과 수정을 통해서 컴퓨터와 운영체제 사이에서 이동할 수 있는 클라이언트와 서버 모듈을 쉽게 작성할 수 있다.

인터페이스는 명시적으로 문서화될 수 있고, 분산된 프로그램 타입 오류를 정적으로 확인할 수 있다.

 

16.12 신뢰성 있는 메시지 전달과 신뢰성 없는 메시지 전달 기법의 차이점을 기술하시오.

신뢰할 수 있는 메시지 전달 기능은 전송이 실패한 경우, 송신 프로세스에게 전송 실패를 통보한다. 비신뢰성 메시지 전달 기능은 메시지를 통신 네트워크로 보내기만 할 뿐 성공이냐 실패냐를 보고하지 않는다. 이 방법은 메시지 전달 기능의 복잡성과 처리 및 통신 부하를 줄여 준다.

 

16.13 클러스터와 대칭형멀티프로세서(SMP)를 비교하여 설명하시오.

SMP 접근 방식의 주요 강점은 SMP가 클러스터보다 관리하고 구성하는데 더 쉽다는 것이다. 응용 작성 측면에서 보면 SMP는 기존의 단일 처리기 모델과 유사핟. 단일 처리기에서 SMP로 전환하는데 요구되는 변화는 스케줄러 기능이다. SMP의 또 다른 이점은 물리적 공간과 전원을 덜 쓴다는 것이다. 마지막 중요한 이점은 SMP 제품이 잘 정착되었고 안정적이다는 것이다. 클러스터는 점진적이고 절대적인 확장성 측면에서 SMP에 비교 우위에 있다. 클러스터는 가용성 입장에서도 또한 우위에 있는데, 시스템의 모든 요소가 손쉽게 중복될 수 있기 때문이다.