#클럭 알고리즘과 2차 기회 알고리즘

Programming 2017. 10. 18. 22:23

클럭(Clock) 알고리즘과 2차 기회(Second Chance) 알고리즘


1. 클럭(Clock) 알고리즘

주기적으로 0으로 재설정하지 않는 시스템을 가정하며, 주기억장치에 적재된 페이지들을 환형리스트로 보고 각 페이지를 시계 방향으로 움직이는 포인터를 사용하여 교체될 페이지를 선정한다. 원칙은 다음과 같다.

① 현재 포인터가 가리키는 페이지의 참조 비트 검사

② 해당 페이지가 리스트에 있고 참조 비트가 0이라면 1로 재설정. 이 때 포인터는 움직이지 않음

③ 그 값이 0이면 해당 페이지를 교체하고 포인터를 시계 방향으로 한 단계 진행 후 선정 과정 종료

④ 그 값이 1이면 해당 페이지의 참조비트를 0으로 재설정하고 포인터를 한 단계 진행 후 단계①부터 반복


페이지 프레임이 4개이고 각 페이지 프레임에 a, b, c, d가 적재되어 있을 때, 다음 참조 스트링을 처리하는 동안 페이지 부재가 몇 회 발생하는지 분석하라. 참조비트는 모두 1로 설정되어 있다. (→:포인터 위치)

참조스트링 = c a d b e b a b c d

시간

0

1

2

3

4

5

6

7

8

9

10

참조 스트링

 

c

a

d

b

e

b

a

b

c

d

프레임0/참조비트

 

→a/1

→a/1

→a/1

→a/1

e/1

e/1

e/1

e/1

→e/1

d/1

프레임1

 

b/1

b/1

b/1

b/1

→b/0

→b/1

b/0

b/1

b/1

→b/0

프레임2

 

c/1

c/1

c/1

c/1

c/0

c/0

a/1

a/1

a/1

a/0

프레임3

 

d/1

d/1

d/1

d/1

d/0

d/0

→d/0

→d/0

c/1

c/1

페이지 부재 발생

 

X

X

X

X

O

(a→e)

X

O

(c→a)

X

O

(d→c)

O

(e→d)


2. 2차 기회(Second Chance) 알고리즘

기본적으로 클럭 알고리즘과 유사하며, 페이지 교체 과정에서 갱신 비트도 함께 검사한다. 원칙은 다음과 같다

① 현재 포인터가 가리키는 페이지의 참조 비트(r)와 갱신 비트(m) 검사

② 해당 페이지가 리스트에 있고 참조 비트가 0이라면 1로 재설정. 이 때 포인터는 움직이지 않음

③ 아래의 표에 따라 과정 수행

(r, m)

수행

(0, 0)

● 해당 페이지를 교체

● 포인터를 시계 방향으로 한 단계 진행 후 선정 과정 종료

(0, 1)

● (0, 0)으로 설정

● 해당 페이지를 소거 대상 리스트에 추가

● 포인터를 시계 방향으로 한 단계 진행 후 단계① 반복

(1, 0)

● (0, 0)으로 설정

● 포인터를 시계 방향으로 한 단계 진행 후 단계① 반복

(1, 1)

● (0, 1)로 설정

● 포인터를 시계 방향으로 한 단계 진행 후 단계① 반복


페이지 프레임이 4개이고 각 페이지 프레임에 a, b, c, d가 적재되어 있을 때, 다음 참조 스트링을 처리하는 동안 페이지 부재가 몇 회 발생하는지 분석하라. 참조비트는 모두 1로 설정되어 있다. (→:포인터 위치, 지수w: 갱신 형태의 페이지)

참조스트링 = c  d  e b  b c d

시간

0

1

2

3

4

5

6

7

8

9

10

참조 스트링

 

c

d

e

b

b

c

d

프레임0/참조비트

 

→a/10

→a/11

→a/11

→a/11

a/00

a/00

a/11

a/11

→a/11

a/00

프레임1

 

b/10

b/10

b/10

b/11

b/00

b/10

b/10

b/10

b/10

d/10

프레임2

 

c/10

c/10

c/10

c/10

e/10

e/10

e/10

e/10

e/10

→e/10

프레임3

 

d/10

d/10

d/10

d/10

→d/00

→d/00

→d/00

→d/00

c/10

c/00

페이지 부재 발생

 

X

X

X

X

O

(c→e)

X

X

X

O

(d→c)

O

(b→d)


참조 교재 :『컴퓨터 운영체제론』, 생능출판사

참조 영상 : (Youtube) Ghadeer Alhasan, 『 Clock replacement algorithm 』

'Programming' 카테고리의 다른 글

#프로세스 스케줄링  (0) 2017.10.19
#페이지 교체 알고리즘  (0) 2017.10.18
#단편화, 스와핑, 페이징, 세그먼테이션  (0) 2017.10.18
#고정분할과 가변분할  (1) 2017.10.18
#단편화와 그 해결 기법  (0) 2017.10.18
admin