본문 바로가기

디지털 포렌식 (Forensic)/디지털포렌식전문가 2급 필기

[디지털포렌식전문가 2급 필기] 1-1-2. 프로세스 구조

728x90
반응형

프로세스

- 60년대 Mulitics OS에서 처음 나와 IBM OS에서 Task로 정함

- 운영체제에서 작업의 단위로, 수행중인 프로그램을 의미

- 현재 실행중이거나 곧 실행가능한 프로그램

- 실행중인 프로그램, 비동기적 활동, 살아있는 프로그램, PCB를 가진 프로그램, 언제든 실행 가능한 프로그램 모두 프로세스라고 정의

- 프로세스는 살아 있는 동안 실행 상태, 블록 상태, 준비 상태의 3가지 상태변화를 가짐

- 프로세스의 블록 상태는 입출력 종료와 같은 외부 신호를 기다리고 있는 상태를 의미

 

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

- 프로세스의 현재 상태, 이름, 우선순위, 메모리 주소, 할당된 자원 목록, PC 정보, 프로그램 카운터 값, 프로그램 상태 정보, 주기억장치 정보 등 프로세스 관련 정보를 포함하는 자료구조

- 부모 프로세스와 자식 프로세스라도 PCB는 각각 생성

- 프로세스 생성 시 생성되고, 프로세스가 파괴될 때 함께 제거

- 프로세스의 생성 정보는 포함하지 않음.

 

프로세스 상태 전이도

출처 : IT용어위키

프로세스 상태 전이 과정

준비상태 (Ready State) -> 실행상태 (Run State) -> 블록상태 (Block State) -> 준비 상태 (Ready State)

디스패치 (Dispatch) : 준비상태 -> 실행상태

- 준비 리스트의 프로세스 중 우선순위가 높은 프로세스가 CPU를 점유하여 할당 시간을 배정

보류 (Block) : 실행상태 -> 블록상태 (대기상태)

- 실행 상태의 프로세스가 할당받은 시간을 다 쓰기 전에 입/출력 동작을 필요로 하는 경우 프로세스는 CPU를 반납

깨움 (Wake Up) : 블록상태 (대기상태) -> 준비상태

- 입/출력 작업 종료 등 기다리던 사건이 발생했을 때 블록상태에서 준비상태로 넘어가는 과정

시간제한 (Timer Runout) : 실행상태 -> 준비상태

- 디스패치에 의해 실행상태로 변한 프로세스가 할당 시간을 모두 사용하면 준비상태로 변경

- 시간제한에 의해 준비상태가 된 프로세스는 다시 CPU를 할당받기를 기다림 

 

프로세스 관련 작업

Creation

- 새로운 프로세스를 생성하기 위한 작업

- 운영체제가 보조기억장치에 저장된 프로그램을 선택하면 새로운 PCB를 생성

Destroy

- 수행 중이던 프로세스를 종료하기 위한 작업

- PCB를 회수하고 다시 보조기억장치에 프로그램을 저장

- 부모 프로세스가 없어지면 자식 프로세스도 자동 소멸

Suspend

- 실행 중이던 프로세스가 수행 중인 작업을 멈추고 대기하는 작업

- 해당 프로세스는 윈도우 창이 옅은 색으로 변함

Resume

- 대기중인 프로세스가 이전 상태로 돌아가는 작업

- 인터럽트를 발생시키지는 않음

 

인터럽트

- 컴퓨터에서 입/출력 작업이나 예외 상황 등을 처리하기 위하여 CPU에게 보내는 시그널

- 컴퓨터로 하여금 정상적인 명령 실행의 순서를 변경하도록 하는 신호

- 파이프라인 구조에서 다음 명령어가 다음 클럭 사이클에 실행할 수 없는 상황

- 인터럽트를 알리는 비트가 동시에 발생하면, 우선수위에 따라 처리

- 콘솔 인터럽트는 콘솔 터미널에서 인터럽트 키를 누를 때 발생

- 클럭 인터럽트는 프로세스의 시간 할당량 종료와 관련된 인터럽트

- 연산 결과 값이 0이 되는 경우에는 인터럽트가 발생하지 않음

- 인터럽트 처리 루틴(Interrupt Processing Routine)은 인터럽트를 발생시킨 상태에 대한 응답으로 특정한 행동을 취하도록 설계

- CPU가 인터럽트 신호를 받으면 프로그램 카운터에 있는 복귀 주소를 메모리 스택에 저장하고, 입/출력 전송을 위한 서비스 루틴으로 제어를 이동

 

인터럽트 발생 원인

- 갑작스러운 정전

- 입출력기기 오류 발생

- 보호된 기억 공간 접근

- operator의 의도적인 조작

- 기억공간 내 허용되지 않는 곳에서의 접근 시도

- 프로그램 착오

- 불법적인 인스트럭션 수행

- 사용자가 프로그램에서 SVC (Super Visor Call) 명령을 호출

- 콘솔 터미널에서 인터럽트 키를 누를 때

- 하드웨어상의 오류가 있을 때

- 자식 프로그램 호출 (X)

- 임의의 부프로그램 호출 (X)

- 연산된 값이 0이 되는 경우 (X)

 

인터럽트 중 프린터 용지가 부족할 때 발생하는 인터럽트

- PC 하드웨어 인터럽트

 

프로그램 카운터 (Program Counter)

- 다음에 실행할 명령어의 주소를 기억하고 있는 중앙처리장치의 레지스터 중 하나

 

스택 포인터 (Stack Pointer)

- 서브 루틴 호출이나 인터럽트 발생 시에 복귀 주소를 저장하는 곳

728x90
반응형