Operating System : 운영체제

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

(i) Process Control Block

※ 이 글 부터는 에디팅 양식이 변화합니다. 양해 부탁드립니다.

 

@ 앞에서 Process State에 어떤 Context가 존재하는 지 배웠던 것을 기억하시나요?

    // Memory, H/W, System

    // 우리는 이들 중 System Context를 제일 먼저 고려해야 합니다.

        > OS는 정부고 우리가 Process라고 생각하면,

            .. Data Structure : 주민등록증, 자원(부동산, 자동차 등)

    // OS도 각 Process의 정보들을 유지합니다. (Time-Sharing OS)

        > 그리고 이 정보들을 Process Control Block(PCB)이라고 얘기합니다.

            .. Process ID

            .. Process Scheduling(자원 할당에 유용한 정보)

 

@ Time-Sharing OS의 경우는 여러 Process가 존재하고, PCB또한 여러개 존재할 것입니다.

    // 이들을 어떻게 관리하는 것일까요?

        > Array로 만들게 됩니다. 

            .. 이를 Process Table이라고 부릅니다. 

 

@ 우리가 많이 쓰는 linux는 UNIX에서 파생되었습니다.
    // 그 UNIX는 이 PCB를 Array로 구성했습니다.
        > 이렇게 한 이유는 다음과 같을 것이라 생각할 수 있습니다.
            .. Easy to Manipulate
            .. simple to Implement
    // 이런 구조는 한계가 있습니다.
 
@ 이 때, shell programming, OS에게 명령을 제공하는 스크립트 프로그램에서
    // 무한루프를 만들고, 프로세스를 생성하는 프로그램을 끼워두었다고 가정합시다.
        > 이렇게 되면 빠르게 process table이 차게 됩니다.
            .. array 방식을 사용하게 되면 OS가 제공하는 Process의 개수에 제한됩니다.
    
@ 극복법은 Linked List와 같은 것을 쓰면 될 것 입니다.
 
@ 따라서 기억할 것은 Process를 구현하기 위해 제일 필요한 자료구조는 다음과 같습니다.
    // PCB
    // Process table

댓글

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