CS/운영체제

(Part I : Virtualization) 4. The Abstraction : The Process

twfnm67 2019. 10. 31. 20:49

프로세스란?

 - 실행중인 프로그램

 

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

 

-출처-

<OPERATING SYSTEMS three easy pieces>

 

REMZI H. ARPACI-DUSSEAU

ANDREA C. ARPACI-DUSSEAU

UNIVERSITY OF WISCONSIN-MADISON