I . 컴퓨터 구조
컴퓨터의 세대 분류
1세대 컴퓨터
진공관을 사용하여 컴퓨터 크기가 매우 크며 열 발생 및 전력 소모가 크다.
폰 노이만이 제안한 프로그램 내장 개념을 도입 - 명령어와 데이터가 같은 메모리 버스를 통해 CPU에 전달되는 방식
일괄처리 방식 : 일정량 또는 일정 기간 데이터를 모아서 한꺼번에 처리한다.
수치계산, 통계 등에 사용.
컴퓨터 언어는 기계어와 어셈블리어를 사용.
2세대 컴퓨터
트랜지스터를 사용하여 기억 용량과 연산 속도가 증가하였으며 크기는 소형화됨.
다중 프로그래밍 기법을 사용 - 하나의 CPU와 주기억장치를 이용해 여러 개의 프로그램을 동시에 처리함.
운영체제의 개념 도입.
자기 드럼, 자기 디스크 등의 보조 기억 장치 사용.
과학계산, 일반 사무용으로 사용함.
컴퓨터 언어는 FORTRAN, ALGOL, COBOL 등을 사용.
3세대 컴퓨터
집적회로(IC)를 사용하려 가격이 내려가고 소형화가 가능해짐.
시분할 처리를 통한 멀티 프로그래밍이 가능해짐 - 여러 명의 사용자가 동시에 시스템을 사용할 수 있게 하한다. 컴퓨터는 사용자의 프로그램을 번갈아가며 처리해주어 각 사용자들에게 독립된 컴퓨터를 사용하는 느낌을 준다.
컴퓨터 언어는 C, BASIC, PASCAL 등을 사용함.
4세대 컴퓨터
고밀도 집적회로(LSI)를 사용하여 가격이 내려가고 컴퓨터의 소형화가 가능해짐.
실시간 처리방식이 가능함 - 데이터 처리 요구를 즉시 처리하여 결과를 산출하는 방식.
개인 컴퓨터가 대중화되기 시작함.
네트워크 기술 발달로 인터넷이 등장함.
5세대 컴퓨터
초고밀도 집적회로(VLSI)를 사용하여 초미니, 초고속 컴퓨터 제작이 가능해짐.
다중 처리, 병렬 처리 컴퓨터 시스템 사용. - 작업을 여러 프로세서에 분배하여 동시에 수행함으로써 빠른 시간 내에 작업을 처리하는 것
인간이 컴퓨터를 편리하게 다룰 수 있도록 그래픽 유저 인터페이스(GUI) 구현.
자연어, 인공지능어를 사용한 프로그래밍이 가능.
프로세스 (Process)
운영체제에서 수행중인 프로그램을 말한다.
프로세스는 준비 상태, 실행 상태, 보류 상태의 세 단계의 변화가 이루어진다.
프로세스의 상태
준비 상태(Ready state)
프로세스가 CPU에 할당받기를 기다리는 상태
실행 상태 (Running state)
CPU에 프로세스를 할당받아 실행 중인 상태
보류 상태 (Blocked state)
프로세스가 입출력이나 이벤트를 기다리는 상태
프로세스의 상태 전이
Dispatch (Ready 상태에서 Run 상태로 전환)
여러 프로세스 중 한 프로세스를 선정하여 CPU에 할당하는 과정
Timer runout = Interrupt (Run 상태에서 Ready 상태로 전환)
타임아웃, 입/출력 등이 발생하여 현재 실행중인 프로세스를 준비 상태로 전환하고 해당 작업을 먼저 처리한다.
Block (Run 상태에서 Blocked 상태로 전환)
실행 중인 프로세스가 입/출력이나 이벤트를 처리해야 하는 경우, 입/출력이나 이벤트가 끝날 때까지 대기 상태로 전환한다.
Wake up (Blocked 상태에서 Ready 상태로 전환)
입/출력이나 이벤트가 모두 끝난 프로세스를 다시 준비 상태로 만들어 스케줄러에 의해 선택 가능한 상태로 전환
프로세스 제어 블록 (Process Control Block : PCB)
운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳.
프로세스 생성시 만들어져 주기억장치에 저장했다가 프로세스가 완료되면 함께 제거된다.
아래와 같은 정보가 포함되어 있다.
- 프로세스의 현재 상태
- 프로세스 이름
- 프로세스 우선순위
- 메모리 주소
- 프로그램 카운터 : 다음에 실행할 명령어의 주소
- IP(PC)정보
- CPU 레지스터 : 프로세스 실행을 위해 저장해야 할 레지스터 정보
- CPU 스케줄링 정보 : CPU 스케줄러에 의해 중단된 시간
- I/O 상태 정보 : 프로세스에 할당된 I/O 디바이스 목록
프로세스 관련 작업
creation
새로운 프로세스를 생성하는 작업.
운영제체가 보조기억장치에 저장된 프로그램을 선택하며 이 때 새로운 PCB가 생성된다.
destroy
수행중인 프로세스를 종료하는 작업
PCB를 회수하고 보조 기억장치에 프로그램을 다시 저장한다.
만일 부모 프로세스를 종료하면 자식 프로세스도 자동으로 소멸한다.
suspend
실행 중인 프로세스가 작업을 멈추고 대기하는 것
대기중인 프로세스는 윈도우 창이 옅은 색으로 변한다.
resume
suspend 상태인 프로세스가 다시 활동을 재개하는 것.
인터럽트 (Interrrupt)
인터럽트의 정의
CPU가 프로그램을 실행하는 도중에 급히 다른 일을 처리하려 할 때 사용할 수 있는 기능이다.
한 개의 CPU를 사용하는 컴퓨터는 한 순간에 하나의 일만 처리할 수 있다. 일을 처리하는 도중 급한 일을 먼저 처리할 필요가 있을 때 인터럽트를 사용한다.
인터럽트 처리 도중 또 다른 인터럽트가 발생하면 우선순위에 따라 처리한다.
작업 도중 인터럽트 신호를 받으면 ①현재 작업을 중지하고 ②프로그램 카운터(PC) 값을 스택 포인터(SP)에 저장하고 ③인터럽트 서비스 루틴(ISR)을 실행한 뒤 ④인터럽트가 종료된 이후 프로그램 카운터를 스택으로부터 가져온 후 다시 원래 프로세스를 실행한다.
* 프로그램 카운터 : 프로세서 내부에 있는 레지스터 중 하나. 다음에 실행할 명령어의 주소를 가지고 있다.
인터럽트의 종류
외부 인터럽트 - 입출력 장치, 타이밍 장치, 전원 등 외부적 요인에 의해 발생하는 인터럽트
- 전원 이상 인터럽트 : 정전이나 전원에 이상이 있는 경우
- 기계 고장 인터럽트 : CPU의 기능적인 동작 오류
- 외부 신호 인터럽트 : 자원 할당 시간이 다 끝나거나 키보드로 인터럽트 키를 누른 경우. 또는 외부장치로부터 인터럽트 요청이 있는 경우
- 입/출력 인터럽트 : 입/출력 장치의 데이터 전송 요구 혹은 전송 종료. 또는 입출력 데이터에 이상이 있는 경우
내부 인터럽트 - 잘못된 명령이나 데이터 사용시 발생하는 인터럽트
- 0으로 나누는 경우
- 오버플로우 또는 언더플로우의 발생
- 프로그램의 오류
- 프로그램에서 함수 등의 명령어를 잘못 사용했을 경우.
- 예외 처리 중 또 다른 예외가 발생한 경우 = Double Fault
- Double Fault가 발생하여 처리하는 도중 또 다른 오류가 발생한 경우 = Triple Fault. CPU 리셋이 일어남.
CISC(Complex Instruction Set Computer) 와 RISC(Reduced Instruction Set Computer)
컴퓨터 아키텍처에서 사용하는 두 가지 다른 설계 철학. 명령어 세트와 하드웨어 구조가 다르다.
CISC
명령어가 복잡하고 다양하며
한 명령어에서 여러 동작을 수행한다.
복합적인 명령어로 인해 호환성이 좋다.
명령어 해석 시간이 길어 속도가 느리다.
전력 소모가 많다.
Intel CPU에서 주로 사용한다.
RISC
명령어가 짧고 단순하며
한 번의 클럭 사이클에 하나의 명령어만 실행한다.
단순한 명령어로 인해 호환성이 나쁘다.
명령어가 단순하여 처리 속도가 빠르다.
전력소모가 적다.
고성능 워크스테이션. 그래픽용 컴퓨터에서 사용한다.
주소 지정 방식
묵시적 주소지정방식 : 명령어에서 주소 필드를 필요로 하지 않는 방식
즉치 주소지정방식 : 명령어에 지정할 주소가 포함되어 있는 방식
레지스터 주소지정방식 : 레지스터에 지정할 주소가 포함되어 있는 방식
II. 디지털 데이터의 표현
데이터의 구성 단위
물리적 단위
실제 물리 장치에서 사용하는 단위
단위 | 크기 |
비트(bit) | 데이터 구성의 최소 단위. 0과 1로 구성됨. |
쿼터(quater) | 1/4바이트 = 2비트 |
니블(nibble) | 1/2바이트 = 4비트 |
바이트(byte) | 1바이트 = 8비트 |
워드(word) | 2바이트 |
더블워드(double word) | 4바이트 |
쿼드워드(quad word) | 8바이트 |
킬로바이트(kilobyte) | 2^10바이트 |
메가바이트(megabyte) | 2^20바이트 |
기가바이트(gigabyte) | 2^30바이트 |
테라바이트(terabyte) | 2^40바이트 |
페타바이트(petabyte) | 2^50바이트 |
엑사바이트(exabyte) | 2^60바이트 |
제타바이트(zettabyte) | 2^70바이트 |
요타바이트(Yottabyte) | 2^80바이트 |
논리적 단위
디지털 포렌식에서 분석 대상이 되는 최소 단위
데이터 정보의 저장 및 처리에 사용한다.
단위 | 크기 |
필드 | 여러 개의 물리적 표현 단위가 모여 이루어진 최소 논리적 단위 |
레코드 | 프로그램 내의 자료 처리 기본 단위 |
블록 | 저장매체에 입/출력할때 사용하는 기본 단위 |
파일 | 레코드의 집합. 하나의 프로그램 처리 단위 |
데이터베이스 | 파일의 집합으로 계층적 구조를 갖는 자료 단위 |
III. 문자 코드
아스키 코드 (ASCII)
미국 표준협회가 제정한 자료처리 및 통신시스템에서의 상호간의 정보 교환용 표준 코드.
7비트로 구성된 128종의 기호. 1바이트로 하나의 문자 표현함.
숫자 10자. 알파벳 대소문자 52자. 제어부호, 그래픽 기호로 구성
엡시딕 코드 (EBCDIC)
IBM운영체제에서 사용하는 텍스트 파일용 코드.
알파벳이나 숫자를 8비트로 표현하며 256개의 문자가 정의되어 있는 바이너리 코드.
유니코드 (Unicode)
31비트 문자 세트를 이용한 코드.
특수 문자를 제외한 전 세계 모든 문자는 하위 16비트 영역 안에 정의한다.
전 세계의 모든 문자를 다루도록 설계한 표준 문자 전산 처리 방식.
한글은 1996년 유니코드 2.0에서부터 11,172자가 모두 포함되기 시작함.
UTF-8은 31비트 유니코드를 1~6개의 바이트에 나눠 저장한다.
UTF-32는 31비트 유니코드의 각 문자를 4바이트로 표현한다.
IV. 데이터 인코딩
인코딩 (Encoding)
정보의 형태나 형식을 표준화, 보안, 처리속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식.
BASE 64 인코딩
바이너리 데이터를 텍스트로 바꾸는 인코딩 방식 중 하나.
8비트 바이너리 데이터를 아스키 영역 문자로만 이루어진 문자열로 바꾼다.
인코딩 대상 문자를 6비트 단위로 쪼개서 인코딩을 수행한다. 원본데이터가 3바이트일 경우 BASE64 인코딩 결과는 총 4개의 문자가 나온다.
BASE64 인코딩을 하면 전송할 데이터 양이 4/3 정도 크기가 증가한다.
V. 디지털 기기 및 저장매체
반도체를 이용한 저장매체
ROM (Read Only Memory)
읽기만 가능한 저장장치. 비휘발성 메모리.
RAM (Random Access Memory)
자유롭게 데이터를 읽고 쓸 수 있는 기억장치. 전원 공급이 차단되면 데이터가 사라지는 휘발성 메모리
BIOS
운영체제와 하드웨어 사이 입출력을 담당하는 저수준의 소프트웨어와 드라이버로 구성된 펌웨어.
전원이 공급되지 않아도 내용을 가지고 있어야 하므로 ROM으로 제작함.
SSD (Solid-state drive)
하드디스크를 대체할 수 있는 대용량 플래시 메모리
TRIM 기능은 운영체제가 쉴 때 지워진 데이터 공간을 미리 비워둔다.
GC는 SSD의 컨트롤러가 자체적으로 TRIM과 같은 기능을 한다.
TRIM과 GC는 삭제한 데이터의 공간을 미리 비워 두어 쓰기 속도 저하를 완화시킨다. 이로 인해 비할당 영역의 데이터가 변형될 수도 있다.
USB 메모리
특징
크기가 작고 휴대가 편리하며 가격이 저렴하여 많이 사용함
컴퓨터와 주변 기기를 연결하고 데이터를 통신하기 위한 표준 인터페이스
범용 직렬 장치를 연결할 수 있게 하는 컴퓨터 인터페이스
NRZI 인코딩 방식을 이용해서 아날로그 신호를 전기적 신호로 변환함.
현재는 USB 3.0을 보편적으로 사용하며 높은 버전의 USB는 낮은 버전의 단자에도 호환 가능함.
기능
플러그 앤 플레이 (Plug and Play) : USB를 연결하면 컴퓨터에서 바로 주변기기 연결을 감지함.
핫 스와핑 (Hot swapping) : 컴퓨터 전원이 켜진 상채에서도 USB장치를 연결/분리/교환 가능.
주 컨트롤러는 허브를 통해 최대 127개 까지 포트 확장이 가능함. 단 속도는 떨어짐.
플래시 메모리
전기적으로 데이터를 일고 쓸 수 있는 비휘발성 기억장치.
기본적으로는 ROM의 한 종류로 분뤼되나 데이터를 고쳐쓸 수 있다는 점에서 ROM과 RAM의 중간 성격을 띈다고도 함.
Byte단위가 아닌 Block단위로 프로그래밍하기 때문에 속도가 빠름.
작고 가볍고 성능이 뛰어나 스마트폰, PC 등 다양한 매체에서 사용.
NOR 플래시
신뢰성이 높고 랜덤 엑세스가 빠르기 때문에 휴대전화나 PDA 등의 휴대기기용 프로그램 기억장치로 널리 쓰인다.
셀을 병렬 형태로 연결함.
읽기/쓰기에서 바이트/워드 단위의 임의 접근이 가능해 속도가 빠름.
덮어쓰기/지우기는 임의 접근이 불가하여 속도가 느릶.
가격이 비싸며 대용량 구성에는 부적절함.
NAND 플래시
셀을 직렬 형태로 연결함.
읽기/쓰기는 페이지 단위로, 덮어쓰기/지우기는 블록 단위로 작업함.
NOR플래시에 비해 속도는 느리지만 대용량 구성이 적당하므로 SSD, 디지털 카메라 등 다양한 전자제품에서 활용함.
플래시 파일 시스템 (Flash File System = FFS)
읽기/쓰기는 페이지 단위, 삭제는 블록 단위로 수행.
데이터는 반드시 첫 번째 페이지부터 순차적으로 기록함.
FTL(Flash Translation Layer) : 플래시 메모리와 파일 시스템 사이에서 플래시 메모리를 저장장치처럼 사용할 수 있게 해 주는 기술.
플래시 메모리 저장방식
하나의 셀에 몇 비트를 저장하는지에 따라 SLC, MLC, TLC로 구분함.
하나의 셀에 더 많은 비트를 저장할수록 속도는 느려지고 저장공간은 늘어나며 가격은 저렴해짐
SLC : 속도 빠름. 안정성 높음. 가격 높음. 저장공간 적음.
TLC : 속도 느림. 안정성 낮음. 가격 낮음. 저장공간 높음.
RAID
저장장치 여러 개를 묶어 고용량, 고성능인 장치 한 개와 같은 효과를 억기 위해 개발한 기법
RAID 0
데이터를 블록 단위로 분할해 여러 디스크에 분할해서 배치한다.
읽기, 쓰기 속도는 향상되나 하나의 디스크라도 고장나면 복구 불가능하다.
RAID 1
같은 데이터를 복제해 두 개의 디스크에 쓰는 방식.
하나의 디스크가 고장나도 파일 백업이 되어 있어 안전하다.
다만 비용이 증가한다.
RAID 5
하드디스크 1개 분량의 패티리 데이터를 항상 부가해서 보존함.
하드디스크 하나가 고장나도 패리티에서 손실된 데이터를 생성할 수 있다.
RAID 6
패리티를 이중으로 생성.
두 대의 하드디스크 장애 발생에도 복구 가능함.
RAID 10
RAID 1과 0을 조합한 방식.
최소 네 대의 하드 디스크가 필요하며 두 대의 하드 디스크에 같은 데이터를 기록한다.
RAID 50
RAID 5와 0을 조합한 방식.
RAID 5 그룹을 두 개 이상 준비해 각각 스트라이핑 한다.
RAID 5 보다 전송속도는 향상되나 필요한 최소 하드디스크가 6대이므로 비용이 증가한다.
디스크 접근 시간
하드디스크의 원하는 데이터가 있는 구간까지 접근하는데 소요되는 시간
탐색 시간 + 회전 지연 시간 + 전송 시간
탐색 시간 (Seek Time)
디스크 헤드가 원하는 실린더에 위치하는데 소요되는 시간. 다른 시간에 비해 압도적으로 오래 걸린다.
회전 지연 시간 (Latency Time/Rotational Delay)
플래터가 회전하며 처리할 데이터가 헤드까지 오는 시간
평균 회전지연시간은 60* 1000/RPM*2. 단위는 ms
전송 시간 (Transmission Time)
헤드가 읽은 데이터를 메인 메모리에 전송하는 시간
HPA(Host Protected Area)
HDD에 의해 미리 예약된 영역.
시스템 부팅, 진단 유틸리티 저장, 시스템 복구를 위해 사용하기도 한다.
HDD 제조사에 따라 정의된 특별한 ATA 명령을 통해 접근이 가능.
BIOS를 통해 접근이 불가능하여 악의적인 용도로 사용하거나 주요 파일을 숨기는 용도로 사용되기도 한다.
OS 상에서는 보이지 않아 이미지 수집시 제외될 가능성도 있어 포렌식 작업할 때 주의해야 함.
'자격증 공부노트 > 디지털 포렌식 전문가 2급' 카테고리의 다른 글
[디지털 포렌식 전문가] 8. 파일시스템과 운영체제 _ 디스크 스케줄링 (0) | 2024.04.26 |
---|---|
[디지털 포렌식 전문가] 7. 파일시스템과 운영체제 _ 파일시스템 (0) | 2024.04.24 |
[디지털 포렌식 전문가] 5. 디지털 포렌식 기초실무_디지털 포렌식 관련 법률 (0) | 2024.04.18 |
[디지털 포렌식 전문가] 4. 디지털 포렌식 기초실무_디지털 증거 분석 기술, 포렌식 도구 (0) | 2024.04.15 |
[디지털 포렌식 전문가] 3. 디지털 포렌식 기초실무_레지스트리, 해시 알고리즘, 시그니처 분석 (0) | 2024.04.15 |