Computer Science / Engineering

컴퓨터 과학 / 공학

코스 전체목록

닫기
본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

2) Process Scheduling

@ Process Scheduling은 Process와 관련하여

    // OS의 가장 중요한 Operation입니다.

 

@ Scheduling은 행위입니다.

    // 각 Process들이 fair하게 CPU를 Share할 수 있도록

        > 다음에 수행시켜야 할 Process들을 선택하는 작업입니다.

 

@ 위의 Goal인 CPU share에는 위에서도 보이듯이 제약조건이 있습니다. 다시 정리하면,

    // Fair하게 해야 한다는 것과

    // CPU Protection을 해줘야 한다는 것이지요.

 

@ Fair하다는 것은 상대적인 개념입니다.

    // 이는 OS에서도 똑같이 적용이 됩니다. 

        > 같은 조건에서 같은 것을 받지 못하는 상황

        > 혹은 다른 조건에서 같은 것을 받고 있는 상황

    // 위의 상황들만 보았을 때에도 Application Specific한 상황이 됩니다.

    // 한 마디로 OS가 절대적으로 만족시켜야 하는 상황은 아닌 것입니다.

    

@ 하지만 우리가 지금 보고 있는 것은 General Performence time sharing Operation이기에

    // 일단 Fairness를 CPU를 1/n을 받는 것으로 정의하겠습니다.

        > 각 Process들이 언젠가는 CPU를 할당받아 수행을 완료해야 합니다.

        

@ Protection은 무엇일까요?

    // 한 Process가 CPU를 사용하다가, 다른 Process에게 양보했다가

        > 그 Process의 Program에 문제가 생기면 안됩니다.

    // 이러한 상황을 막는 것이 바로 CPU Protection입니다.

 

@ 어떤 상황이 발생하여 CPU를 다른 Process에게 넘겨주어야 하는 상황이 발생합니다.

    //  이 때 어떤 Process에게 넘겨줄 것인지가 이슈라고 생각할 수 있습니다.

        >  이는 상황에 따라 그 중요도가 다를 수 있습니다.

            .. 원자력 발전소와 같은 곳에서는 안전에 관련한 프로그램이 우선순위를 가져야 할 것입니다.

            .. 하지만 일반적인 서버에서는 웬만한 Process는 같은 순위를 가지고 있어야 합니다.

        > 각각의 상황에서 Fair의 의미가 다르다는 것은 이것을 의미합니다.

        > 이것이 Application Specific하다는 것이며, 의사결정의 형태도 달라지게 됩니다.

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기