프로세스
- 60년대 Mulitics OS에서 처음 나와 IBM OS에서 Task로 정함
- 운영체제에서 작업의 단위로, 수행중인 프로그램을 의미
- 현재 실행중이거나 곧 실행가능한 프로그램
- 실행중인 프로그램, 비동기적 활동, 살아있는 프로그램, PCB를 가진 프로그램, 언제든 실행 가능한 프로그램 모두 프로세스라고 정의
- 프로세스는 살아 있는 동안 실행 상태, 블록 상태, 준비 상태의 3가지 상태변화를 가짐
- 프로세스의 블록 상태는 입출력 종료와 같은 외부 신호를 기다리고 있는 상태를 의미
프로세스 제어 블록 (PCB : Process Control Block)
- 프로세스의 현재 상태, 이름, 우선순위, 메모리 주소, 할당된 자원 목록, PC 정보, 프로그램 카운터 값, 프로그램 상태 정보, 주기억장치 정보 등 프로세스 관련 정보를 포함하는 자료구조
- 부모 프로세스와 자식 프로세스라도 PCB는 각각 생성
- 프로세스 생성 시 생성되고, 프로세스가 파괴될 때 함께 제거
- 프로세스의 생성 정보는 포함하지 않음.
프로세스 상태 전이도
프로세스 상태 전이 과정
준비상태 (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)
- 서브 루틴 호출이나 인터럽트 발생 시에 복귀 주소를 저장하는 곳
'디지털 포렌식 (Forensic) > 디지털포렌식전문가 2급 필기' 카테고리의 다른 글
[디지털포렌식전문가 2급 필기] 1-2-4. 데이터 인코딩 (0) | 2020.10.07 |
---|---|
[디지털포렌식전문가 2급 필기] 1-2-3. 문자 (0) | 2020.10.07 |
[디지털포렌식전문가 2급 필기] 1-2-2. 수 체계 (0) | 2020.10.07 |
[디지털포렌식전문가 2급 필기] 1-2-1. 데이터의 구성 단위 (0) | 2020.10.07 |
[디지털포렌식전문가 2급 필기] 1-1-1. 컴퓨터 구조의 발전 (0) | 2020.10.07 |