프로세스
- 메모리에 올라와 실행 되고 있는 프로그램의 인스턴스(독립적인 객체)
- 운영체제로 부터 시스템 자원을 할당받는 작업의 단위
- 동적인 개념으로 실해된 프로그램을 의미한다.
할당받는 시스템 자원의 예
- cpu 시간
- 운영되기 위햏 필요한 주소 공간
- code, data, stack, heap의 구조로 되어 있는 독립된 메모리 영역
특징
- 프로세스는 독립된 메모리 영역에 할당 받는다 (code,data,stack,heap)
- 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드를 가지고 있다.)
- 각 프로세스는 별도의 주소 공간에 실행이 되며 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근이 불가 하다.
- 한 프로세스가 다른 프로세스의 자원에 접근하기 위해서는 프로세스 간의 통신 이 되어야 한다.
(ex. 파이프, 파일, 소켓 등의 이용한 통신 방법)
Read:
프로세스 간의 통신은 IPC를 의미한다 inter-process-communication 을 의미한다.
프로세스 상태 전이
프로세스 상태 전이는 프로세스가 시스템내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미
상태
- 제출: 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수: 제출된 작업이 스풀 공간인 디스크에 할당 위치에 저장된 상태
- 준비: 프로세스가 프로세서를 할당 받기 위해 기다리고 있는 상태
(ex. 프로세스는 준비된 상태 큐 에서 실행을 준비하고 있으며 접수 상태에서 준비 상태로 전이는 JOB 스케줄러에 의해 수행)
- 실행: 준비 상태 큐에 있는 프로세스가 프로세서에게 할당받아 실행되는 상태
(프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료 되면 프로세스는 준비 상태로 전환)
- 종료: 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
관련 용어
- dispatch: 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당 받아 전이 되는 관정
- wake up: 입 출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
- spooling: 입출력 장치의 공유 및 상대적으로 느린 입출력 장치의 처리 속도를 보안하고 다중 프로그래밍 시스템의 성능을 향상 시키기 위해 입출력 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에
입출력하기 위해 디스크에 저장하는 과정