Operating System : 운영체제

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

(i) Process 정의

@ 그래서 Process를 정의하면 대체 뭐지요?

    // 한 마디로, Program in execution 입니다.

        > 조금 더 구체화 하자면, 특정 Process State(상태) 위에서 수행되는 execution Stream 입니다.

            .. 조금 있다가 Process state나 execution stream에 대해서 살펴보도록 하겠습니다.

 

@ 우선 Program in execution 부터 살펴보겠습니다.

 

? Question 위의 개념에서 봤을 때 Program과 Process는 같을까요 다를까요?

    // 조금 다르다는 것을 알 수 있습니다.

        > 하지만, Program과 Process가연관이 있다는 것 또한 알 수 있습니다.

 

? Question Program과 Process는 어떤 차이를 보일까요?

    // (다시 말해서) 어떤 프로그램이 수행 중인 프로그램이 되기 위해서는 어떠해야 할까요?

        > Program이라고 하는 것은 저장 매체에 저장된 수동적인 코드 시퀀스 입니다. (게임 CD)

            .. 어떤 것도 필요없이, Storage만 점유합니다.

        > 이를 컴퓨터에서 수행하게 되면, 바로 Process가 되는 겁니다. (바탕화면에서 더블 클릭)

            .. 이 때, OS는 CD에서 executable file을 읽어오게 됩니다.

            .. 메인 메모리에 로드를 합니다

            .. 프로그램에게 CPU를 제공합니다.

            .. 이런 저런 자원이 필요하게 됩니다.

    // 또 다른 차이는 무엇일까요?

        > Program은 수동적인 매체입니다.

        > Process는 능동적인 주체입니다.

            .. 이는 Execution을 가지고 있다는 것을 의미하며

            .. 이를 OS 전문 용어로 execution stream 혹은 execution Thread of control이라고 얘기합니다.

    // Process라고 하는 것은 수행 중인 Program입니다. 

 

@ 이런 정보를 기반으로 다음 정의를 확인하겠습니다.

 

@ Program state라는 것은 무엇일까요?

    // 뭔가 그 프로그램이 수행되는데 기억해야 할 데이터나 정보들을 저장한(Collection) 것을 말합니다.

        > 그 프로그램이 수행되는데에 영향을 줄 수 있는 정보

        > 수행 완료 후에 영향을 받을 수 있는 정보

    // 이런 모든 저장된 정보를 Program state라고 얘기합니다.

 

@ Program state에 어떤 것이 있는지 나열을 해 볼까요?

    // Memory Context

        > Code, Data(전역 변수, static 변수), Stack(지역 변수와 함수 호출에 필요한 내용), heap(동적 할당)

        > 각각의 Segment가 필요합니다.

    // H/W Context

        > H/W register values (CPU, I/O)

    // System Context

        > Per-Process Kernel Information (커널이 관리하는 프로세스 정보)

        > Process table, open file table, page table

 

@ 그럼 Execution Stream은 무엇일까요?

    // 프로그램을 더블클릭하면 Process가 수행됩니다

         > 이 Process가 지금까지 수행한 모든 명령어들의 순서(sequence)입니다.

 

@ 한마디로, Process라고 하는 것은 수행중인 Program이고

    // Program을 실행시키기 위해서는 state가 필요하며,

        > 그 state위에 Thread of Control(Execution Stream)이 존재한다는 것을 기억하시면 되겠습니다.

 

@ 이제 이렇게 정의를 알았기 때문에

    // OS를 공부하는 저희는

        > 저 Process라는 것이 OS 안에서 어떻게 구현이 되는 것인지 궁금할 필요가 있습니다.

댓글

댓글 본문
  1. 준티
    그 state위에 Thread of Control(Execution Stream)이 존재한다는 것을 기억하시면 되겠습니다.

    가 이해가 안가네요..
    execution stream 이라는게 정확히 뭔가요?
    history의 개념으로 봐야하나요? 그렇다면.. 필수정보는 아닐것 같은데..
    execution stream의 개념이 왜 중요한가요?
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기