개발/잡다개발

OS

----___<<<<< 2020. 5. 5. 18:27

 

Clustered System 이란 여러대의 컴퓨터가 결합된 형태고

multiprocessor system이란 다양한 CPU가 결합된 하나의 시스템입니다.

 

Clustered System과 Multiprocessor system이 결합되려면 공유된 저장소나 매번 업데이트가 필요합니다.

 

CPU의 실행로드가 증가하지 않게 Direct memory access가 I/O장지체 직접 메모리 액세스가 사용됩니다.

 

 - CPU는 디바이스와 어떻게 인터페이스하여 전송을 조정합니까?

 DMA(direct memory access)는 전송 대상에 대한 포인터를 포함하는 레지스터를 설정하고, DMA컨트롤러는 버스에 주소를 배치하여 전송을 수행합니다.

 

- 메모리 작업이 완료된 시점을 CPU가 어떻게 알 수 있습니까?

DMA 컨트롤러가 CPU를 중지합니다.

 

- DMA가 데이터를 전송하는 동안, CPU는 다른 프로그램을 싱행하는데, 이 프로세스가 프로그램 실행을 방해하나?

DMA컨트롤러와 CPU가 동시에 동일한 위치를 업데이트 하면 일관성 문제가 발생합니다.

 

시스템콜(System call)이라는 것은 OS에서 커널의 자원을 이용할 수 있게 합니다.

커널이라는 애는 보안, 자원관리, 추상화를 처리합니다.

 

파일 장치 조작을 위해 동일한 시스템콜을 사용하면 문제는?

장점 - API를 지원하도록 작성될 수 있는 장치드라이버 코드 개발에 도움됩니다.

단점 - 동일 인터페이스를 사용하면 컨텍스트 내에 특정장치 기능을 캡처하기 어렵습니다.

 

프로세스 통신의 두가지 모델은? 그리고 장단점은?

 

공유 메모리 모델 - Shared memory Model

여러 프로세스에서 동시에 엑세스 할 수 있는 메모리

 

장점 - 메모리 통신이 빠릅니다.

단점 - 동기화나 메모리 보호 문제가 발생할 수 있습니다.

 

메세지 전달 모델 - Message Passing Model

메세지큐(message queue)를 이용해서 통신합니다. 

 

장점 - 구현하기가 쉽습니다.

단점 - 통신 속도가 느립니다.

 

메세지큐란?

 

메세지큐는 비동기 메세지를 사용하는 응용 프로그램 사이에서 데이터를 주고받는 방법입니다.

 

메시지 큐의 장점

 - 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다.

 - 비동조(Decoupling): 애츨리케이션과 분리할 수 있습니다.

 - 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다.

 - 과잉(Redundancy): 실패할 경우 재실행 가능합니다.

 - 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다.

 - 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다.

 

메시지 큐 사용처

 - 다른 곳의 API로 부터 데이터 송수신이 가능합니다.

 - 다양한 애플리케이션에서 비동기 통신을 할 수 있습니다.

 - 이메일 발송 및 문서 업로드가 가능합니다.

 - 많은 양의 프로세스들을 처리할 수 있습니다.

 

마이크로 커널 

 

마이크로커널(microkernel)은 컴퓨터 과학에서 운영 체제에 추가되어야 하는 메커니즘을 최소한으로 제공하는 초소형 커널이다. 이러한 미니멀리티 메커니즘에는 낮은 수준의 주소 공간 관리, 스레드 관리, 프로세스 간 통신(IPC)을 포함한다. 하드웨어가 여러 개의  CPU 모드를 제공한다면 마이크로커널은 최고 권한 수준(일반적으로 수퍼바이저 및 커널 모드로 부름)에서 실행되는 유일한 소프트웨어가 된다. 소스 코드 크기 측면에서 마이크로커널은 일반적으로 10,000줄 이하의 코드를 지니는 경향이 있다. 이를테면 미닉스 3의 경우 6,000줄 이하의 코드가 있다.[1]

 

마이크로 서커널 접근의 장점과 단점

 

통신방식 

inter-process 커머뮤니케이션

 

장점

- 서비스 추가시 커널을 수정할 필요가 없습니다.

- 사용자 모드에서 안전합니다.

 

단점

- 메세징 기능의 빈번한 사용과 오버헤드(느려짐)

 

 

 

출처

[1] - https://12bme.tistory.com/176

[1] - https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%BB%A4%EB%84%90

 

 




 

 

 

'개발 > 잡다개발' 카테고리의 다른 글

Deadlock  (0) 2020.05.07
OS - 2  (0) 2020.05.05
하이젠버그(Heisenbugs)  (0) 2020.04.22
아두이노란  (0) 2020.04.12
IP  (0) 2020.04.09