비직렬 스케줄의 장점

기다리는 시간에 다른 트랜잭션을 넣어 자원을 더 오래 활용한다

핵심은 연산을 섞는 모양이 아니라, 한 트랜잭션의 대기 구간을 다른 트랜잭션의 실행 구간으로 바꿔서 CPU와 자원을 놀리지 않는 데 있습니다.

동시성 증가 -> 처리량 증가
출발 조건 T1은 잠깐 멈출 수 있다

디스크 I/O나 잠금 대기로 인해 T1이 바로 다음 연산을 못 하면, 직렬 실행에서는 그 구간이 그대로 빈 시간처럼 남습니다.

공유 자원 관점 하나의 시간축
비직렬 스케줄은 그 빈 칸에 T2를 끼워 넣는다

두 트랜잭션이 같은 시간 흐름 안에서 번갈아 실행되므로, 대기와 실행이 겹치지 않고 서로 메워집니다.

T1
CPU 사용
I/O 대기
다시 실행
T2
준비
CPU 사용
마무리
공유 CPU는 T1이 기다리는 동안 T2를 실행하고, T1이 다시 준비되면 이어서 복귀시킵니다.
즉시 효과 유휴 시간이 줄어든다

같은 CPU와 자원을 번갈아 써서, 한 트랜잭션만 끝까지 독점할 때보다 같은 시간 안에 더 많은 작업이 진행됩니다.

읽을 결론
교차 실행 -> 자원 공유 -> 전체 처리량 향상

비직렬 스케줄의 장점은 한 트랜잭션의 대기 시간이 다른 트랜잭션의 실행 시간으로 전환된다는 점입니다. 그래서 동시성이 높아지고, 전체 throughput도 함께 올라갑니다.