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 |