본문 바로가기
카테고리 없음

디지털포렌식 2급 필기 - 컴퓨터구조 - 프로세스 구조

by 룰루리랄라리 2023. 11. 30.

1편 컴퓨터 구조 2장 프로세스 구조

01. 인터럽트

마이크로프로세서에서 인터럽트란 프로그램을 실행하고 있을 때 입출력 하드웨어 등의 장치에 예외상황을 발생하여 처리가 필요할 경우에 마이크로 프로세서에게 알려 처리할 수 있도록 하는 것을 말한다. 이와 같은 의미로 파이프라인 구조에서 인터럽트가 발생하면 다음 클럭 사이클에 실행할 수 없게 된다.

 

02. 프로세스 상태의 전이

ㆍ생성(create) : 프로세스가 생성되는 중이다.

ㆍ실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.

ㆍ준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있다. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당받는다.

ㆍ대기(waiting/block) : 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.

ㆍ종료(terminated) : 프로세스의 실행이 종료되었다.

따라서 프로세스 상태 전이는 준비상태 -> 실행상태 -> 블록(대기)상태-> 준비상태이다.

 

03. 인터럽트 발생 상황

인터럽트의 종류

Supervisor Call Interrupt : 사용자가 프로그램에서 SVC명령을 불러냈을 경우, 입출력수행, 기억장치 할당따위를 맡는 인터럽트

ㆍ입출력 인터럽트(I/O Interrupt) : 입출력의 종료나, 입출력의 오류에 의해 CPU의 기능이 요청되는 인터럽트

ㆍ외부 인터럽트(External Interrupt) : 오퍼레이터나 타이머에 뜻해 의도적으로 프로그램이 중단되는 인터럽트

ㆍ재시작 인터럽트(Restart Interrupt) : 오퍼레이터 및 다른 프로세스에 의해 재시작명령이 도착했을 때 실행되는 인터럽트

ㆍ프로그램 검사 인터럽트(Program Check Interrupt) : 프로그램 실행중 보호된 기억공간안에 다가가거나, 불법적인 명령수행과 같은 프로그램의 문제가 발생한 경우 불려지는 인터럽트

ㆍ장치 검사 인터럽트 (Machine check interrupt) : 하드웨어구조로 말미암아 일어난다.

 

 

04. SP(Stack Pointer)

서브루틴 호출이나 인터럽트 발생시에 복귀주소(return address)SP에 저장한다.

 

06. 인터럽트

컴퓨터에서 I/O작업이나 예외 상황 등을 처리하기 위하여 CPU에 보내는 시그널은 인터럽트이다.

 

07. PCB

프로세스 제어 블록(Process Control Block, PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다.

PCB에는 프로세스 식별자(Process ID), 프로세스 상태(Process State), 프로그램 계수기(Program Counter), CPU 레지스터 및 일반 레지스터, CPU 스케줄링 정보, CPU 점유시간 등, 메모리 관리 정보, 프로세스 계정 정보, 입출력 상태 정보가 포함되어있다.

 

13. 프로세스 상태 전이

ㆍ디스패치(dispatch)

준비 리스트의 맨 앞에 있던 프로세스가 CPU를 점유하게 되는 것, 즉 준비 상태에서 실행 상태로 바뀌는 것을 디스패치라고 하며 다음과 같이 표시한다.

dispatch (processname) : ready running

ㆍ보류(waiting, block)

실행 상태의 프로세스가 허가된 시간을 다 쓰기 전에 입출력 동작을 필요로 하는 경우 프로세스는 CPU를 스스로 반납하고 보류 상태로 넘어 간다.

block (processname) : running blocked

ㆍ깨움(wakeup)

입출력 작업 종료 등 기다리던 사건이 일어났을 때 보류 상태에서 준비 상태로 넘어가는 과정이다.

wakeup (processname) : blocked ready

ㆍ시간제한(timeout)

운영체제는 프로세스가 프로세서를 계속 독점해서 사용하지 못하게 하기 위해 clock interrupt를 두어서 프로세스가 일정 시간동안만 (시분할 시스템의 time slice) 프로세서를 점유할 수 있게 한다

timeout(processname) : running -> ready

 

. 프로세스는 실행, 준비, 대기 3가지 상태변화를 갖는다

 

14. 프로세스

수행중이던 프로세스가 이전 상태로 돌아가기위해 인터럽트를 발생하는 것은 blocked이다.

 

21. 인터럽트

CPU가 인터럽트 신호를 받으면 진행 중이던 작업을 보류하고 입터럽트를 처리한다.

 

22. PCB

부모 프로세스와 자식 프로세스는 PCB를 공유하지 않고, 자식 프로세스의 PPID가 부모프로세스의 PID이다.

 

25. PCB

PCB에는 프로세스 식별자, 프로세스 상태, 프로그램 계수, CPU 레지스터 및 일반 레지스터, CPU 스케줄링 정보, CPU 점유시간 등, 메모리 관리 정보, 프로세스 계정 정보, 입출력 상태 정보가 포함되어있다. 프로세스 생성정보는 없다.

댓글