분산 운영 체제
Distributed operating system분산 운영 체제는 독립적이고 네트워크화된 통신 및 물리적으로 분리된 컴퓨팅 노드의 모음 위에 있는 시스템 소프트웨어다.그들은 여러 CPU에 의해 서비스되는 작업을 처리한다.[1]각 개별 노드는 글로벌 애그리게이트 운영 체제의 특정 소프트웨어 서브셋을 보유한다.각 하위 집합은 두 개의 서로 다른 서비스 제공업체의 합성어다.[2]첫 번째는 해당 노드의 하드웨어를 직접 제어하는 유비쿼터스 미니멀 커널, 즉 마이크로커널이다.두 번째는 노드의 개별적이고 협력적인 활동을 조정하는 시스템 관리 요소의 상위 집합이다.이러한 구성요소는 마이크로커널 기능을 추상화하고 사용자 애플리케이션을 지원한다.[3]
마이크로커널과 관리 컴포넌트 컬렉션이 함께 작동한다.그들은 다중 자원과 처리 기능을 효율적이고 안정적인 시스템으로 통합하려는 시스템의 목표를 지지한다.[4]개별 노드를 글로벌 시스템에 원활하게 통합하는 것을 투명성, 즉 단일 시스템 이미지라고 하며, 글로벌 시스템의 외관 사용자에게 제공되는 환상을 단일 계산 실체로 기술한다.
설명
분산 OS는 OS에 필요한 필수 서비스와 기능을 제공하지만, 확장 및 가용성 증대와 같은 추가 요구사항을 지원할 수 있도록 속성과 특정 구성을 추가한다.사용자에게 분산 OS는 단일 노드의 단일 운영 체제와 유사한 방식으로 작동한다.즉, 여러 개의 노드로 구성되지만 사용자와 애플리케이션에 단일 노드로 나타난다.
최소한의 시스템 수준의 기능성을 추가적인 사용자 레벨 모듈형 서비스와 분리하면 "메커니즘과 정책의 분리"를 제공한다.메커니즘과 정책은 각각 "무엇이 어떻게 이루어지는가" 대 "어떻게 이루어지는가"로 간단히 해석될 수 있다.이러한 분리는 유연성과 확장성을 높인다.
개요
낟알
각 로케일(일반적으로 노드)에서 커널은 노드의 기본 하드웨어 및 리소스 운영에 필요한 최소 전체 노드 레벨 유틸리티 세트를 제공한다.이러한 메커니즘에는 노드의 자원, 프로세스, 통신 및 입출력 관리 지원 기능의 할당, 관리 및 처분이 포함된다.[5]커널 내에서, 통신 하위 시스템은 분산 OS에서 가장 중요하다.[3]
분산 OS에서 커널은 낮은 수준의 주소 공간 관리, 스레드 관리, 프로세스 간 통신(IPC) 등 최소한의 기능만 지원하는 경우가 많다.이 디자인의 커널을 마이크로커널이라고 한다.[6][7]그것의 모듈형 특성은 분산된 OS에 필수적인 기능인 신뢰성과 보안을 강화한다.[8]
시스템 관리
시스템 관리 구성요소는 노드의 정책을 정의하는 소프트웨어 프로세스다.이러한 구성 요소는 커널 외부의 OS 부분이다.이러한 구성요소는 더 높은 수준의 통신, 프로세스 및 자원 관리, 신뢰성, 성능 및 보안을 제공한다.구성 요소는 분산 환경에서 요구되는 투명성을 추가하면서 단일 엔티티 시스템의 기능과 일치한다.[3]
OS의 분산 특성은 글로벌 시스템에 대한 노드의 책임을 지원하기 위한 추가 서비스를 필요로 한다.또한, 시스템 관리 구성요소는 신뢰성, 가용성 및 지속성의 "방어적" 책임을 수용한다.이러한 책임들은 서로 상충될 수 있다.일관성 있는 접근법, 균형 잡힌 관점, 그리고 전체적인 시스템에 대한 깊은 이해는 감소하는 수익을 식별하는 데 도움이 될 수 있다.정책과 메커니즘의 분리는 그러한 갈등을 완화시킨다.[9]
운영 체제로 함께 작업
분산 운영 체제의 아키텍처와 설계는 개별 노드와 글로벌 시스템 목표를 모두 실현해야 한다.구조와 설계는 정책과 메커니즘을 분리하는 것과 일관된 방식으로 접근해야 한다.이를 통해 분산 운영 체제는 효율적이고 신뢰할 수 있는 분산 컴퓨팅 프레임워크를 제공함으로써 기본 명령어와 제어 노력에 대한 사용자 인식을 절대적으로 최소화할 수 있도록 시도한다.[8]
커널과 시스템 관리 컴포넌트 간의 다단계 협업, 그리고 분산 운영체제의 구별되는 노드들 간의 협력은 분산 운영체제의 기능적 난제다.이것은 목적의 완벽한 조화를 유지하고 동시에 실행과 의지의 완전한 단절을 유지해야 하는 제도상의 요점이다.이 과제는 분산 운영 체제가 신뢰할 수 있고 효율적이며 가용성이 높고 강력하며 확장 가능하고 확장 가능한 시스템을 위한 기반과 프레임워크를 만들 수 있는 기회다.그러나, 이 기회는 복잡함에 있어서 매우 높은 비용으로 온다.
복잡성의 가격
분산된 운영 체제에서, 예외적인 수준의 내재적 복잡성은 모든 사용자에게 시스템 전체를 쉽게 아나테마로 만들 수 있다.이와 같이 분산 운영 체제를 실현하는 논리적 대가는 여러 분야에서, 그리고 여러 수준에서 방대한 복잡성을 극복하는 관점에서 계산되어야 한다.이 계산은 가장 완만한 구현을 달성하는 데 필요한 설계 투자와 아키텍처 계획의 깊이, 폭 및 범위를 포함한다.[10]
이러한 설계 및 개발 고려사항은 중요하고 용서할 수 없다.예를 들어, 분산 운영 체제의 전반적인 아키텍처 및 설계 세부사항에 대한 심층적인 이해가 예외적으로 초기 단계에서 요구된다.[1]설계 고려사항의 소모적인 배열은 분산 운영 체제의 개발에 내재되어 있다.이러한 각 설계 고려사항은 다른 많은 설계에 상당한 영향을 미칠 수 있다.이는 개별적인 설계 고려사항과 많은 순열 측면에서 균형 잡힌 접근방식에 대한 엄청난 노력으로 이어진다.이러한 노력의 보조 수단으로, 대부분은 분산 컴퓨팅 능력에 대한 문서화된 경험과 연구에 의존한다.
역사
연구와 실험 노력은 1970년대부터 본격적으로 시작되어 1990년대까지 계속되었으며, 1980년대 후반에 관심이 집중되었다.이 기간 동안 다수의 분산 운영 체제가 도입되었지만, 이러한 구현 중 극히 적은 수의 구현만이 상업적 성공을 달성했다.
원시 분산 운영 체제 구성요소 개념의 근본적이고 선구적인 구현은 1950년대 초까지 거슬러 올라간다.[11][12][13]이러한 개별 단계 중 일부는 분산 컴퓨팅에 직접 초점을 맞추지 않았고, 그 당시에는 많은 사람들이 자신의 중요한 영향을 깨닫지 못했을 것이다.이러한 선구적인 노력은 중요한 토대를 마련했고, 분산 컴퓨팅과 관련된 분야에 대한 지속적인 연구에 영감을 주었다.[14][15][16][17][18][19]
1970년대 중반, 연구는 분산 컴퓨팅에서 중요한 발전을 이루었다.이러한 돌파구는 1990년대까지 지속된 노력에 견고하고 안정적인 기반을 제공했다.
멀티프로세서와 멀티코어 프로세서 시스템 연구의 가속화는 분산된 OS 개념의 부활로 이어졌다.
1950년대
DYSEAC
첫 번째 노력 중 하나는 범용 동기식 컴퓨터인 DYSEAC이다.1954년 4월, 컴퓨터 기계 협회의 초창기 간행물 중 하나에서, 현재 국립표준기술연구소(NIST)인 국가표준국의 연구원이 DYSEAC의 상세한 사양을 발표했다.도입부는 유연한 통신을 포함한 의도된 애플리케이션의 요구 사항에 초점을 맞추었으나, 다른 컴퓨터도 언급하였다.
마지막으로, 외부 장치는 DYSEAC와 동일한 디지털 언어를 사용하는 다른 풀스케일 컴퓨터도 포함할 수 있다.예를 들어, SEAC 또는 이와 유사한 다른 컴퓨터를 DYSEAC에 사용할 수 있고, 조정된 프로그램을 사용하여 공통 작업에 대해 상호 협력하도록 만들 수 있다.결과적으로 [,] 컴퓨터는 모든 외부 장치의 다양한 활동을 효과적으로 앙상블 작동으로 조정하는 데 사용될 수 있다.
— ALAN L. LEINER, System Specifications for the DYSEAC
명세서는 마스터 슬레이브보다는 피어투피어를 선호하는 멀티 컴퓨터 시스템의 아키텍처를 논의하였다.
이와 같이 서로 연결된 개별 컴퓨터 그룹의 각 구성원은 시스템 내의 파트너에게 특별 통제 명령을 시작하고 발송할 수 있는 자유가 있다.그 결과, 공통 업무에 대한 감독 통제는 처음에는 시스템 전체에 느슨하게 분산된 다음 일시적으로 한 컴퓨터에 집중되거나, 심지어 필요에 따라 한 기계에서 다른 기계로 빠르게 전달될 수 있다.…설명된 다양한 중단 설비는 컴퓨터와 그것에 대한 외부 장치 자회사 간의 상호 협력을 기반으로 하며, 단순한 마스터-컨트롤 관계를 반영하지 않는다.
— ALAN L. LEINER, System Specifications for the DYSEAC
이것은 분산된 제어 기능을 가진 컴퓨터의 가장 초기 사례 중 하나이다.육군성 보고서는[20] 그것이 믿을 만하고 1954년 4월에 모든 합격 시험을 통과했다고 증명했다.그것은 1954년 5월에 완성되어 제 시간에 배달되었다.이것은 트랙터트레일러에 들어 있는 '휴대용 컴퓨터'로, 수행 차량 2대와 냉장 용량 6톤을 갖추고 있었다.
링컨 TX-2
실험적인 입출력 시스템으로 묘사된 링컨 TX-2는 유연한 동시에 작동하는 입출력 장치, 즉 멀티프로그래밍을 강조했다.TX-2의 설계는 모듈화되어 높은 수준의 수정과 확장을 지원하였다.[12]
그 시스템은 다단계 프로그램 기법을 채택했다.이 기법은 프로그램 코드의 가능한 32개 시퀀스 중 하나와 각 연관되는 여러 프로그램 카운터를 허용했다.명시적으로 우선순위가 지정된 이러한 시퀀스는 인터리브 및 동시에 실행될 수 있으며, 이는 프로세스 내 계산뿐만 아니라 시퀀스의 제어 흐름과 장치의 스위칭에도 영향을 미칠 수 있다.장치 시퀀싱과 관련된 많은 논의.
DYSEAC와 마찬가지로 TX-2는 별도로 프로그래밍된 장치가 동시에 작동할 수 있어 처리량이 증가한다.중앙부대의 전력은 어떤 장치라도 이용할 수 있었다.TX-2는 분산된 제어장치를 보여주는 시스템의 또 다른 예로서, 그것의 중심 장치는 전용 제어장치를 가지고 있지 않다.
인터커뮤니케이션 셀
기억 접속을 추상화하기 위한 초기 노력 중 하나는 세포간 의사소통이었다. 여기서 세포는 기억 요소들의 집합으로 구성되었다.메모리 요소는 기본적으로 이진 전자 플립 플립 플롭 또는 릴레이였다.세포 안에는 기호와 세포라는 두 종류의 원소가 있었다.각 셀 구조는 이름과 매개변수 집합으로 구성된 일련의 기호에 데이터를 저장한다.정보는 세포 연결을 통해 연결된다.[13]
그 이론은 연설이 낭비적이고 가치 없는 방향성의 수준이라고 주장했다.정보는 직접 및 교차 검색의 두 가지 방법으로 접근되었다.직접 검색은 이름을 수락하고 매개 변수 세트를 반환한다.교차 검색은 매개변수 집합을 통해 투영되고 매개변수의 지정된 하위 집합을 포함하는 이름 집합을 반환한다.이는 각 키(이름)에 대해 여러 값(모수)을 허용하는 수정된 해시 테이블 데이터 구조와 유사했다.
셀룰러 메모리는 많은 장점을 가지고 있다. | ||
![]() | 시스템 논리의 주요 부분은 셀에 저장된 정보의 연관성에 분포한다. | |
![]() | 이러한 정보 연관성의 흐름은 저장 및 검색의 행위에 의해 어느 정도 안내된다. | |
![]() | 저장 및 검색에 필요한 시간은 대부분 일정하며 메모리의 크기 및 충만 요소와는 전혀 관련이 없다. | |
![]() | 세포는 논리적으로 분간할 수 없어 사용이 유연하고 크기가 비교적 간단하다. |
이 구성은 분산형 시스템에 이상적이었다.저장과 검색을 위한 메모리를 통한 일정한 시간 투영은 본질적으로 원자적이고 배타적이었다.셀룰러 메모리의 본질적인 분산 특성은 매우 귀중할 것이다.사용자, 하드웨어/기기 또는 애플리케이션 프로그래밍 인터페이스에 미치는 영향은 간접적이었다.저자들은 다음과 같이 말하면서 분산된 시스템을 고려하고 있었다.
우리는 여기에 ...와 함께 분산된 논리 시스템의 기본 이념을 제시하고자 했다.스캔, 검색, 주소 지정, 계산에서 벗어난 논리 설계의 거시적 개념도 마찬가지로 중요하다.우리는 어떤 대가를 치르더라도 기계의 진화적 규모에 비해 낮은 기계에만 적합한 상세한 국부적 문제의 부담에서 벗어나야 한다.
— Chung-Yeol (C. Y.) Lee, Intercommunicating Cells, Basis for a Distributed Logic Computer
기초작업
일관된 메모리 추상화
공유 메모리 멀티프로세서에서 확장 가능한 동기화를 위한 알고리즘
파일 시스템 추상화
분산 파일 시스템[22] 측정
공유 가상 메모리 시스템의 메모리 일관성
트랜잭션 추상화
트랜잭션
사가스
트랜잭션 메모리
복합 메모리 트랜잭션[25]
트랜잭션 메모리: 잠금 없는 데이터 구조를 위한 아키텍처 지원
동적 크기 데이터 구조를[27] 위한 소프트웨어 트랜잭션 메모리
소프트웨어 트랜잭션 메모리[28]
지속성 추상화
OceanStore: 글로벌 규모의 영구 스토리지를 위한 아키텍처
코디네이터 추상화
복제된 데이터에 대한 가중 투표
부분 동기화가 존재하는 경우 합의
신뢰성 추상화
온전성 검사
비잔틴 장군 문제
Fail-Stop 프로세서: 내결함성 컴퓨팅 시스템 설계 방법
복구 가능성
분산 스냅샷: 분산 시스템의[34] 글로벌 상태 확인
분산 시스템의 낙관적 복구
분산 컴퓨팅 모델
이 섹션은 검증을 위해 추가 인용구가 필요하다.(2012년 1월) (이 를 과 시기 |
세 가지 기본 분포
이 점을 더 잘 설명하려면 중앙 집중식, 분산형 및 분산형 세 가지 시스템 아키텍처를 검토하십시오.이 검사에서 조직, 연결 및 제어의 세 가지 구조적 측면을 고려하십시오.조직은 시스템의 물리적 배치 특성을 설명한다.연결은 노드 간의 통신 경로를 포괄한다.제어는 앞의 두 가지 고려사항의 작동을 관리한다.
조직
중앙집중식 시스템은 모든 구성 요소가 직접적으로 단일 제어 요소에 의존하는 한 수준의 구조를 가지고 있다.분산형 시스템은 계층적이다.하위 수준은 시스템 엔티티의 하위 집합이다.이러한 실체는 차례로 더 높은 수준에서 결합되며, 결국 중심 마스터 요소로 절정에 이른다.분산형 시스템은 수준 개념이 없는 자율적 요소의 집합이다.
연결
중앙집중식 시스템은 구성원을 허브의 중앙 마스터 엔티티에 직접 연결하고 스포크 패션으로 연결한다.분산형 시스템(일명 네트워크 시스템)은 구성 요소와 중심 개체 사이의 직간접 경로를 통합한다.일반적으로 이것은 두 요소 사이에 하나의 최단 경로만 있는 계층 구조로 구성된다.마지막으로, 분산 운영체제는 패턴을 필요로 하지 않는다. 두 요소들 사이에 직접적 및 간접적 연결이 가능하다.1970년대의 「현악」이나 스피로그래프 드로잉(spirograph drawing) 현상을 완전연계 시스템으로, 미국 도시들 사이의 거미줄이나 주간 고속도로 시스템을 부분연계된 시스템의 예로 생각해 보자.
컨트롤
중앙집중식 및 분산형 시스템은 중앙 실체를 오가는 연결 흐름을 지시하는 한편 분산형 시스템은 임의 경로를 따라 통신한다.이것이 제3차 고려의 중추적 개념이다.제어는 효율성, 대응성 및 복잡성의 균형을 유지하는 시스템 요소에 작업과 데이터를 할당하는 것을 포함한다.
중앙 집중식 및 분산형 시스템은 더 많은 제어 기능을 제공하므로 옵션을 제한함으로써 관리를 완화할 수 있다.분산형 시스템은 명시적으로 제어하기가 더 어렵지만 수평적으로 더 잘 확장되고 시스템 전체에서 더 적은 장애 지점을 제공한다.협회는 그 설계에 의해 부과된 요구에 부합하지만 조직적 혼란에 의해 부과되지 않는다.
설계 고려사항
투명성
투명성 또는 단일 시스템 이미지란 하드웨어 또는 그 밖의 구현 세부사항과 무관하게, 분산 여부와 무관하게 운영되는 시스템을 처리할 수 있는 애플리케이션의 능력을 말한다.시스템의 많은 영역은 접근, 위치, 성능, 명명 및 마이그레이션을 포함한 투명성의 혜택을 받을 수 있다.투명성에 대한 고려는 분산 운영 체제의 설계의 모든 측면에서 의사결정에 직접적인 영향을 미친다.투명성은 다른 설계 고려사항에 특정한 요건 및/또는 제한을 가할 수 있다.
시스템은 특정 애플리케이션 요구사항을 충족하기 위해 선택적으로 투명성을 다양한 수준으로 침해할 수 있다.예를 들어 분산 운영 체제는 한 컴퓨터의 하드 드라이브를 "C:"로, 다른 컴퓨터의 드라이브는 "G:"로 나타낼 수 있다.사용자는 기기 드라이버나 드라이브의 위치에 대한 지식이 필요하지 않다. 두 기기는 애플리케이션의 관점에서 동일한 방식으로 작동한다.덜 투명한 인터페이스는 응용 프로그램이 드라이브를 호스트하는 컴퓨터를 알아야 할 수 있다.투명 도메인:
- 위치 투명성 – 위치 투명성은 투명성과 사용자 이동성의 두 가지 뚜렷한 측면으로 구성된다.투명성을 명명하기 위해서는 어떤 시스템 실체에 대한 물리적 또는 논리적 참고문헌의 어떤 것도 기업의 위치나 사용자나 적용에 대한 지역적 또는 원격적 관계에 대한 표시를 노출해서는 안 된다.사용자 이동성은 참조가 시작되는 시스템 위치와 관계없이 시스템 엔티티를 일관성 있게 참조할 것을 요구한다.[8]: 20
- 액세스 투명성 – 로컬 및 원격 시스템 엔티티는 사용자 인터페이스를 통해 볼 때 구별할 수 없는 상태로 유지되어야 한다.분산 운영 체제는 시스템 실체가 사용자에게 로컬이든 원격이든 관계없이 시스템 실체에 대한 단일 액세스 메커니즘의 노출을 통해 이러한 인식을 유지한다.투명성은 특정 시스템 실체(로컬이든 원격이든)에 접근하는 방법의 차이가 사용자에게 보이지 않아야 하며 사용자가 탐지할 수 없어야 함을 지시한다.[3]: 84
- 마이그레이션 투명성 – 리소스 및 활동은 사용자/애플리케이션 지식이나 조치 없이 시스템만 제어하는 다른 요소로 이동한다.[36]: 16
- 복제 투명성 – 리소스가 다른 요소에 복제된 프로세스 또는 사실은 사용자/애플리케이션 지식 또는 개입 없이 시스템 제어 하에 발생한다.[36]: 16
- 동시성 투명성 – 사용자/애플리케이션은 다른 사용자의 존재/활동에 영향을 받지 않는다.[36]: 16
- 장애 투명성 – 시스템은 시스템 장애의 감지 및 교정 작업을 담당한다.시스템이 문제를 해결하기를 기다리는 것 외에는 사용자 지식/행동이 관련되지 않는다.[9]: 30
- 성능 투명성 – 시스템은 국지적 또는 전지구적 성능 부족을 감지하고 교정할 책임이 있다.시스템 정책은 일부 사용자/사용자 클래스/태스크를 다른 사용자보다 선호할 수 있다는 점에 유의하십시오.사용자 지식 또는 상호 작용 없음.연루되어 있다.[8]: 23
- 크기/규모 투명성 – 시스템은 필요한 사용자 지식이나 상호 작용 없이 지리적 범위, 노드 수, 노드 기능 수준을 관리할 책임이 있다.[8]: 23
- 개정 투명성 – 시스템은 사용자 지식이나 조치 없이 시스템 인프라에 대한 업그레이드 및 수정과 변경을 책임진다.[9]: 30
- 제어 투명성 – 시스템은 모든 시스템 정보, 상수, 속성, 구성 설정 등을 일관된 외관, 함축, 모든 사용자와 애플리케이션에 제공하는 책임을 진다.[3]: 84
- 데이터 투명성 – 시스템은 사용자 지식이나 시스템이 데이터를 저장하는 위치와 관련된 조치 없이 애플리케이션에 데이터를 제공할 책임이 있다.[3]: 85
- 병렬 처리 투명성 – 시스템은 사용자 지식이나 상호 작용 없이 작업 실행을 병렬화할 수 있는 모든 기능을 이용할 책임이 있다.거의 틀림없이 투명성의 가장 어려운 측면이며, Tanenbaum에 의해 분산된 시스템 설계자들에게 "Holly grail"이라고 묘사되었다.[37]: 23–25
프로세스 간 통신
IPC(Process Inter-Process Communication)는 노드 내의 스레드 및/또는 프로세스와 분산 OS 내의 노드 사이의 일반적인 통신, 프로세스 상호작용 및 데이터 흐름의 구현이다.노드 내부 및 노드 간 통신 요건은 낮은 수준의 IPC 설계를 추진하는데, 이는 투명성을 지원하는 통신 기능을 구현하는 전형적인 접근방식이다.이러한 의미에서, 인터프로세스 통신은 분산 운영체제의 낮은 수준의 설계 고려사항에서 가장 큰 기본 개념이다.
공정관리
프로세스 관리는 분산 프로세스 간의 효율적이고 효율적인 리소스 공유를 위한 정책과 메커니즘을 제공한다.이러한 정책과 메커니즘은 프로세스와 포트를 프로세서에 할당 및 할당 해제하고 실행, 일시 중단, 마이그레이션, 중지 또는 재개하는 메커니즘을 포함하는 작업을 지원한다.이러한 리소스와 운영은 서로에 대해 로컬 또는 원격일 수 있지만 분산 OS는 시스템의 모든 프로세스에 대해 상태와 동기화를 유지한다.
예를 들어 로드 밸런싱은 일반적인 프로세스 관리 기능이다.로드 밸런싱은 노드 성능을 모니터링하며 시스템이 균형을 잃었을 때 노드 간에 활동을 이동하는 역할을 한다.한 가지 부하 분산 기능은 이동할 프로세스를 선택하는 것이다.커널은 우선순위 기반 선택을 포함하여 몇 가지 선택 메커니즘을 사용할 수 있다.이 메커니즘은 '가장 새로운 요청'과 같은 정책을 기반으로 프로세스를 선택한다.시스템이 정책을 구현함
자원관리
메모리, 파일, 장치 등과 같은 시스템 자원은 시스템 전체에 분산되어 있으며, 이러한 노드 중 어느 것이든 유휴 작업 부하에 가벼운 영향을 미칠 수 있다.로드 공유 및 로드 밸런싱에는 유휴 CPU 찾기부터 이동 시기, 이동 대상 등 정책 중심의 결정이 많이 필요하다.이러한 결정을 돕기 위해 많은 알고리즘이 존재하지만, 이는 시나리오와 시나리오를 둘러싼 조건에 가장 적합한 알고리즘을 선택하는 데 있어 2차 수준의 의사결정 정책이 필요하다.
신뢰성.
분산 OS는 높은 수준의 신뢰성을 달성하는 데 필요한 리소스와 서비스를 제공하거나 오류를 방지하거나 복구하는 기능을 제공할 수 있다.결함은 시스템에 오류를 발생시킬 수 있는 물리적 또는 논리적 결함을 말한다.시스템이 신뢰할 수 있으려면 결함의 부작용을 어떻게든 극복해야 한다.
결함에 대처하는 주요 방법으로는 결함 회피, 내결함성, 결함 감지 및 복구 등이 있다.결함 회피는 결함 발생을 최소화하기 위해 취해진 사전 조치를 포함한다.이러한 사전 예방적 조치는 트랜잭션, 복제 및 백업의 형태로 이루어질 수 있다.내결함성은 고장 발생 시 시스템이 계속 작동할 수 있는 능력이다.이 경우 시스템은 전체 기능을 감지하고 복구해야 한다.어떤 경우에도 취한 모든 조치는 단일 시스템 이미지를 보존하기 위해 모든 노력을 기울여야 한다.
유용성
가용성은 시스템이 요청에 응답할 수 있는 시간의 일부분이다.
퍼포먼스
많은 벤치마크 메트릭이 성능을 계량화한다; 처리량, 응답 시간, 단위 시간당 작업 완료, 시스템 활용도 등.분산된 OS에 관해서, 성능은 종종 프로세스 병렬화와 IPC 사이의 균형으로 확장된다.[citation needed]지원에 필요한 메시지와 관련하여 병렬 처리의 작업 세분화를 합리적인 수준에서 관리하는 것은 매우 효과적이다.[citation needed]또한, 데이터를 복사하는 것보다 프로세스를 데이터로 마이그레이션하는 것이 언제 더 이로운지를 파악하는 것도 효과적이다.[citation needed]
동기화
협력하는 동시 프로세스는 동기화가 본질적으로 필요하며, 이는 변화가 정확하고 예측 가능한 방식으로 발생하도록 보장한다.이 니즈의 범위를 정의하는 세 가지 기본 상황:
- 하나 이상의 프로세스가 계속되려면 하나 이상의 프로세스가 지정된 지점에서 동기화되어야 한다.
- 계속하려면 하나 이상의 프로세스가 비동기 조건을 기다려야 한다.
- 또는 프로세스가 공유 리소스에 대한 독점적인 액세스를 설정해야 한다.
부적절한 동기화는 원자성, 일관성, 격리 및 내구성, 교착 상태, 활선 잠금 및 연속성 상실을 포함한 다중 고장 모드를 초래할 수 있다.[citation needed]
유연성
분산 운영체제의 유연성은 분산 운영체제의 모듈화 특성과 보다 풍부한 상위 수준의 서비스를 제공함으로써 향상된다.커널/마이크로커널의 완전성과 품질은 그러한 서비스의 구현을 단순화하고 잠재적으로 서비스 제공업체들이 그러한 서비스에 대한 더 많은 제공자를 선택할 수 있도록 한다.[citation needed]
리서치
복제된 모델이 구성 요소 개체 모델로 확장됨
E1 분산 운영체제의[38] 설계
크로너스 분산 운영 체제[39]
MINIX 분산 운영체제의[40] 설계 및 개발
책임 수용을 통한 복잡성/신뢰성 노출
- Denali 분리 커널의 확장 및 성능.[41]
멀티 코어/멀티 코어 집중 시스템
- 멀티커넬: 확장 가능한 멀티코어 시스템을 위한 새로운 OS 아키텍처.[42]
- Corey: 여러 코어를 위한 운영 체제.[43]
- Almos: cc-NUMA Multi-Core용 고급 지역 관리 운영 체제.[44]
이질성의 극한에 걸친 분산 처리
- Helios: 위성 커널을 이용한 이기종 다중 처리.[45]
여러 복잡성 수준에서 효과적이고 안정적
- 테셀레이션: Multicore 클라이언트 OS에서 시간 분할.[46]
참고 항목
- 분산 컴퓨팅
- 벨 연구소의 계획 9
- 인페르노
- 미닉스
- 단일 시스템 이미지(SSI)
- 컴퓨터 시스템 아키텍처
- 멀티커넬
- 동시, 병렬 및 분산 컴퓨팅의 중요 출판물 목록
- 운영 체제 프로젝트
- Edsger W. Dijkstra 분산 컴퓨팅 부문 수상
- 분산 컴퓨팅 컨퍼런스 목록
- 분산 컴퓨팅 프로젝트 목록
참조
- ^ a b Tanenbaum, Andrew S (September 1993). "Distributed operating systems anno 1992. What have we learned so far?". Distributed Systems Engineering. 1 (1): 3–10. Bibcode:1993DSE.....1....3T. doi:10.1088/0967-1846/1/1/001.
- ^ Nutt, Gary J. (1992). Centralized and Distributed Operating Systems. Prentice Hall. ISBN 978-0-13-122326-4.
- ^ a b c d e f Gościński, Andrzej (1991). Distributed Operating Systems: The Logical Design. Addison-Wesley Pub. Co. ISBN 978-0-201-41704-3.
- ^ Fortier, Paul J. (1986). Design of Distributed Operating Systems: Concepts and Technology. Intertext Publications. ISBN 9780070216211.
- ^ Hansen, Per Brinch, ed. (2001). Classic Operating Systems: From Batch Processing to Distributed Systems. Springer. ISBN 978-0-387-95113-3.
- ^ CHOSROS 분산 운영 체제 커널 Pecheur, C. 1992을 지정하기 위해 LOTOS 사용.CHOSROS 분산 운영 체제 커널 지정에 LOTOS 사용.계산하다.Communic. 15, 2 (1992년 3월), 93-102.
- ^ COOL: 객체 지향 환경을 위한 커널 지원 Habert, S. 및 Mosseri, L. 1990. COOL: 객체 지향 환경을 위한 커널 지원. Cool: 객체 지향 환경에 대한 커널 지원.객체지향 프로그래밍 시스템, 언어 및 어플리케이션에 대한 유럽 객체지향 프로그래밍 회의(Auttawa, Canada)에서.OOPSLA/ECOP 90.ACM, 뉴욕, 뉴욕 269-275
- ^ a b c d e Sinha, Pradeep Kumar (1997). Distributed Operating Systems: Concepts and Design. IEEE Press. ISBN 978-0-7803-1119-0.
- ^ a b c Chow, Randy; Theodore Johnson (1997). Distributed Operating Systems and Algorithms. Addison Wesley. ISBN 978-0-201-49838-7.
- ^ Surajbali, B, Coulson, G, Greenwood, P, Grace, P. 2007.측면 방향 지원 레이어로 반사 미들웨어 확대.제6회 Adaptive and Reflectional Middleware 국제 워크숍의 진행 내용:ACM/IFIP/USENIX 국제 미들웨어 컨퍼런스(Newport Beach, CA, 2007년 11월 26~30일)에서 개최.ARM '07.ACM, 뉴욕, 뉴욕, 1-6
- ^ Leiner, Alan L. (April 1954). "System Specifications for the DYSEAC". Journal of the ACM. 1 (2): 57–81. doi:10.1145/320772.320773.
- ^ a b Forgie, James W. (February 26–28, 1957). The Lincoln TX-2 Input-Output System. Western Joint Computer Conference: Techniques for Reliability. Los Angeles, California: Association for Computing Machinery. pp. 156–160. doi:10.1145/1455567.1455594. ISBN 9781450378611.
- ^ a b C. Y. Lee (December 4–6, 1962). Intercommunicating cells, basis for a distributed logic computer. Fall Joint Computer Conference. Philadelphia, Pennsylvania: Association for Computing Machinery. pp. 130–136. doi:10.1145/1461518.1461531.
- ^ Dreyfus, Phillippe (1958-05-08) [1958-05-06], written at Los Angeles, "System design of the Gamma 60" (PDF), Proceedings of the May 6–8, 1958, Western Joint Computer Conference: Contrasts in Computers, ACM, New York, NY, USA, pp. 130–133, IRE-ACM-AIEE '58 (Western), archived (PDF) from the original on 2017-04-03, retrieved 2017-04-03
- ^ 라이너, A. L., Notz, W. A., Smith, J. L., Weinberger, A. 1958.마감일에 맞춰 컴퓨터 네트워크 구성1957년 12월 9일-13일에 발표된 논문과 토론에서 동부 공동 컴퓨터 컨퍼런스는 다음과 같다.충족해야 할 마감일이 있는 컴퓨터(Washington, D.C., 1957년 12월 09-13일).IRE-ACM-AIE 57년
- ^ 라이너, A. L. 스미스, J. L., 노츠, W. A., 와인버거, 1958.파일럿, NBS 멀티콤퍼터 시스템.1958년 12월 3일~5일 동부 공동 컴퓨터 컨퍼런스에서 발표한 논문 및 토론서:현대 컴퓨터: 목표, 설계, 응용 프로그램(Philadelphia, Philadelphia, Philadelphia, 1958년 12월 03-05년).AIEE-ACM-IRE 58(동부).ACM, 뉴욕, 뉴욕 71-75
- ^ 바우어, W. F. 1958.프로그래머의 관점에서 본 컴퓨터 디자인.1958년 12월 3일~5일 동부 공동 컴퓨터 컨퍼런스에서 발표한 논문 및 토론서:현대 컴퓨터: 목표, 설계, 응용 프로그램(Philadelphia, Philadelphia, Philadelphia, 1958년 12월 03-05년).AIEE-ACM-IRE 58(동부).ACM, 뉴욕, 뉴욕, 46-51
- ^ 라이너, A. L., Notz, W. A., Smith, J. L., Weinberger, A. 1959.파일럿—새로운 다중 컴퓨터 시스템.J. ACM 6, 3 (1959년 7월), 313-335.
- ^ 에스트린, G. 1960.컴퓨터 시스템의 구성: 고정식 + 가변 구조 컴퓨터.1960년 5월 3일–5일에 제시된 논문에서, Western Joint IRE-AIEE-ACM Computer Conference (San Francisco, California, 1960년 5월 03–05년 5월)IRE-AIE-ACM '60(서양).ACM, 뉴욕, 뉴욕, 33-40
- ^ 마틴 H.Weik, "국내 전자 디지털 컴퓨팅 시스템에 대한 제3차 조사", 탄도 연구 연구소 보고서 제1115호, 페이지 234-5, 메릴랜드 주 애버딘 증명 그라운드, 1961년 3월
- ^ Mellor-Crummey, J. M., Scott, M. L. 1991.공유 메모리 멀티프로세서에서 확장 가능한 동기화를 위한 알고리즘.ACM Trans.계산하다.시스템 9, 1 (1991년 2월), 21-65.
- ^ 베이커, M. G. 하르트만, J. H. 쿠퍼, M. D. 시리프, K. W. 오스터후트, J. K. 1991.분산 파일 시스템의 측정.운영체제 원칙에 관한 제13차 ACM 심포지엄의 진행(Pacific Grove, California, 1991년 10월 13~16일)에서.SOSP 91.ACM, 뉴욕, 198-212
- ^ Li, K.와 Hudak, P. 1989.공유 가상 메모리 시스템의 메모리 일관성.ACM Trans.계산하다.시스템. 7, 4 (1989년 11월), 321-359.
- ^ 가르시아-몰리나, H. 그리고 살렘, K. 1987.Sagas. 1987년 ACM SGIMOD 국제 데이터 관리 회의(San Francisco, California, 1987년 5월 27-29일)의 진행 중.U. Dayal, Ed.지그모드 87년ACM, 뉴욕, 뉴욕, 249-259
- ^ Harris, T, Marlow, S, Peyton-Jones, S, Hellihy, 2005.복합 메모리 트랜잭션.병렬 프로그래밍의 원칙과 실천에 관한 제10차 ACM SIGPlan 심포지엄의 진행(Chicago, IL, USA, 2005년 6월 15~17일)에서.PPP '05.ACM, 뉴욕, 뉴욕 48-60
- ^ 헐리, 엠 앤 모스, J. E. 1993.트랜잭션 메모리: 잠금 없는 데이터 구조를 위한 아키텍처 지원제20회 연례 컴퓨터 건축 국제 심포지엄의 진행에서 (미국 캘리포니아주 샌디에이고, 1993년 5월 16~19일)ISCA 93.ACM, 뉴욕, 뉴욕, 289-300
- ^ Herlih, M, Luchangco, V, Moir, M, Scherer, W. N. 2003.동적 크기 데이터 구조를 위한 소프트웨어 트랜잭션 메모리.분산 컴퓨팅 원칙에 관한 22차 연례 심포지엄의 진행(Boston, Massachusetts, 2003년 7월 13일–16일)에서.PODC '03.ACM, 뉴욕, 뉴욕 92-101
- ^ 1995년 뉴스의 샤빗과 투이토우.소프트웨어 트랜잭션 메모리.분산 컴퓨팅의 원리에 관한 제14회 연례 ACM 심포지엄의 진행에서 (오타와, 온타리오, 캐나다, 1995년 8월 20-23일)PODC 95번지ACM, 뉴욕, 뉴욕, 204-213
- ^ 쿠비아토비치, J, 빈델, D, 첸, Y, 체르빈스키, S, 이튼, P, 젤스, D, 검마디, R, 레아, 웨더스푼, H, 웰스, C, 자오, B. 2000.OceanStore: 글로벌 규모의 영구 스토리지를 위한 아키텍처.제9차 프로그래밍 언어 및 운영체제 건축지원에 관한 국제회의(Procedures For Programming Language and Operating Systems, Massachusetts, Cambridge, Massachusetts, Massachusetts)에서.아스플로스-IX.ACM, 뉴욕, 뉴욕 190-201
- ^ 지포드, D. K. 1979.복제된 데이터에 대한 가중 투표.운영체제 원칙에 관한 제7회 ACM 심포지엄의 진행(Pacific Grove, 미국 캘리포니아, 1979년 12월 10일-12일)에서.SOSP 79.ACM, 뉴욕, 뉴욕, 150-162
- ^ Dwork, C, Lynch, N, Stockmeyer, L. 1988.부분 동기화가 존재하는 상태에서 일치한다.J. ACM 35, 2 (1988년 4월), 288-323.
- ^ 램포트, L, 쇼스탁, R, 그리고 피스, M. 1982.비잔틴 장군 문제.ACM Trans.프로그램.랭. 시스템 4, 3 (1982년 7월), 382-401.
- ^ 쉴리칭, R. D.와 Schneider, F. B. 1983.Fail-Stop 프로세서: 내결함성 컴퓨팅 시스템을 설계하는 접근 방식.ACM Trans.계산하다.시스템.1, 3 (1983년 8월), 222-238.
- ^ K.M.의 찬디와 L. 1985. 램포트.분산 스냅샷: 분산 시스템의 글로벌 상태 결정ACM Trans.계산하다.시스템. 3, 1 (1985년 2월), 63-75.
- ^ Strom, R., Yemini, S. 1985.분산 시스템의 낙관적 복구.ACM Trans.계산하다.시스템3로3번길
- ^ a b c Galli, Doreen L. (2000). Distributed Operating Systems: Concepts and Practice. Prentice Hall. ISBN 978-0-13-079843-5.
- ^ Tanenbaum, Andrew S. (1995). Distributed Operating Systems. Prentice Hall. ISBN 978-0-13-219908-7.
- ^ L.B. 리지크, A.Y. 버트세프dE1 분산 운영 체제의 아키텍처 설계System Research and Information Technologies 국제 과학 기술 저널, 2004년 10월 우크라이나 키예프.
- ^ Vinter, S. T.와 Shantz, R. E. 1986.크로너스는 운영 체제를 분산시켰다.분산 시스템 작업에 관한 제2차 워크샵 진행 중 (네덜란드 암스테르담, 1986년 9월 8일–10일)EW 2. ACM, 뉴욕, 뉴욕, 1-3
- ^ 라메쉬, K. S. 1988.MINIX 분산 운영 체제의 설계 및 개발.1988년 ACM 16차 컴퓨터 과학 연례 회의(미국 조지아 주 아틀란타)의 진행 중.CSC 88.ACM, 뉴욕, 뉴욕, 685년
- ^ 휘태커, A, 쇼, M, 그리블, 2002.제5회 운영체제 설계 및 구현에 관한 심포지엄 개최과정
- ^ Baumann, A, Barham, P, Dagand, P, Harris, T, Isaacs, R, Peter, S, Roscoe, T, Schüpbach, A, Singhania, A.ACM SIGOPS 22차 운영 체제 원칙 심포지엄 진행 중(Big Sky, Montana, USA, 2009년 10월 11일–14일)SOSP '09.
- ^ S. 보이드 위키저, H. 첸, R.첸, Y. 마오, F. 카슈끄, R. 모리스, A.페스테레브, L. 스타인, M. 우, Y. 다이, Y. 장, Z.장. 2008년 운영 체제 설계 및 구현에 관한 심포지엄의 진행, 2008년 12월.
- ^ 알말레스, G. 와즈뷔르트, F. 2011.2011년 프랑스 리옹의 GDR SoC-SIP 제5회 전국 세미나에서.
- ^ 나이팅게일, E. B, 호드슨, O, 매킬로이, R, 호블리첼, C, 헌트, G. 2009.ACM SIGOPS 22차 운영 체제 원칙 심포지엄 진행 중(Big Sky, Montana, USA, 2009년 10월 11일–14일)SOSP '09.
- ^ 로즈 류, 케빈 클루즈, 세라 버드 버클리 캘리포니아대, 스티븐 호프메이어, 로렌스 버클리 국립연구소, 크레스테 아소노비치, 존 쿠비아토비치 버클리 캘리포니아대.핫파09.
추가 읽기
- Chow, Randy; Theodore Johnson (1997). Distributed Operating Systems and Algorithms. Addison Wesley. ISBN 978-0-201-49838-7.
- Sinha, Pradeep Kumar (1997). Distributed Operating Systems: Concepts and Design. IEEE Press. ISBN 978-0-7803-1119-0.
- Galli, Doreen L. (2000). Distributed Operating Systems: Concepts and Practice. Prentice Hall. ISBN 978-0-13-079843-5.