Computer Science/OS

운영체제(Opearting System:Concepts) 9판 1장 연습문제

TwinParadox 2018. 7. 15. 12:38
728x90

1.1 다중 프로그래밍과 시분할 환경에서, 다수의 사용자가 동시에 시스템을 공유한다. 이러한 상황은 여러 가지 보안 문제를 일으킬 수 있다. 


a) 

다른 프로세스의 자원에 접근할 수 있음. 

자원을 독점해 다른 프로세스가 자원을 사용하지 못하게 할 수 있어, 시스팀의 자원 제어가 어려움. 

b) 

보장할 수 없다. 동일 수준의 보안을 보장하려면 동일한 환경을 보장해야 하지만 동일한 환경을 보장할 수 없으며, 각 기능들로 인한 돌발 문제도 존재하기 때문이다. 




1.2 자원 활용의 문제는 운영체제의 유형별로 다른 모습으로 나타난다. 다음과 같은 환경에서는 어떤 자원들이 신중하게 관리되어야 하는지 나열하시오. 


a) 메인 프레임 또는 미니컴퓨터 시스템 

자원 이용을 극대화하도록 설계해야 하므로, 모든 자원, 즉, CPU/메모리/저장소/입출력 자원/네트워크 등을 다 관리해야 함. 

b) 서버에 연결된 워크스테이션 

자신이 활용할 수 있는 전용 자원이 있으나, 이것들을 네트워킹과 서버, 계산 등에 공유하기 때문에 전용 자원에 대한 효율을 올려야 하므로 CPU/메모리가 중요. 

c) 휴대용 컴퓨터 

주로 배터리를 사용하는 독립형 장치로 다른 환경에 비해서 전력 소모 부분이 추가됨. 이외에도 메모리/입출력 등의 자원 관리도 필요. 




1.3 어떠한 상황에서 개인용 컴퓨터 혹은 단일 사용자 워크스테이션을 사용하는 것보다 시분할 시스템을 사용하는 것이 더 좋은가? 


많은 사용자가 컴퓨터 자원을 공유하면서 각자 전체 컴퓨터를 전용하는 것처럼 시스템을 구성해야 하는 경우에 적합하다. 




1.4 대칭적 다중 처리와 비대칭적 다중 처리의 차이점을 설명하시오. 다중 처리기 시스템의 세 가지 장점과 한 가지 단점은 무엇인가?


비대칭적 다중 처리는 하나의 주 처리기가 시스템을 제어하여 다른 처리기들은 주 처리기의 명령이나 미리 정의된 태스크를 수행하여 주종 관계를 구성함. 주 처리기가 멈추면 다른 처리기도 멈춤. 

대칭적 다중 처리는 비대칭적 다중 처리와 다르게 어느 하나가 리드하고 하는 것 없이 모두 대등하다. 메모리는 처리기 간 공유하되, 각자의 레지스터 집합과 로컬 캐시를 가지고 있음. 다른 처리기의 작동 중지와는 무관하게 작동하나, 다른 CPU 동작에 대해 확인하는 별도의 오버헤드 필요. 


장점 1. 증가된 처리량 

처리기의 수가 증가됨에 따라 처리량이 증가함. 단 처리기의 수가 N개가 된다고 해서 N배의 성능을 내는 것은 아님. 

장점 2. 규모의 경제를 이용한 비용 절약. 

단일 시스템이 각자의 구성 장치들을 가지는 것보다, 하나의 거대한 구성 장치(주변 장치, 대용량 저장 장치, 전원 공급 장치 등)를 공유하는 것이 비용 절약 가능. 

장점 3. 증가된 신뢰성. 

기능들이 여러 처리기에 적절히 분산되어 있으면, 한 처리기의 작동 이상이 발생해도 시스템 정지를 피하고, 속도 저하 수준에서 막을 수 있음. 


단점. 

단일 처리기에 비해서 처리할 양이 많아 오버헤드가 생기고(이것이 장점 1의 N개가 N배의 성능을 내지 못하는 이유), 개발에 어려움이 발생함. 




1.5 클러스터형 시스템과 다중 처리기 시스템의 차이점은 무엇인가? 고가용 서비스를 제공하기 위하여 한 클러스터에 속한 두 컴퓨터가 협력하는 데 필요한 것은 무엇인가? 


클러스터형 시스템은 둘 이상의 독자적인 시스템이나 노드들을 연결해 구성하기 때문에, 처리기를 여러 개로 구성하는 다중 처리기 시스템과는 차이가 있다. 

각 컴퓨터가 서로를 감시하면서 감시받던 것이 고장나면 감시하는 컴퓨터가 대신해서 업무를 수행한다.




1.6 하나의 데이터베이스를 수행하는 두 개의 노드로 구성된 컴퓨팅 클러스터를 고려해보자. 클러스터 소프트웨어가 디스크의 데이터에 대한 접근을 관리하는 두 가지 방법을 설명해 보시오. 각각의 장점과 단점을 논의하시오.


비대칭형 클러스터링(Asymmetric Clustering)

비대칭형 클러스터링에서는 하나의 호스트가 데이터베이스에서 응용 프로그램을 수행하는 동안, 다른 한 컴퓨터는 긴급 대기(hot-stanby) 모드로 단순히 감사하는 작업만을 수행하며, 서버가 고장나는 경우 긴급 대기 모드의 호스트가 활성 서버가 됨. 예비 시스템을 보장해준다는 장점을 가지고 있으나, 두 호스트에 모두 전원이 공급되어야 하므로 전력 소모가 많음.


병렬 클러스터링(Parallel Clustering)

데이터베이스 응용 프로그램에서 두 호스트는 병렬로 실행된다. 공유 디스크의 파일에 분산 잠금 기법을 제공하는 병렬 클러스터를 구현하는 것에 어려움이 있다.




1.7 네트워크 컴퓨터가 전통적 개인용 컴퓨터와 어떻게 다른가? 네트워크 컴퓨터를 사용하는 것이 유리한 사용 시나리오를 설명하시오.


네트워크 컴퓨터는 최소 기능만 갖춘 OS를 가진 상태로, 중앙 서버에서 제공하는 서비스에 전적으로 의존. 독립적인 형태로 구성되는 것이 아니기 때문에 다른 네트워크 컴퓨터로 데이터가 복사될 수 있어 전통적 PC에 비해서 안전하지 않음.

전통적 PC는 별도의 중앙 서버가 없어서 모든 서비스를 제공할 수 있는 독립적인 형태로 구성.

자원이나 자료들을 공유해야 하는 환경에서는 독자적인 PC 환경보다 네트워크 컴퓨터 환경이 더 유리.




1.8 인터럽트의 목적은 무엇인가? 트랩과 인터럽트의 차이점은 무엇인가? 트랩은 사용자 프로그램에 의해 의도적으로 발생할 수 있는가? 만일 그렇다면 그 목적은 무엇인가?


인터럽트는 주변장치와 기타 다른 시스템 프로그램들에 대해서 시스템에게 알리는 CPU 호출로, CPU가 특정 상태일 때 인터럽트는 그 상태를 바꿈. 컴퓨터 아키텍쳐에서 인터럽트는 매우 중요함.


트랩은 소프트웨어가 생성한 인터럽트로 유저 프로그램으로부터 요청이나 에러에 의해서 발생하여 의도적으로 발생할 수 있다. 에러에 의해 발생하는 측면으로 볼 때 예외(Exception)과 트랩은 밀접한 관계로 봄.


참고로, 인터럽트는 하드웨어에서 발생하며 비동기식으로 다뤄져 예측이 불가능한 곳에서 발생하지만, 트랩은 소프트웨어가 만들고 동기적으로 다뤄져서 예측 가능한 곳에서 발생한다.




1.9 CPU의 실행 부하가 증가하는 것을 피하기 위하여 직접 메모리 액세스 방식이 고속 입출력 장치에 사용된다.


a. 전송을 조율하기 위하여 CPU는 어떻게 장치와 인터페이스 하는가?

CPU는 장치에서 독립적으로 접근할 수 있는 특수 레지스터에 값을 기록해 DMA 작동을 시작하게 할 수 있음.

b. CPU는 메모리 연산이 종료되었음을 어떻게 알 수 있는가?

디바이스 컨트롤러가 CPU에 인터럽트를 보냄.

c. DMA가 데이터를 전송하는 동안 CPU는 다른 프로그램을 실행할 수 있다. 이 프로세스는 사용자 프로그램의 실행을 방해하는가? 만일 그렇다면 어떤 형태의 방해가 발생하는가?

장치와 CPU가 동시에 메모리에 접근할 수 있는데, 메모리 관리자는 이 때 둘 모두에게 공정한 메모리 버스에 대한 공정한 접근을 제공함. 메모리 버스에 접근 권한을 획득하기 위해서 CPU는 다른 장치와 경쟁해야 하는데 이로 인해서 최고 속도로 메모리 연산을 실행하지 못할 수 있음.




1.10 일부 컴퓨터 시스템은 특권 모드 연산을 하드웨어로 제공하지 않는다. 이러한 컴퓨터에 안전한 운영체제를 구축할수 있는지를 고려해 보라. 그것의 가능, 불가능 모두에 대한 논거를 제시하시오.


a. BASIC이나 자바, LISP 시스템 같은 모든 유저 프로그램의 소프트웨어에 대한 인터프리터 이용. 소프트웨어 인터프리터는 소프트웨어에서 하드웨어가 제공하지 않는 것을 제공함.

b. 모든 프로그램을 고급 언어로 작성. 따라서 모든 오브젝트 코드는 컴파일러에 의해 생성됨. 컴파일러는 인라인이나 함수 호출 방식으로 하드웨어 누락여부에 대한 보호 검사를 생성함.




1.11 많은 SMP 시스템은 다른 수준의 캐시를 갖는다. 한 수준은 각 처리 코어에 로컬하고 다른 수준은 모든 처리 코어가 공유한다. 왜 캐싱 시스템을 이렇게 설계했는가?


다양한 수준들은 크기만이 아니라 접근 속도에 따라 달라짐. 일반적으로 캐시가 CPU에 가까워질수록 더 빠르게 접근할 수 있으나, 이는 더 많은 비용을 요구함. 따라서, 작고 빠른 캐시는 각 CPU의 로컬에 존재하고, 속도는 느리나 큰 공유 캐시가 여러 프로세스 간에 공유됨.




1.12 그림 1.6에 보인 것과 비슷한 SMP 시스템을 고려해 보자. 메모리에 저장된 데이터가 각 로컬 캐시에 다른 값을 가질 수 있는 지를 예를 들어 그림으로 보여라.


CPU1에서 10이라는 값이 담긴 A라는 데이터를 메인 메모리로부터 자신의 로컬 캐시로 읽어옴. 이와 비슷하게 CPU2에서 데이터 A를 그것의 로컬 캐시에 읽어들임. CPU1에서 A를 10으로 데이터값을 바꿨을 때, CPU1의 로컬 캐시에 있는 A만 바뀌고, CPU2의 로컬  캐시에 있는 A는 바뀌지 않음.




1.13 아래와 같은 처리 환경에서 어느 경우 캐시 데이터의 일관성 문제가 발생하는지 예를 들어 설명하시오.

a. 단일 처리기 시스템

단일 처리기 시스템에서는 메모리는 프로세스가 캐싱된 값들을 업데이트할 때 메모리 또한 업데이트할 필요가 있음. 이런 업데이트는 즉시 혹은 느리게 수행할 수 있음.


b. 다중 처리기 시스템

다중 처리기 시스템에서 다른 프로세서들은 자신들의 로컬 캐시에서 같은 메모리 영역을 캐싱할 것임. 업데이트가 생성되면, 다른 캐싱 위치들은 무효화되고 업데이트되어야 함.


c. 분산 시스템

분산 시스템은 캐싱된 메모리 값들의 일관성은 쟁점이 아님. 그러나 일관성 문제들은 클라이언트가 파일 데이터를 캐싱할 때, 발생할 수 있음.




1.14 한 프로그램이 다른 프로그램이 사용하는 메모리를 변경하는 것을 막기 위하여 사용되는 메모리 보호 기법을 설명하시오.

프로세서는 각각의 프로세스에 관련된 위치를 추척하고, 프로그램의 범위를 벗어나는 위치에 대해서 접근을 제한할 수 있음. 기본 레지스터와 제한 레지스터를 사용하고, 모든 메모리 접근에 대해 체크하는 것을 통해 프로그램의 메모리 범위에 대해 정보를 유지할 수 있음.




1.15 LAN과 WAN 중에서 아래의 환경에 가장 적합한 네트워크 구성은 무엇인가?

a. 대학 캠퍼스의 학생회관

LAN


b. 전체 주에 퍼져있는 다수의 대학의 캠퍼스

WAN


c. 하나의 동네(예로 하나의 동 단위)

WAN




1.16 휴대용 장치의 운영체제를 설계할 때 고려 사항을 전통적 PC의 운영체제 설계와 비교하여 설명해 보시오.

- 전통적 PC에 비해 적은 용량으로, 메모리 관리를 보다 세심하게 해야 함.

- 전력원이 배터리기 때문에 전력소모량도 최대한 관리해야 함.

- 프로세서 개별의 성능이 떨어지고, 수도 적기 때문에 응용 프로그램에 대해 프로세서를 적절히 배분해야 함.




1.17 클라이언트 서버 시스템에 비해 피어 간 시스템의 장점은 무엇인가?

Peer-to-peer 시스템은 서비스 자체가 피어들의 집합을 통해서 분산되어 있기 때문에 중앙에 서버를 두고 개별로 존재하는 것보다 더 유용하다.

P2P는 내결함성과 무결성을 제공함. 피어들이 지속적으로 이동하기 때문에 항상 인터넷 공간에서 알려진 위치에 존재하는 서버보다 더 높은 보안을 제공함.

P2P 시스템은 피어들의 모든 대역폭을 모아서 사용할 수 있기 때문에 단일 서버의 제한된 대역폭에 비해서 더 많은 네트워크 대역폭을 제공할 수 있음.




1.18 피어간 시스템에 적합한 분산 응용을 다수 설명해보시오.

파일 서비스, DNS 같은 분산 디렉토리 서비스, 분산 이메일 서비스 같은 서비스들에 적합.




1.19 오픈소스 운영체제의 여러 장점과 단점을 열거하시오. 각 측면을 장점 또는 단점이라고 생각할 수 있는 사람들의 유형도 포함시키시오.

오픈소스 OS는 많은 사람들이 그것을 작업하고 디버깅하면서 빠른 업데이트 사이클을 취할 수 있음. 학생부터 프로그래머까지 소스코드를 수정하고 볼 수 있음. 일반적으로 오픈소스 OS는 무료로 제공되고, 대개 지원서비스에 대해 비용을 지불하는 방식을 취함.

상용 OS 회사들은 이런 부분에서 오픈소스 OS와의 경쟁을 꺼림.

오픈소스 OS는 코딩에 있어 규칙이 부족할 수 있는데, 이로 인해 후방호환성이 업그레이드를 어렵게 하고, 잦은 릴리즈 사이클이 사용자에게 업그레이드를 강요하게끔 하는 문제를 발생시킬 수 있음.

728x90