간단하게 개념을 정리해보자
Processor
: CPU
+ 제어장치
Program
: 디스크
에 있는 프로그램 파일Process
: 메모리
에 있는 실행중인 프로그램이번 포스트에서는 Process
개념, 생성, 종료, 추적에 대해 알아본다.
Process
- 현재 실행중인 프로그램
- 컴퓨터에서 실행되는 프로그램의 인스턴스
- 프로세서에 할당되어 실행될 수 있는 객체
- 명령어들의 순차 수행, 현재 상태, 연계된 시스템 자원들의 집합 등에 의해 특정지어지는 활성화 단위
Process = Program Code + set of data + PCB
Process Creation
터미널의 사용자가 시스템에 로그인 한 경우
운영체제는 사용자가 기다릴 필요 없이 사용자 프로그램을 대신하여 기능을 수행하는 프로세스를 생성할 수 있음
모듈화 또는 병렬화를 이용하기 위해, 사용자 프로그램은 많은 프로세스의 생성을 명령할 수 있음
ex)Visual Studio
->컴파일러(+링커)
->실행파일 실행(프로세스 생성)
Process Termination
Normal completion
정상 종료되는 경우 프로세스는 OS 서비스 호출하여 실행이 완료되었음을 알림
Bounds violation
포인터 변수의 주소가 잘못된 경우 발생할 수 있음
Arithmetic error
0으로 나누거나(division by zero) 하드웨어가 수용할 수 있는 것보다 더 큰 숫자를 저장한 경우
Invalid instruction
프로세스가 존재하지 않는 명령을 실행하려고 시도하는 경우
Parent termination
부모 프로세스가 종료되면 운영체제는 부모 프로세스의 모든 자식 프로세스를 종료시킬 수 있음