공부해보잠
프로세스 관리 본문
프로세스의 정의
프로세스(Process)는 일반적으로 프로세서(처리기, cpu)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미 합니다.
운영체제가 관리 하는 최소 단위의 작업(Job),태스크(Task)입니다.
프로세스는 여라 형태로 정의할 수 있습니다.
- PCB를 가진 프로그램: 운영체제가 관리하는 프로세스의 제어 정보를 포함한 데이터 구조.
- 실기억장치(주 기억장치)에 저장된 프로그램: 실행을 위해 메모리에 적재된 프로그램.
- 프로세서가 할당되는 실체: CPU가 실행하기 위해 할당하는 실행 단위.
- 프로시저(부 프로그램)가 활동 중인 것: 프로그램 내에서 실행되는 특정 코드의 실행 흐름.
- 비동기적 행위를 일으키는 주제: 외부 이벤트나 자극에 반응하여 작업을 수행하는 실행 단위.
- 지정된 결과를 얻기 위한 일련의 계통적 동작: 특정 목표를 달성하기 위해 실행되는 작업의 집합.
- 목적 또는 결과에 따라 발생되는 사건들의 과정: 결과를 위해 연속적으로 수행되는 작업.
프로세스 상태 전이
프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미합니다.
프로세스의 상태를 상태전이도로 표시할 수 있습니다.
- 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
- 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 대기(Wait),보류, 블록(Block) : 프로세스에 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고 입출력 처리가 완료될 때가지 대기하고 있는 상태
- 종료 (Terminated,Exit) : 프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태
스레드
스레드는 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 입니다.
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드,하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.
- 프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 한다.
- 자신만의 스텍(Stack)과 레지스터(Register)를 갖으며 독립된 제어 흐름을 갖는다.
프로세스와 스레드의 차이
프로세스와 스레드의 차이는 표를 확인하시면 되겠습니다.
정의 | 실행 중인 프로그램 | 프로세스 내 작업 단위 |
독립성 | 독립된 메모리 공간 사용 | 같은 프로세스의 메모리 공유 |
생성 속도 | 느림 | 빠름 |
자원 | 프로세스 별 자원 할당 | 스레드 간 자원 공유 |
예시 | Chrome 브라우저 하나 | Chrome 탭 각각 |
출처 및 참조:
정보처리 산업기사 시나공(기본서)
728x90