(Part I : Virtualization) 4. The Abstraction : The Process
프로세스란?
- 실행중인 프로그램
CPU 가상화란?
- 믈리적으로 하나 존재하는 CPU를 다양한 프로세스와 공유함으로써 마치 하나의 프로세스가 하나의 CPU를 할당 받은 것과 같은 illusion을 만들어내는 것
- Low Level에서의 Mechanism과 Higher Level에서의 Policy(프로세스 스케줄링 등)가 결합하여 OS 단에서 CPU virtualizing을 실현
4.1 The Abstraction : A Process
- 프로세스 구성 : 메모리, 레지스터
4.2 Process API
- Create : 프로세스 생성
- Destroy : 프로세스 종료
- Wait : 프로세스 중지
- etc
4.3 Process Creation : A Little More Detail
- 프로세스는 실행 중인 프로그램. 그렇다면 프로그램 --> 프로세스 ..how?
- 디스크에 존재하는 프로그램 상에 있는 정적 변수(static), 코드 등을 메모리에 로드
- 코드와 static 변수 로드 후에는 스택 할당(for 지역변수, 함수 파라미터, 함수 반환값 등을 저장)
- 즉, OS는 이런 메모리를 할당하고 프로세스에게 던져주는 역할을 함
- heap 영역과 I/O 작업을 위한 setup
--> 이런 일련의 과정 후에 프로그램은 executable한 상태가 되고, CPU를 할당받아 실행을 시작하게 된다.
4.4 Process States
- Running / Ready / Blocked
-출처-
<OPERATING SYSTEMS three easy pieces>
REMZI H. ARPACI-DUSSEAU
ANDREA C. ARPACI-DUSSEAU
UNIVERSITY OF WISCONSIN-MADISON