PART5TRANSACTIONMANAGEMENTChapter16ConcurrencyControlMay2009DatabaseSystemConcepts-Chapter16ConcurrencyControl-3ConcurrencycontrolofprocessesOS中多个进程对共享资源的使用:互斥使用进程并发控制(互斥与同步)机制:软件方法,硬件方法,信号量,管程,临界域信号量方法:wait(S)criticalsectionsignal(S)锁/lockS:二元信号量,实现对共享资源的互斥使用,{0,1}表示资源使用情况,锁操作控制进程的执行和等待deadlockhandlingdeadlockprevention,deadlockavoidance,deadlockdetectionandrecoveryIntroductiontoChapter16May2009DatabaseSystemConcepts-Chapter16ConcurrencyControl-4IntroductiontoChapter16(cont.)Transactionconcurrencycontrol/*根据可串行化基本原理,采用以下机制控制多个进程对共享数据的互斥访问,实现对事务的并发调度lock-basedprotocols(§16.1)timestamp-basedprotocols(§16.2)validation-basedprotocols(验证,§16.3)multi-versionschemes(多版本,§16.4)deadlockhandling(§16.6)deadlockpreventiondeadlockdetectionandrecoveryMay2009DatabaseSystemConcepts-Chapter16ConcurrencyControl-5§16.1Lock-basedProtocolPrinciples/*用二元信号量“lock”控制并发事务Ti对共享数据Q的访问Ti存取Q时,先向DBMS申请对Q加锁如果此时Q未被其它事务加锁,则Ti加锁成功,继续执行对Q的访问如果此时Q已经被其它事务加锁,则Ti等待,直至Q上的锁被释放,Ti获得锁后继续执行Ti执行完对Q的操作后,解锁QDBMS根据lock-compatibilitymatrix将lock授予请求的事务事务执行过程:申请锁——加锁——读写——解锁May2009DatabaseSystemConcepts-Chapter16ConcurrencyControl-6DBMSusethelock(asthebinarysemaphore)tocontroltransaction’saccesstoshareddataitemsatransactionisallowedtoaccessadataitemonlyifitiscurrentlyholdingalockatthatitemWithrespecttoashareddataitemQ,twomodesinwhichQislocked,andcorrespondingtwomodesoflocksonQshared-modelock:S(Q),onlyread(Q)arepermittedexclusive-modelock:X(Q),read(Q)andwrite(Q)arepermittedLockprimitiveslock-S(Q),unlock-S(Q)lock-X(Q),unlock-X(Q);16.1-1LocksMay2009DatabaseSystemConcepts-Chapter16ConcurrencyControl-7Concurrency-controlmanager/schedulerinDBMSgrantslocktotransact...