Synchronization.

Slides:



Advertisements
Similar presentations
영어의미론 단원 7 직시와 한정성 복습 발화 / 문장은 특정한 시간 및 장소와 관련되어 있는가 ? “A/The man from Dundee stole my wallet.” 라는 발화에서 화자는 청자가 그 사람을 아는 것으로 가정하는가 ? 담화세계는 부분적으로 허구일.
Advertisements

Classroom English How do you say _________ in Korean? _________ 는 한국어로 뭐예요 ?
Lesson 2 A Caring Friend. Making true friends is hard. Keeping them is even harder. To keep a good friendship, you need to care about others. Then, how.
실험 8. Cyclic Voltammetry - 7 조 : 한지영, 이호연, 최은진, 최효린 -
김예슬 김원석 김세환. Info Northcutt Bikes Northcutt Bikes The Forecasting problem The Forecasting problem The solution 1~6 The.
K3-L1 Lecture Notes 날씨와 계절 [Weather & Seasons] Prof. Mickey Hong Foreign Language & Humanities.
숫자 ② 식당이 어디에 있어요? 식당이 4(사)층에 있어요. Sogang Korean 1A UNIT 1 “숫자②”
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
Mar OSEK/VDK Woo Dong Kyun.
IT집중교육1 (Mobile Multimedia Service & System Design)
Chapter 7 ARP and RARP.
어떤 과정으로 쓰면 될까.
Chapter 3 데이터와 신호 (Data and Signals).
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
과목 홈페이지  전산학개론 이메일 숙제를 제출할 경우, 메일 제목은 반드시 ‘[전산학개론]’으로 시작.
REINFORCEMENT LEARNING
Internet Group Management Protocol (IGMP)
Delivery and Routing of IP Packets
Internet Control Message Protocol (ICMP)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Hinet Advanced Technology & Information
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
Chapter 8 교환 (Switching).
Chapter 8 교환 (Switching).
Ch. 5 : Analog Transmission
Genetic Algorithm 신희성.
Internet Computing KUT Youn-Hee Han
1 도시차원의 쇠퇴실태와 경향 Trends and Features of Urban Decline in Korea
Chapter 2. Finite Automata Exercises
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
Xen and the Art of Virtualization
Chapter 12 다중 접속 (Multiple Access).
계수와 응용 (Counting and Its Applications)
KMS 구현 및 활용사례 경쟁력 강화를 위한 2002년 5월 28일(화) 김 연 홍 상무 / 기술사
진대제 장관이 말하는 '100점짜리 인생의 조건' ▲ 진대제 정보통신부 장관    `인생을 100점짜리로 만들기 위한 조건은 무엇일까요`  진대제 정보통신부 장관이 대한상의 초청 조찬 간담회를 시작하며 참석자 들에게 던진 `조크성` 질문이다. 진 장관은 "제가 재미있는 얘기하나 하겠습니다"고 말하고, 
1. Log in WCMS에서 사용하는 ID와 PW를 동일하게 사용.
제5장 CPU스케줄링(CPU Scheduling)
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
Congestion Control for Vehicular Safety:
GOD.
MAC Management 광운대학교 무선네트워크연구실 이 종 헌
TimeStamp를 활용한 전자문서 진본성 확보
: 부정(negative)의 의미를 나타내는 접두사
Hijacking Bitcoin : Routing Attacks on Cryptocurrencies Maria Apostolaki Aviv Zohar Laurent Vanbever Presentor Geun Woo Lim Many parts of.
CEO가 가져야 할 품질 혁신 마인드.
Operating System Multiple Access Chatting Program using Multithread
Welcome to Virus World 바이러스의 세계로 초대합니다.
이산수학(Discrete Mathematics)
평생 간직할 멋진 말 Excellent thought applicable through our whole life
점화와 응용 (Recurrence and Its Applications)
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
이산수학(Discrete Mathematics)
제 9 장 ICMP 9.1 메시지 유형 9.2 메시지 형식 9.3 오류 보고 9.4 질의 9.5 검사합 9.6 ICMP 설계
소프트웨어 종합설계 (Software Capstone Design)
1. 데이터베이스 환경.
Peer-to-Peer SIP Network Using Distributed Hash Table
A SMALL TRUTH TO MAKE LIFE 100%
A SMALL TRUTH TO MAKE LIFE 100%
[CPA340] Algorithms and Practice Youn-Hee Han
Concurrency: Deadlock and Starvation
Chapter 4. Energy and Potential
Chapter 7: Deadlocks.
Ⓒ Copyright CARROT Global. All Rights Reserved.
Presentation transcript:

Synchronization

Synchronization Clock

6.1 Clock Synchronization Physical Clocks Logical Clocks Vector Clocks

6.1.1 Physical Clocks (1) 데이터 전달/요청에 대한 순서가 아닌 정확한 시간이 필요할 때가 있음 해결 방안 협정 표준시,Universal Coordinated Time (UTC) Cesium 133 원소의 초당 전이 시간에 기초하여 시간을 구함 현재는, 50 cesium-clock의 평균값을 실제 시간으로 사용 매일의 마지막 시간은 61초(윤초) 로 하여 시간을 조정 UTS는 단파 라디오와 위성을 이용하여 broadcasting되며 위성의 UTC는 +-0.5ms 의 오차 범위를 가짐

6.1.1 Physical Clocks (2)

6.1.1 Physical Clocks (3) 문제 점 기본 원리 UTC를 받아서 시간을 구하는 분산 시스템이 있을 때 시간을 각 머신들에게 배포해야 함 기본 원리 각 머신들은 timer를 가지고 있어서 매 초마다 H 횟수 만큼 interrupt를 발생 시킴 머신 (p)의 clock timer interrupt마다 tick을 발생 Cp(t) (t:UTC) 머신(P), Cp(t) = t라면 이상적인 경우가 될 것임 dC/dt = 1

6.1.1 Physical Clocks (4)

6.1.2 Global Positioning System GPS 정보 이용의 부작용으로 시간 정보를 얻을 수 있음 GPS 위성으로 부터 받는 시간이 정확하고 동기화 되어 있다면 신호를 받을 때 마다 시간을 조정하면 됨 Computing a position in a two-dimensional space

6.1.3 Clock Synchronization algorithm (1) Clock synchronization principles 모든 기계들은 정확한 시간을 얻기 위해서 적어도 매 시간 마다 time server에게 시간을 요청함 다음의 값들을 고려해야 함 Round trip delay Interrupt handling Processing incoming message Time server가 주기적으로 모든 머신을 검사하고 평균값을 계산하여 각 머신들에게 현재 시간으로 부터 상대적으로 정정할 값을 알려줌

6.1.3 Clock Synchronization algorithm (1) Network Time Protocol 개요 인터넷을 통해 컴퓨터 시각을 기준 클락원 (reference clock)에 동기시키는 프로토콜 네트워크 상에 분산된 시각 서버와 크라이언트간에 시각 동기화에 사용 정확도 유지 클락 시간을 동기화 하기 위해서 UTC를 사용 UTC에 비교하여 수 밀리초 이하의 정확도를 유지할 수 있음 (1초 ~ 50ms) 사용 포트 : UDP, 서버 123, 클라이언트 1023 이상 메시지 구성 : 64비트의 timestamp 네트워크 지연에 따른 오류 교정 : 4개의 timestamp를 사용

6.1.3 Clock Synchronization algorithm (2) The Berkeley Algorithm The time deamon tells everyone how to adjust their time The machines answer The time deamon asks all the other machines for their clock values

The Happened-before relationship 같은 프로세스 내에 두 개의 사건 a와 b가 발생하고, a 가 b 보다 앞서면 a  b 만약 a가 메시지 전송이고 b가 메시지 수신이라면 위의 전이관계에 놓임 a  b and b  c then a  c

Logical clocks (1) Question How do we maintain a global view on the system’s behavior that is consistent with the happened-before relation?

Logical clocks (2) Question Solution How do we maintain a global view on the system’s behavior that is consistent with the happened-before relation? Solution Attach a timestamp C(e) to each event e, satisfying the following properties: P1: If a and b are two events in the same process, and a  b, then we demand that C(a) < C(b) P2: If a corresponds to sending a message m, and b to the receipt of that message, then also C(a) < c(b)

Logical clocks (3) Question Solution Problem How do we maintain a global view on the system’s behavior that is consistent with the happened-before relation? Solution Attach a timestamp C(e) to each event e, satisfying the following properties: P1: If a and b are two events in the same process, and a  b, then we demand that C(a) < C(b) P2: If a corresponds to sending a message m, and b to the receipt of that message, then also C(a) < c(b) Problem How to attach a timestamp to an event when there’s no global clock  maintain a consistent set of a logical clocks, one per process

Logical clocks (4) Three processes, each with its own clock. The clocks run at different rates. Lamport’s algorithm correct the clocks

Logical clocks (5) The positioning of Lamport’s logical clocks in distributed systems

Logical clocks (6) Totally ordered multicast Problem 복제 데이터 베이스에 갱신이 항상 어디에서든지 같은 순서로 이루어짐을 보장할 필요가 있음 P1 add $100 to an account (initial value: $1000) P2 increments account by 1% There are two prelicas 10만원 입금 이자 지급 100만원 잔고 Updating a replicated database and leaving it in an inconsistent state

Logical clocks (7) Solution Process Pi sends timestamped message msgi to all others. The message itself is put in a local queuei Any incoming message a Pj is queued in queuej, according to its timestamp, and acknowledged to every other process. Pj passes a message msgi to its application if: msgi is at the head of queuej For each process Pk, there is a message msgk in queuej We are assuming that communication is reliable and FIFO ordered.

Vector clocks (1) Lamport’s의 clock은 다음의 사항을 보장하지 않음 If C(a) < C(b) that a casually preceded b Event a: m1 is received at T=16 Event b: m2 is send at T = 20 We cannot conclude that a casually precedes b Concurrent message transmission using logical clocks

Vector clocks (1) 프로세스 Pi는 VCi[1…n]는 갖음 Pi가 메시지 m을 보낼 때 VCi[j]: 프로세스 Pj 에서 발생한 event의 숫자 Pi가 메시지 m을 보낼 때 VCi[i]++, VCi 를 m과 함께 vector stamp vt(m)으로 보냄 메시지가 도착할 때 수신자는 Pi 의 timestamp를 알 수 있게 됨 Pj가 Pi로 부터 받은 메시지 m을 배달할 때 VCj[k] = max{VCj[k], ts(m)[k]} VCj[j]++;

Vector Clocks (2) Vector clocks are constructed by letting each process Pi maintain a vector VCi with the following two properties: VCi [ i ] is the number of events that have occurred so far at Pi. In other words, VCi [ i ] is the local logical clock at process Pi . If VCi [ j ] = k then Pi knows that k events have occurred at Pj. It is thus Pi’s knowledge of the local time at Pj .

Vector Clocks (3) Steps carried out to accomplish property 2 of previous slide: Before executing an event Pi executes VCi [ i ] ← VCi [i ] + 1. When process Pi sends a message m to Pj, it sets m’s (vector) timestamp ts (m) equal to VCi after having executed the previous step. Upon the receipt of a message m, process Pj adjusts its own vector by setting VCj [k ] ← max{VCj [k ], ts (m)[k ]} for each k, after which it executes the first step and delivers the message to the application.

Enforcing causal communication. VC2 = [0,2,2], ts(m)=[1,3,0] from P0 P2의 정보는

Mutual Exclusion 다수의 프로세스들이 어떤 자원에 배타적으로 접근하고자 할 때 Via a centralized server Completely decentralized, using a peer-to-peer system. Completely distributed, with no topology imposed. Completely distributed along a (logical) ring.

Mutual Exclusion A Centralized Algorithm (1) Figure 6-14. (c) When process 1 releases the resource, it tells the coordinator, which then replies to 2. Process 1 asks the coordinator for permission to access a hared resource. Permission is granted Figure 6-14. (b) Process 2 then asks Permission to access the same resource. The coordinator does not reply

Mutual Exclusion Decentralized 가정 모든 자원은 n회 복제됨 각각의 복제품(replica)는 조정자(coordinator)를 가짐

6.3.4 Distributed Algorithm 메시지를 받는 프로세스는 자원의 공유에 관심이 없음 메시지를 받는 프로세스는 우선 순위가 낮다면 자원을 할당 받기를 기다림 모든 다른 경우 응답은 연기됨 자원 요청을 받은 프로세스의 3가지 상태 메시지를 받은 프로세스가 자원에 접속하지 않거나 접속하기를 원하지 않는다면 메시지를 보낸 프로세스에게 OK 메시지를 되돌려 줌 메시지를 받은 프로세스가 이미 자원에 접속해 있다면 응답하지 않고 요청을 큐에 보관함 메시지를 받은 프로세스가 자원에 접속하기를 원하지만 아직 접속하지 않았다면 메시지의 timestamp를 비교 작은 값의 timestamp가 우선 순위를 갖게 함

A Distributed Algorithm (2) Figure 6-15. (a) Two processes want to access a shared resource at the same moment. Figure 6-15. (b) Process 0 has the lowest timestamp, so it wins. Figure 6-15. (c) When process 0 is done, it sends an OK also, so 2 can now go ahead.

6.5 Election Algorithm 많은 분산 시스템들은 어떤 한 프로세스가 중재자(coordinator)로 동작할 필요가 있음 동적으로 특별한 기능을 하는 프로세스를 선택할 것인가? 대부분의 많은 시스템은 수동으로 중재자를 선정 집중 제어  single point failure 중재자가 동적으로 선택된다면?

Election Algorithms The Bully Algorithm P sends an ELECTION message to all processes with higher numbers. If no one responds, P wins the election and becomes coordinator. If one of the higher-ups answers, it takes over. P’s job is done.

The Bully Algorithm (1) P4 holds an election P5,P6 response P4 stop P5,P6 hold an election 이전의 중재자 P7 crash (a) P4가 이를 인지  send election message higher P(5,6,7) (b) P5,P6  send OK to P4 (c) P5  send P(6,7), P6  send P(7)

The Bully Algorithm (2) P6 tells 5 to stop P6 wins and tells every one