2020. 5. 15.

[방통대] (운영체제) 과제물 os 스케줄링 기법


    어렵지 않아서 세시간 정도면 끝날줄 알았다.
    역시나 이런 오판은 계산착오로 이어졌다
    제출하고 나서 알앗다 표는 제대로 써놓고 ..ㅋㅋ

    1. 다음에 대해 답하시오. (15)
    (1) 학생 본인이 이 과제물을 작성하는데 사용하고 있는 시스템의 운영체제가 무엇인지 쓰시오.
     
    운영체제 이름 : Windows 10 pro
    버전 : 10.0.18363 빌드 18363
     
    - 설정 창에서 확인            - 명령 프롬프트에서 확인


    - 시스템 정보(msinfo32)에서 확인

     
     
    (2) (1)에서 답한 운영체제의 유형이 무엇인지 쓰고, 왜 그렇게 생각하는지 그 이유도 설명하시오.
     
    하이브리드 운영체제입니다.
    근거는 현재 쓰고 있는 한글프로그램은 대화형 운영체제의 이용자의 욕구를 만족시켜주기 위하여 입출력을 계속해서 보여주고 있습니다. 대화형 운영체제처럼 즉각적인 피드백을 보여주면서 사용하고 있으니 대화형 운영체제라고 생각 할 수 있지만 대화형 운영체제에서는 백그라운드 프로그램이 실행되고 있으면 안 됩니다. 하지만 VM웨어는 계속하여 Linux를 설치하고 있습니다. 하이브리드 운영체제라면 대화형 작업에 필요한 만큼만 CPU를 할당해주고 백그라운드에서 VM웨어가 동작할 수 있도록 CPU를 할당해줄것입니다. 확인을 하기 위해서 작업관리자 창을 스크린 샷으로 찍었습니다.


     
     
    1. 다음에 대해 답하시오. (15)
    (1) SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘을 각각 설명하고, 두 알고리즘의 차이점을 구체적으로 비교 설명하시오.
     
    컴퓨터 용어는 대체로 영어의 뜻을 그대로 약어로 쓰는 경우가 많은 것 같습니다.
    둘의 영어 뜻이 비슷하지만 조금은 달랐습니다.
     
    SJF(shortest job first) 제일 짧은 일부터 먼저라고 해석하였습니다. 정확한 정의는 기다리는 프로세스 중 실행시간이 가장 짧다고 예상된 것을 먼저 디스패치 하여 실행하는 비선점 스케줄링 알고리즘이라고 되어 있습니다. 실행중인 것을 빼앗지 않고 기다렸다가 제일 짧게 끝나는 프로세스를 먼저 실행시켜주는 것이라고 이해하였습니다. 짧은 실행시간을 가진 프로세스들이 너무 많아 순서가 밀린 긴 실행시간을 가진 프로세스는 아예 진행조차 안 될 수 있습니다. 이러한 단점으로 프로세스의 총 실행 시간을 예측 할 수 없습니다.
     
    SRT(shortest remaining time) 제일 짧은 남은시간이 먼저라고 해석하였습니다. 정확한 정의는 새로 들어오는 프로세스를 포함하여 실행이 끝날 때까지 남은 시간 추정치가 가장 짧은 프로세스를 먼저 디스패치 하여 실행하는 것이라고 말합니다. 선점 스케줄링 방법으로 프로세스가 끝나기 전에 빼앗길 수 있습니다. 실시간으로 짧은 실행시간인 프로세스가 유리한 스케줄링 방법입니다. 현실적으로 구현이 불가능한 스케줄링 방법이라고 합니다. 실시간으로 계속 실행시간의 추정을 해야 하는 일 자체가 부하를 줄 것으로 보입니다. 가능하다면 평균대기시간이 매우 많이 줄어들 것으로 보이나 점점 하드웨어의 성능이 좋아지고 있는 사회를 보면 구현이 될 곳으로 볼 수 있을까 의문이 들기도 합니다.
     
    SJF와 SRT의 차이점은 선점이냐 비선점이냐의 차이인 것으로 이해됩니다. SJF는 진행 중인 프로세스를 종료시킬 수 없지만 SRT는 진행 중인 프로세스가 진행시간이 짧은 프로세스가 실행되게 되면 밀려날 수 있다는 것입니다. 사용자 입장에서는SRT는 이론상으로는 SJF보다 빠르다고 느끼는 게 맞습니다. 하지만 계속해서 남은시간을 계산해야하는 CPU가 너무 많은 오버헤드로 인해 현실에서는 어떨지 모르겠습니다.
     
    (2) 프로세스별 도착시간과 필요한 CPU 사이클이 표와 같을 때, SJF 스케줄링 알고리즘과 SRT 스케줄링 알고리즘 각각에 대해 프로세스가 실행되는 순서를 시간과 함께 표시하고, 평균 대기시간과 평균 반환시간도 각각 구하시오.

    도착시간
    0
    1
    2
    3
    6
    프로세스
    A
    B
    C
    D
    E
    CPU 사이클
    4
    6
    1
    3
    1


    SJF
    평균 대기시간은 2.6초입니다.
    평균 반환시간은 5.4초입니다.
     
    SRT
    평균 대기시간은 2.4초입니다.
    평균 반환시간은 5.4초입니다.
     
     
    SJF표

    진행시간
    0
    1
    2
    3
    4
    5
    6
    7
    프로세스도착
    A
    B
    C
    D
     
     
    E
     
    A
    4
    3
    2
    1
    0
     
     
     
    B
     
    6
    6
    6
    6
    6
    6
    6
    C
     
     
    1
    1
    1
    0
     
     
    D
     
     
     
    3
    3
    3
    2
    1
    E
     
     
     
     
     
     
    1
    1
    CPU 할당상황
    A
    A
    A
    A
    C
    D
    D
    D
     
    8
    9
    10
    11
    12
    13
    14
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    6
    6
    5
    4
    3
    2
    1
     
     
     
     
     
     
     
    0
     
     
     
     
     
     
    1
    0
     
     
     
     
     
    E
    B
    B
    B
    B
    B
    B



    4,5,8,9 마다 실행중인 프로세스가 0으로 끝나고 현재까지 들어온 프로세스의 남은시간을 비교하여 제일 짧은 진행시간을 가진 프로세스들이 할당됩니다.
    4초에서 A가 끝나고 들어온 프로세스 중에 C가 제일 실행시간이 짧은 1초이므로 CPU를 할당받습니다.
    5초에서 C가 끝나고 들어온 프로세스 중에 D가 제일 실행시간이 짧은 3초이므로 CPU를 할당받습니다.
    8초에서 D가 끝나고 들어온 프로세스 중에 E가 제일 실행시간이 짧은 1초이므로 CPU를 할당받습니다.
    9초에서 E가 끝나고 들어온 프로세스 중에 B만 남아 나머지 6초를 CPU 할당을 받습니다.
    A의 대기시간은 오자마자 실행되어 0초이며 반환시간은 대시시간과 실행시간을 더해 0+4= 4
    B의 대기시간은 다른 프로세스보다 길어 8초 반환시간은 대시시간과 실행시간을 더해 8+6=14
    C의 대기시간은 도착하고 2초 뒤에 할당받아 2초 반환시간은 대시시간과 실행시간을 더해 2+2=4
    D의 대기시간은 도착하고 2초 뒤에 할당받아 2초 반환시간은 대시시간과 실행시간을 더해 2+2=4
    E의 대기시간은 도착하고 1초 뒤에 할당받아 1초 반환시간은 대시시간과 실행시간을 더해 1+1=1
    평균 대기시간은 (0+8+2+2+1)/5 = 2.6
    평균 반환시간은 (4+14+4+4+1)/5 = 5.4
     
    SRT

    진행시간
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    프로세스도착
    A
    B
    C
    D
     
     
    E
     
     
     
    A
    4
    3
    2
    2
    1
    0
     
     
     
     
    B
     
    6
    6
    6
    6
    6
    6
    6
    6
    6
    C
     
     
    1
    0
     
     
     
     
     
     
    D
     
     
     
    3
    3
    3
    2
    2
    1
    0
    E
     
     
     
     
     
     
    1
    0
     
     
    CPU 할당상황
    A
    A
    C
    A
    A
    D
    E
    D
    D
    B
     
    10
    11
    12
    13
    14
     
     
     
     
     
     
     
     
     
     
    5
    4
    3
    2
    1
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    B
    B
    B
    B
    B


    A는 진행시간 0초부터 작업을 시작해서 진행시간 2초에 C보다 작업시간이 길어 C에게 1초간 넘겨줬다가 진행시간 3초에 와서 진행을 다시 시작합니다.
    B는 작업시간이 제일 길어 진행시간9초에 할당을 받아 실행됩니다.
    C는 진행시간 2초에 제일 짧은 실행시간을 가지므로 실행되고 종료됩니다.
    D는 진행시간 3초에 들어와 5초에 할당을 받고 작업시간 6초에 E보다 길어져 E에게 넘겨주고 7초에 다시 할당을 받습니다.
    E는 진행시간 6초에 도착해서 제일 짧은 진행시간을 가지므로 바로 실행됩니다.
     
    A는 0초에 할당받고 C에게 1초를 선점당해 1초의 대기시간을 갖습니다.
    B는 작업시간이 제일 길어 작업시간 9초에 할당을 받으므로 8초의 대기시간을 갖습니다.
    C는 제일 짧은 진행시간을 가져 대기시간이 0초입니다.
    D는 3초에 도착해 진행시간 5초에서 1초간 진행되고 진행시간 6초에 더 짧은 E에게 cpu를 1초간 선점 당했다가 진행시간 7초에 할당받으므로 총 대기시간은 3초입니다.
    E는 짧은 진행시간으로 대기시간 없이 바로 실행되 0초입니다.
     
    A는 대기시간 1초와 진행시간 4초를 더해 총 5초의 반환시간을 가집니다.
    B는 대기시간 8초와 작업시간 6초를 더해 총 14초의 반환시간을 가집니다.
    C는 대기시간 0초와 작업시간 1초를 더해 총 1초의 반환시간을 가집니다.
    D는 대기시간 3초와 작업시간 3초를 더해 총 6초의 반환시간을 가집니다.
    E는 대기시간 0초와 작업시간 1초를 더해 총 1초의 반환시간을 가집니다.
    평균 대기시간은 (1+8+0+3+0)/5 = 2.4
    평균 반환시간은 (5+14+1+6+1)/5 = 5.4
     
    출처 : 방송통신대학교재, 운영체제

댓글 없음:

댓글 쓰기