CPU가 여러 개 존재한다는 환상을 어떻게 제공하는가?

CPU 가상화의 기본 원리

프로세스란?

프로세스 관련 API(Process API)

기능 설명
create 새로운 프로세스 생성
destroy 프로세스 제거
wait 자식 프로세스 종료 대기
control 일시 중지/재게
status 프로세스 정보 조회

프로세스 생성 절차

  1. 프로그램 코드 메모리 적재
    1. 실행 파일을 읽어 프로세스 주소 공간에 올림
    2. Lazy loading 사용 가능
  2. 실행 스택 생성
    1. 함수 호출 시 지역변수, 인자 저장
  3. 힙 영역 할당(동적 할당)
    1. 동적 메모리 관리 (malloc, new)
  4. 입출력 초기화
    1. 표준 입출력 연결(stdin, stdout, stderr → file descriptor 0,1,2)
  5. 시작점(main 함수)로 분기

프로세스 기본 상태

상태 설명
running CPU를 사용 중인 상태
ready 실행 준비는 되었지만 CPU를 못 받은 상태(Block에서 I/O가 끝나면 ready로 전환)
blocked 입출력 등 외부 이벤트를 기다리는 상태(ex) I/O 작업 수행중)

상태 전이 다이어그램