Process Concept


  • Process : OS에서 프로그램을 수행시키는 기본 주체

- Runtime System의 수행 주체

- CPU나 다른 자원을 할당 받는 주체

- Process는 OS에서 가장 중요한 단위


  • Decomposition

- 복잡한 문제를 단순한 여러 개의 문제로 나누어 처리하는 방법론


  • Program과 Process의 차이

- Program : 저장매체에 저장된 수동적인 Code Sequence ( 수동적 )

- Process : Program을 실행할 때 일어나는 일 ( 능동적 )

(실행 시 메모리 할당 및 CPU할당 등 다양한 일을 포함)


  • Program State
    - 무언가 Program이 실행될 때 모든 Data를 말한다.
        1. Memory ( Memory Context 
            - Code : 기계어
            - Data : Program 전역 변수
            - Stack : Program 지역 변수
            - Heap : Program 동적 메모리 공간
        2. CPU ( H/W Context )
            - Register value
        3. Per - Process Kernel Info ( System Context )

  • Execution Stream
    - Process가 지금까지 수행한 모든 명령어들의 순서

  • Process 정리
    수행중인 Program -> State 필요 -> State 위에 Thread of Control
    또는 excution Stream 존재

  • Multi Programming
    - 여러개의 Active한 Process가 Memory에 올라가 있는 경우

  • Swapping ( Main Memory의 공간이 작을 때 사용 )
    - 메모리 부족문제를 해결하기 위해 CPU를 사용하지 않는 일부 Process의 데이터를 Memory에서 다른 저장 장치로 옮기고 CPU를 사용할 Process의 데이터를 Memory에 Load 한다.

  • Process Control Block (PCB)
    - OS가 가지고 있는 Process의 정보

  • Process Table
    - 여러개의 PCB를 Array로 관리

  • State Transition
    Process Life Cycle : Process가 생성되었을 때 부터 종료될 때 까지 발생하는 일련의 상태 변화

- Ready State : Active한 Process가 CPU할당을 받지 못한 상태 

(Queue를 통해 관리한다)
*Ready Queue : Ready 상태의 Process들을 관리하기 위한 Queue형태의 자료구조 -> 일반적으로 PCB들을 Linked List로 구현

- Waiting State : 여러개의 Process가 Waiting 상태일 수 있다. 단, Process마다 Waiting 이유가 다를 수 있기 때문에 OS는 Waiting 이유에 따라 별도의 Queue를 통해  Process들을 관리 한다.


*본 자료는 서울대학교 홍성수 교수님의 '운영체제' 수업을 바탕으로 개인적으로 정리하여 올립니다. 관련 이미지 자료는 홍성수 교수님 수업 PPT자료가 출처임을 알립니다. 문제 시 말씀해주시면 삭제 조치 하겠습니다. 감사합니다.

'프로그래밍 > 운영체제' 카테고리의 다른 글

MultiThreading  (0) 2016.10.13
Context Switching(2)  (0) 2016.10.11
Context Switching(1)  (0) 2016.10.11
Process Scheduling  (0) 2016.10.09
Computer Hardware  (0) 2016.10.05

+ Recent posts