손영배 블로그 누구나 쉽게 이해하고 습득하기

프로세스와 스레드 기초 본문

OS

프로세스와 스레드 기초

손영배 2019. 10. 3. 17:42

1. 프로세스란

 프로그램이 실행 중인 상태(더블클릭이 되어, 메모리를 할당받은)

 

프로세스는 함수 매개변수, 복귀주소, 로컬변수 등 임시적인 자료를 가지는 프로세스 스택

전역변수를 저장하는 데이터 섹션, 동적 할당 메모리를 위한 힙 등으로 구성된다.

 

2. 프로세스 상태

     프로세스는 다음 상태 중 하나를 가진다.

  • new : 프로세스가 생성 중이다.
  • running : 명령어들이 실행되고 있다.
  • waiting : 프로세스가 어떤 사건(입출력 완료 또는 신호의 수신 등)이 일어나기를 기다린다.
  • ready : 프로세스가 처리기에 할당되기를 기다린다.
  • terminated : 프로세스가 실행을 종료

3. 프로세스 제어 블록(PCB: Process Control Block)

   다른 말로 테스크 제어 블록이라고도 한다.

 

  • Process state : 위에서 설명한 프로세스 상태를 가진다. (new, running, waiting, ready, terminated 등)
  • Program counter : 프로세스가 다음에 실행할 명령어의 주소를 가진다.
  • CPU registeres : 컴퓨터 구조에 따라 다양한 개수와 타입을 가진다. accumlator, index register, stack, register, general-purpose register와 condition code가 포함된다. condition code는 인터럽트 발생 시 Program counter와 함께 저장되어야 한다. 인터럽트 처리 후 프로세스가 중단된 지점으로 돌아와 실행할 수 있도록 한다
  • CPU scheduling information: 프로세스 우선순위, 스케쥴 큐에 대한 포인터와 다른 스케쥴 매개변수들을 포함한다
  • Memory management information: 운영체제가 사용하는 메모리 시스템에 따라 페이지 테이블, 메모리 한계, 세그먼트 테이블 등의 정보를 포함한다.
  • Accounting information: 프로세스 실행을 위해 CPU가 사용된 양과 시간, time limits, execution ID, process number 등을 포함한다.
  • IO status information: 프로세스에게 할당된 I/O 장치들의 리스트와 열린 파일의 리스트를 포함한다.

'OS' 카테고리의 다른 글

교착상태 deadlock  (0) 2019.10.24
비동기식 병행 실행  (0) 2019.10.24
CPU 스케줄러  (0) 2019.10.03
프로세스 스케줄러  (0) 2019.10.02