Operating System : 운영체제 (2)

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

1) Basic

@ Scheduling을 얘기하기전에

    // Resource에  대해서 얘기해보도록 하겠습니다.

        > Process간에 CPU를 어떻게 Multiplexing하는지에 대해서

            .. 지금까지 배워왔습니다.

 

@ Resource는 두가지로 나누어 볼 수 있습니다.

    // Pre-emptable Resource

        > 양보가 가능한 Resource를 말합니다.

            .. 상황에 따라서

        > 양보한다는 것은 이때까지 자신이 사용하던 것을 보류하거나 포기할 수 있습니다.

            .. CPU 등이 예시가 됩니다.

            .. main Memory

    // Non Pre-emptable Resource

        > 빼앗을 수 없습니다.

        > 빼앗기게 되면 이때까지 하게 되었던 일들이 무효화 됩니다.

            .. Printer 등이 예시가 됩니다. (중간에 프린트를 그만둘 수 없습니다)

            .. CPU도 그럴 수도 있습니다.(상황에 따라 달라집니다.)

 

@ Garbitration, Resource Allocation 문제가 발생합니다. (Scheduling)

    // 여러 Process가 CPU를 잡으려 할 때 누구에게 줄것인가

    // 누가 CPU를 사용할 때 얼마나 줄 것이냐

    // 이 부분은 시스템의 성능에 영향을 굉장히 많이 주게 됩니다.

    

@ CPU Scheduling을 설명하기 전에

    // CPU Burst라는 것을 알아야 합니다.

        > Batch 시절 수행의 unit은 Job이라고 불렸습니다

            .. job(multi x)은 우선 컴퓨터 시스템의 submit이 되면 완료할 때까지 수행해야 합니다.

            .. Process는 끝나지 않아도 중간에 쉴 수 있습니다.

    // 이런 job에 있어서 Scheduling할 때는 entity가 job의 수행 타임입니다.

    // 그렇다면 조금조금씩 점유할 때는 Scheduling 단위로 무엇을 잡아야 하는 것일까요?

        > 이를 CPU Burst를 사용했습니다.

        

@ 어떤 프로그램을 살펴보면

    // CPU를 차지하고, I/O를 기다리고, 다시 CPU를 받는 구간으로 나눌 수 있게됩니다.

        > 이를 CPU Burst, I/O의 경우는 I/O Burst라고 부릅니다.

    // CPU Burst는 CPU를 받아서 수행하는 시간 단위 입니다.

 

@ 그렇다면 CPU Burst의 size는 어느정도 있까요?

    // 3msec 정도 쯤 수행하며,

        > 그 사이즈는 프로그램에 따라 다를 수 있습니다.

    // CPU Burst 사이즈가 큰 경우는

        > 과학 연산 등이 될 것입니다.

    // 작은 경우는

        > I/OInteractive한 경우가 있습니다.

        

@ 어떤 프로세스가 수행을 하지 않을 때, 다음에는 누구에게 넘기고, 얼마나 수행키는 문제를 확인해보겠습니다.

    // CPU State Transition은 언제 일어날까요?

        > Ready -> Running

            .. Dispatcher 관여합니다.

        > Running -> Ready

            .. 이를 어떤 Scheduling이라고 할까요?

            .. Pre-emptive Scheduling

        > Running -> Wait

            .. Non Pre-emptive Scheduling

        > Running -> Terminate

            .. Non Pre-emptive Scheduling

        > Wait -> Ready

            .. Pre-emptive Scheduling

    // Scheduling이라고 하는것은 CPU Transition을 촉발하는 행위라고 생각할 수 있습니다.

    

댓글

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