손영배 블로그 누구나 쉽게 이해하고 습득하기
프로세스와 스레드 기초 본문
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 |