예를 들어 어떤 DBMS 가 실행되고 있다고 해보자.
DBMS는 여러 사용자가 접근 가능한 시스템이므로, 각 사용자를 응대하는 자식 프로세스가 여러 개 존재할 것이다.
이때 DBMS가 유동적으로 자신이 원하는 특정 자식 프로세스에게 더 높은 CPU를 할당하고 싶은 상황이 있을 수 있다.
하지만 일반적으로는 DBMS의 부모 프로세스도, 클라이언트를 응대하는 자식 프로세스도 모두 운영체제에 의해 관리되므로 DBMS가 이를 컨트롤 할 수 있는 방법은 존재하지 않는다.
Policy vs. Mechanism 은 부모 프로세스에게 자식 프로세스에 대한 관리 기능을 제공해보자는 아이디어에서 등장했다.
즉, 어떤 스케줄링 알고리즘 (Mechanism) 을 사용할 지는 운영체제가 결정하되, 그 알고리즘을 활용하는 정책(Policy)은 User 프로세스에게 맡기는 것이다.
예를 들어 현재 운영체제는 커널에 의해서 '우선순위 스케줄링' 방식을 사용하고 있다고 한다면, Mechanism 은 커널에 의해 결정된 상태이다.
이때 DBMS에게 구체적으로 자신의 자식 프로세스에게 어떤 우선순위를 제공할 것인지 결정할 수 있는 권한을 주고 (Policy), 원하는 우선순위를 부여할 수 있도록 시스템 콜을 제공해주면 DBMS는 중요하다고 생각하는 자식 프로세스에게 많은 CPU를 할당할 수 있게 된다.
책에서는 스케줄링 알고리즘에 파라미터를 뚫어두고 (예를 들면 우선순위 값), 그 파라미터를 유저 프로세스가 채우도록 하는 방식으로 Policy 와 Mechanism 을 분리한다고 표현한다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 13. 스레드의 구현 방법 (0) | 2024.10.21 |
---|---|
[운영체제] 12. 스레드 (0) | 2024.10.21 |
[운영체제] 10. 스케줄링 (4) - Real-Time System 스케줄링 (0) | 2024.10.21 |
[운영체제] 9. 스케줄링 (3) - Interactive System 스케줄링 (0) | 2024.10.20 |
[운영체제] 8. 스케줄링 (2) - Batch System 스케줄링 (2) | 2024.10.20 |