본문 바로가기
CS study/Operating System

2. 운영체제 Process

by 규나 2021. 9. 9.
SMALL

Process 란?

현재 실행중인 프로그램을 말한다.

 

CPU virtualization in a single-core system

  • Time sharing : 프로세스들이 CPU를 공유하는 것
  • Context switching : OS가 현재 실행중인 프로세스를 중지시키고 다른 프로세스를 실행하는 것
  • Scheduling policy : OS가 다음으로 실행할 프로세스를 선택하는 것

 

Memory Address Space

  • 스택 : 지역변수, 함수 파라미터 (runtime시 크기결정)
  • 힙 : 동적할당-메모리 leak에 주의해야함 (runtime시 크기결정)
  • 데이터 : 전역변수, static (컴파일시 크기결정)
  • 코드 : 코드, 함수 등 (컴파일시 크기결정)

 

Process의 생성과정

  1. 프로그램(코드, 데이터)이 디스크(SSD, HDD)에 존재
  2. OS가 메모리에 프로그램(코드, 데이터)을 탑재
  3. 스택, 힙 생성
  4. CPU 제어를 프로그램에 넘김

 

Process의 상태

New, Ready, Running, Waiting, Terminated

 

PCB(Process Control Block)

  • 프로세스들은 PCB라는 OS의 자료구조에 저장됨
  • State - 프로세스의 상태
  • IP(Instruction Pointer) / PC(Program Counter) - 다음으로 실행될 명령어의 주소
  • Register context - 프로세스가 중단되었을 때 레지스터 값들이 저장됨
  • Memory information - 메모리 세그먼트의 base와 limit 레지스터, 페이지 테이블 등

 

Process API

OS는 생성, 제거, 대기, 각종제어, 상태에 대한 API를 제공

 

POSIX : Process API

POSIX는 Portable Operating System Interface for uniX의 약자

Unix 계열의 OS에서 사용하는 Process API를 말함

  1. fork() 
    - 자식 프로세스를 생성
    - 부모와 자식 프로세스는 메모리 공유를 하지 않으며, 우선순위가 없음
  2. wait()
    - 부모 프로세스가 자식 프로세스가 종료될 때까지 대기
  3. exec()
    - 현재 프로세스를 아예 다른 프로그램으로 전환하여 실행
    - 따라서 이후의 코드는 실행되지 않음
  4. open(), close()
    - 파일 디스크립터를 열고, 닫음
  5. pipe()
    - 두 개의 프로세스를 연결 |
    - output을 생성하는 프로세스와 그걸 사용하는 프로세스를 결합한다고 보면됨

 

 

'CS study > Operating System' 카테고리의 다른 글

6. 운영체제 Threads  (0) 2021.09.18
5. 운영체제 paging  (0) 2021.09.17
4. 운영체제 Virtual Memory  (0) 2021.09.15
3. 운영체제 Scheduling  (0) 2021.09.10
1. 운영체제 Introduction  (0) 2021.09.09

댓글