Skip to content

정답 관련 문의 #4

@1000Pumpkin

Description

@1000Pumpkin

안녕하세요. 운영체제 1분반 수업 듣는 32211910 박천호입니다.
MLFQ 구현 도중 정답에 오류를 발견하여 제보하고자 메일 드립니다.
MLFQ에서 타임 퀀텀이 2^i 이고, 문맥 교환이 0.2인 테스트 케이스에서 문제를 발견했습니다.

현재 과제로 내주신 스케줄러 구현에서는 어떤 작업이 끝나는 시점에 새로운 작업이 들어오면 새로운 작업을 먼저 수행하도록 되어 있습니다.
이는 B 세트 기준 1초가 지난 시점에 작업2가 들어오고 바로 수행되는 부분에서 알 수 있습니다.
이러한 규칙이 적용되지 않는 부분이 발견되었습니다.
비교를 위해 정답 처리되는 코드와 오답 처리되는 코드의 출력값을 첨부하겠습니다.


Name | Arrival Time | Service Time | First Run Time | Completion Time | Turn Around Time | Response Time

P1 | 0 | 10 | 0 | 39.4 | 39.4 | 0
P2 | 1 | 3 | 1.2 | 7.8 | 6.8 | 0.2
P3 | 2 | 2 | 2.4 | 10.2 | 8.2 | 0.4
P4 | 6 | 5 | 8 | 22 | 16 | 2
P5 | 15 | 12 | 16.8 | 44.6 | 29.6 | 1.8
P6 | 25 | 2 | 26.4 | 29.8 | 4.8 | 1.4
P7 | 27 | 4 | 27.6 | 33 | 6 | 0.6
P8 | 33 | 3 | 33.2 | 36.2 | 3.2 | 0.2

AVG | 13.625 | 5.125 | 14.45 | 27.875 | 14.25 | 0.825

위의 순서와 통계는 오답 처리된 코드의 출력값입니다.


Name | Arrival Time | Service Time | First Run Time | Completion Time | Turn Around Time | Response Time

P1 | 0 | 10 | 0 | 36.2 | 36.2 | 0
P2 | 1 | 3 | 1.2 | 7.8 | 6.8 | 0.2
P3 | 2 | 2 | 2.4 | 10.2 | 8.2 | 0.4
P4 | 6 | 5 | 8 | 22 | 16 | 2
P5 | 15 | 12 | 16.8 | 44.6 | 29.6 | 1.8
P6 | 25 | 2 | 26.4 | 29.8 | 4.8 | 1.4
P7 | 27 | 4 | 27.6 | 33 | 6 | 0.6
P8 | 33 | 3 | 36.4 | 39.4 | 6.4 | 3.4

AVG | 13.625 | 5.125 | 14.85 | 27.875 | 14.25 | 1.225

위의 순서와 통계는 정답 처리된 코드의 출력값입니다.
통계를 보면 두 경우 모두 P7이 33초에 종료되는 것을 확인할 수 있습니다. 그렇게 되면 33초에 P8이 들어오고 P8을 바로 수행해야 합니다.
하지만 정답 코드에서는 P1이 수행되고 있습니다. 그로 인해 P1과 P8의 수행 순서가 뒤바뀌었습니다.
해당 문제가 발생한 원인은 부동 소수점 연산의 오류로 33초가 되는 시점의 current_time_의 값이 32.999999가 되어 P8을 인식하지 못한 것으로 파악되었습니다.

부동 소수점 연산의 오류 또한 시스템에서 발생하는 일이기 때문에 의도하셨을 수도 있다는 생각이 들었습니다.
해당 내용을 한 번 확인해주셨으면 합니다.
그리고 과제 제출 시에 어떤 코드로 제출해야 하는지 말씀해주셨으면 합니다.
감사합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions