[운영체제] - Process

조재현·2023년 3월 13일
0
post-custom-banner

👍 프로세스와 PCB(Process Control Block)

📢 프로세스란?

  • 프로그램이 디스크에 저장되어 있는 실행할 수 있는 것이라고 한다면, 프로세스현재 실행 중인 프로그램이라고 할 수 있다.
  • 한정된 물리적 CPU에서 여러 개의 프로세스를 실행하려면 가상화(CPU Virtualization)이 필요하고, 이를 구현하기 위해 사용하는 방식이 Time sharing이다.

📢 PCB(Process Control Block)

  • OS에서 프로세스를 관리하기 위한 정보들이 들어있으며, Kernel Space에서 관리된다.

프로세스는 메모리, 레지스터, I/O 정보로 구성되는데 (PCB와는 다르다),

1. 메모리

  • Text: 프로그램의 코드가 저장되는 부분
  • Data: 전역 변수가 저장되는 부분
  • Stack: 지역 변수, 함수 인자, 반환 주소가 저장되는 부분
  • Heap: 동적 할당한 변수가 저장되는 부분

2. 레지스터

  • PC(Program Counter): 프로세스 내에서 실행중인 명령의 주소
  • Stack, frame pointer

3. I/O 정보

  • File descriptor, File offset 등

📢 Process API

-> 운영체제가 프로세스에 대해 기본적으로 가져야 할 API에는 5가지가 있는데,

  • Create: 새로운 프로세스를 만든다.
  • Destroy: 프로세스를 제거한다.
  • Wait: 프로세스가 실행 중 잠시 멈출 일이 있을 때 사용
  • Miscellaneous Control: 잘못 동작중인 프로세스를 종료할 때 사용
  • Status: 프로세스ID 및 프로세스 상태 정보를 알고 싶을 때 사용

📢 Process States

  • Running: Running 상태는 프로세스가 CPU에 의해 실행중인 상태를 의미한다.
  • Ready: 프로그램을 프로세스로 만들었으나, OS의 스케쥴링 정책에 의해 아직 선택받지 못한 상태를 의미한다.
  • Blocked: 프로세스 실행 중 다른 프로세스를 먼저 실행해야 해 대기해야 하거나, I/O 요청 후 그 결과를 대기할 때 프로세스가 멈춰진 상태를 의미한다.
profile
꿈이 많은 개발자 지망생
post-custom-banner

0개의 댓글