Microsoft PowerPoint _Operating System Transactions.pptx

Similar documents
6주차.key

MS-SQL SERVER 대비 기능

PCServerMgmt7

10주차.key

목 차

thesis

PowerPoint Presentation

Something that can be seen, touched or otherwise sensed

untitled

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Chap06(Interprocess Communication).PDF


CD-RW_Advanced.PDF

untitled

untitled

PowerPoint 프레젠테이션

The Self-Managing Database : Automatic Health Monitoring and Alerting


1217 WebTrafMon II

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Remote UI Guide

제품소개

SMB_ICMP_UDP(huichang).PDF

ecorp-프로젝트제안서작성실무(양식3)

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

chapter4

Microsoft PowerPoint - ch03ysk2012.ppt [호환 모드]

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Oracle9i Real Application Clusters

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

°í¼®ÁÖ Ãâ·Â

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

[Brochure] KOR_TunA

PRO1_04E [읽기 전용]

Solaris Express Developer Edition

슬라이드 1

Sena Device Server Serial/IP TM Version

기타자료.PDF

05Àå

디지털포렌식학회 논문양식

Microsoft PowerPoint - o8.pptx


화판_미용성형시술 정보집.0305

Jerry Held

MAX+plus II Getting Started - 무작정따라하기

Backup Exec

untitled

Yggdrash White Paper Kr_ver 0.18

슬라이드 1

歯Trap관련.PDF

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Service-Oriented Architecture Copyright Tmax Soft 2005

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

JVM 메모리구조

(SW3704) Gingerbread Source Build & Working Guide

THE TITLE

C# Programming Guide - Types

No Slide Title

Chap7.PDF

슬라이드 1

APOGEE Insight_KR_Base_3P11

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

歯sql_tuning2

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

리뉴얼 xtremI 최종 softcopy

hlogin2

±èÇö¿í Ãâ·Â

Microsoft PowerPoint - Session2 - Tibero 6

istay

¨ìÃÊÁ¡2

NoSQL

CLX8380_KR.book

歯이시홍).PDF

Intra_DW_Ch4.PDF

LXR 설치 및 사용법.doc

PowerPoint 프레젠테이션

BSC Discussion 1

PowerPoint 프레젠테이션

디지털포렌식학회 논문양식

Microsoft PowerPoint - o6.pptx

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

초보자를 위한 분산 캐시 활용 전략

Sharing Memory Between Drivers and Applications

Simplify your Job Automatic Storage Management DB TSC

vm-웨어-01장

금오공대 컴퓨터공학전공 강의자료

MySQL-Ch10

13주-14주proc.PDF

PowerPoint Presentation

62

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

휠세미나3 ver0.4

Microsoft PowerPoint APUE(Intro).ppt

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

歯A1.1함진호.ppt

특허청구의 범위 청구항 1 게임 서버 또는 미들웨어에 의해, 사용자 단말기로부터, GPS 정보, IP 정보, 중계기 정보 중 적어도 하나를 이 용한 위치 정보와, 상기 사용자 단말기에 설정된 언어 종류를 포함하는 사용자 정보를 수신하는 단계; 상기 게임 서버 또는 미들

Windows Storage Services Adoption And Futures

6.24-9년 6월

Transcription:

CHOI HWAN JOON 2010. 08. 02

Application 은 concurrency 와 system failure 에직면했을때의정확성을위해 OS Resource 를 Synchronous 하게접근해야한다. System transaction( 이하 ST) 은개발자가여러종류의 System resource 를 OS가보장하는 ACID 한특성을이용해명시적으로변경할수있도록허용한다. ST 는다른기술로는다루기힘든끊임없는병렬성의문제를효율적이고깨끗하게풀어낸다. 예를들면 ST는 TOCTTOU 경쟁조건때문에발생하는 file system의보안취약성을제거한다. ST 는소프트웨어설치실패의경우 file system 에충격적인병렬적이고독립적인업데이트없이롤백을가능하게합니다. 이논문은 ST 를구현한 Linux2.6.22의변종인 TxOS를설명합니다. TxOS 는빠르고직렬화된 transaction, 그리고 ST와 non-transactional activity 사이에강력한독립성과공정성을제공하기위해새로운구현기술을사용합니다. 이논문의 prototype은상품화된 HW에서동작하는충분히발달된 OS 가타당한성능비용이드는 ST 를제공할수있음을보여줍니다. 예를들면, OpenSSH 의 transactional installation 이오직10% 의오버헤드만을가지는경우와, 리눅스의 non-transactional 컴파일이 TxOS 상에서무시할수있을정도의오버헤드만을발생시키는는경우가있습니다. transactions 을 central OS abstraction으로만드는것만으로 TxOS는새로운 transactional 서비스를가능하게합니다

Atomicity 모든작업이수행되거나아무것도수행되지않거나. Consistency Transaction 의성공 / 실패와상관없이일관성유지 Isolation 각 Transaction 은동일데이터를동시에읽고쓸수없음 Durability Transaction 완료후, 그결과는영구히반영

Time of check to time of use Other Applications

File System Race condition 의보안취약성제거 Transactional SW Install (10% Overhead) Crash consistency (LDAP) User level transaction

프로그래머가 system resource 를일관되게접근할수있는추상화를제공 OS resource(files/pipes/signals) 에대해ACID sys_xbegin() ~ sys_xend() transactionti 처리 Strong isolation : 같은 OS 리소스에대한 transactional 과 non-transactional update 에대해 serialization i 을제공하는것

EX) Transaction A/B 두 Transaction이서로대기한다면 system 은둘중하나를 Restart. OS가선점형이라면 non-transactional thread 를지연시키면서 transactional thread가오랬동안수행되는것을허용. ST가오랫동안수행되며모든 system resource를점유하는것을원하지않으므로 limitation 이존재함 (memory/disk space or kernel thread count)

ST 의 ACID 는 system state 를위한것이다. App state를보장하지는않는다. 따라서 ST가 abort 되었을때 App address space 까지책임지지않는다. 이를위해 TxOS는 checkpoint and restore 메커니즘을제공한다

하나의 ST 안에서다른 thread 의 nontransactional process와통신하는것은 deadlock 유발가능함. (IPC 로보내려고해도 commit될때까지 buffering됨 ) 이것은기본 isolation 전제에위배됨

TxOS 는 kernel memory buffer 와 data structure를이용해 data read / write를 isolate 시키는것으로 ST 를구현했다. Application 이 data를 file system 이나 device에쓰려고할때그 update 는 commit 될때까지 OS buffer 에들어간다. TxOS transaction 은 main memory 에꼭들어맞아야한다. (commit 되지않은 transaction이 disk 로 swapping 되는것은한계점임 future work)

Interoperability Old Transactional system transaction 과 non-transactional 이충돌할경우 transaction이 Rollback 가능하기때문에 transaction을우선 abort. 이러한접근은 fairness를약화 TxOS Non-transactional thread 가 critical section에접근하기전에발견되면 Non-transactional thread 를 suspend 시켜서 fairness 확보.

Eager version management DB나 Old transactional OS는 data를수정하고 undo log를남김. 즉 Transaction을 isolate시키고 commit시까지 lock한다. (Two phase locking). 하지만 Dead lock 을유발가능하다. Dead lock 은 time out 을두는것으로해결하지만 time out 의길이를결정하는것은어렵다. 또한높은우선순위 task 가 block 될수있다. Lazy version management TxOS 는 Transaction 이 Private copy 에서동작. App 은 kernel lock을절대로가지지않는다. 따라서 TxOS는데드락을피할수있다. 대신 commit latency 가발생할수있다.

According to the two-phase locking protocol, a transaction handles its locks in two distinct, consecutive phases during the transaction'ss execution: Expanding phase (number of locks can only increase): locks are acquired and no locks are released. Shrinking phase: locks are released and no locks are acquired. http://en.wikipedia.org/wiki/two-phase_locking phase

Transaction 이 Shared kernel object 에접근하는경우, shadow object 라고불리우는 private copy 를만들어서거기다먼저반영후바꿔치기한다. 단 transaction 자체가충돌없이끝났으나바꿔치기할때충돌할수있다. 왜냐하면바꿔치기한다는의미가이객체를참조하는녀석들을다찾아서그포인터를업데이트하는것인데, 이것은여러곳에걸쳐있고여러가지이슈가생길수있으므로위험하다. 이를위해 disjoint object 를사용한다

해당 object 를헤더와데이터로나눠서헤더는재 해당 object 를헤더와데이터로나눠서헤더는재사용하고데이터만바꿔치기한다

많은 Kernel object 들은오직읽기를위해서만사용된다. Shadow copy를만드는 overhead를피하기위해서 read only 모드를가능하도록한다. (reference counter존재 ) 모든 Reference counter 가 0 이된이후에 shadow 를 update한다. (Read-copy update)

Atransaction 이 Btransaction 에의해점유된 object 를접근할때충돌이발생 Transaction 이발생한 object 를또다른 non- transactional thread가접근하려는경우 (vice versa) TxOS 는 tx_data 를 transaction 처리가되는모든 shared kernel object 의헤더에위치시킨다. tx_data 는 transactional writer 와 reader list 를포함한다. Writer는현재활성화된 transactional writer를가리키는포인터임. Thread 가충돌을감지한경우 TxOS는이필드를사용해서충돌상태인지판단한다.

충돌발생시분쟁해결을위한 contention manager 호출됨. 높은우선순위프로세스우선 같은우선순위면오래된프로세스우선

What is Asymmetric? Transactional 과 non-transactional thread 가충돌 How to solve transaction은언제나 abort나 roll back 가능 non-transactional 은롤백할수없음. non-transactional thread가롤백할수없지만 critical region만아니라면선점되거다 deschedule 될수있다. non-transactional thread가너무많이transaction을 abort 시키면 kernel 이 transaction이굶어죽는것을막기위해 wait queue 에넣어버린다

Transactional state 를관리하기위해메타데이터와통계를저장하는 transaction object 를 Kernel에더했다. Kernel의 thread control block 는 transaction object를가리킨다. Thread 는최대한 1 개의 active transaction 을가진다. 만약다른 Thread와충돌하고이겼을경우상태가 atomic하게변경된다. Transactional system 이충돌때문에완료할수없는상태가되면 Abort 한다. Checkpointed_registers : Roll-Back 을지원하기위한필드로, 트랜젝션중멈추면 checkpoint 로가는것 Defer_event : commit 시까지연기할이벤트저장 Workset_ list : 어떤 transaction이 private copy를가지고있는지를저장, 각 Entry는 stable object 와 shadow copy를가지고있음 transaction 이 work set 에어떤리스트를추가한다는것은 reference count 를증가시킨다는것을의미함.

Prepare sys_xend() Do Something sys_xend() System transaction 결과에따라작업수행 * 일단 Prepare 되면충돌이예상되는작업을하려는또다른 Thread 는 Stall / rollback

TxOS 는 Virtual file system layer 에서충돌을감지하고 versioned data를관리하는것으로 transactional file system 을만드는것을단순화한다. OS는 versioning update 와충돌감지를제공한다. File system 은오직 atomic 한 commit 과 stable 한저장만을제공한다.

Multi thread 가같은 transaction 에참여한다. 같은 transaction에있는thread는 address space 를공유한다. 또는다른 address space 에있을수도있다. 같은 transaction에있는thread들은공유되고 serialize 하게특정상태에접근한다. Process 가 Transaction 이시작되고나서 fork 모든자식프로세스가 sys_xend해야 commit 된다 fork 하고 Transaction 시작 다른프로세스이므로상관없음

TxOS 의 signal 은다른 transaction 에있는 thread 간 isolation을제공한다. non-transactional 과 transactional thread간 isolation을제공한다. Transaction 내부가아닌 thread로의 signal 은 commit 시점까지연기된다. Transaction 이시작되고내부로들어오게되는 signal 은연기되거나수행된다. Speculative delivery : transaction 이좀더responsive하게된다. Deferred delivery : transactionti 을 atomic 하게보고 commit 시까지연기한다.

Networking transaction내부에서어떤 network communication이 commit시까지buffering 되거나 delay되어야한다 IPC 현재 TxOS에서 kernel thread 간에는제공되지만한계가있다. 한 transaction이 abort 되었을때 IPC로메시지를주어다른 transaction이 abort 되는것 User interfaces Transaction 내부에서 user 입력을받는경우를처리못함 Logging 지원하기가복잡하고성능이떨어진다. 예를들어 password attack을하는사람이하나의 transaction에넣고계속공격하면 실패하면 log 마저도 commit되지않는경우도생긴다. 이런것까지방지하려면복잡해진다. 혹은너무 sensitive 하다

Goal : 트랜잭션을효율적으로처리 / non transaction의오버헤드줄이기 Base : transaction 더했을경우 Static S i : transactional list (for concurrency) NoTx : thrad가 transaction을수행하고있는지검사 (2% 이하 slow down) Bgnd TX : non-transactional thread 수행 ( 다른 transaction 있을경우 ) InTX : 트랜잭션내부 TX : sys_xbegin, sys_xend 추가시오버헤드

Post mark : 파일시스템벤치마크 E-mail, network news, e-commerce client LFS Small file benchmark - 10000 개 1024byte 파일 Large file - 100MB read/write RAB 500 개파일생성 mkdir 20000 cp 500 copy to 500 Dir = 250000 For LFS large : 13% 추가메모리사용 For many small file : 1% space 사용 Dpkg (Debian package manager) SW install 에 ACID를제공한다. 25000라인짜리에디터

DB 서버같은 LDAP Server 를테스트 BDB : Berkeley DB LDIF 는 transaction 이없다.

TxOS sys_xbegin() Link Unlink sys_xend()