본문 바로가기
정보보안/임호진-정보보안기사필기

정보보안기사필기1-3

by book_lover 2025. 2. 5.

  • 섹터1(MBR) : Boot Loader 주소가 존재, 물리 단위 

보조기억장치 Disk (디스크)

보조기억장치인 디스크는 데이터를 영구적으로 저장하는 데 사용되는 저장 장치입니다. 주기억장치인 RAM과 달리 전원이 꺼져도 데이터를 유지할 수 있는 비휘발성(non-volatile) 기억장치입니다.

디스크의 종류

  1. HDD (Hard Disk Drive)
    • 구성: 회전하는 금속 디스크(플래터)와 읽기/쓰기 헤드
    • 특징:
      • 대용량 저장 가능
      • 속도는 SSD보다 느리지만 가격이 저렴
    • 용도: 대용량 데이터 저장 (백업, 서버 등)
  2. SSD (Solid State Drive)
    • 구성: 반도체 메모리 칩(NAND 플래시 메모리)으로 구성
    • 특징:
      • 빠른 데이터 접근 속도
      • 소음이 없고 내구성 높음
      • 가격이 비싸고 수명 제한(쓰기 횟수 제한)
    • 용도: 운영체제 저장, 고속 데이터 처리 작업
  3. 하이브리드 디스크 (SSHD)
    • HDD와 SSD의 장점을 결합한 형태
    • 빈번히 사용하는 데이터는 SSD에 저장하고, 나머지는 HDD에 저장

디스크 작동 방식

  • 데이터를 **섹터(Sector)**와 트랙(Track) 단위로 나누어 저장
  • 읽기/쓰기 헤드가 디스크 표면을 스캔하면서 데이터를 읽고 기록

특징

  • 비휘발성 저장장치
  • 대용량 데이터 저장 가능
  • 속도: SSD > HDD
  • 물리적 충격에 민감 (특히 HDD)

1. 하드디스크(HDD)

  • 구조:
    • HDD는 내부에 여러 개의 금속 원판(플래터)을 포함하며, 이 원판은 자성 물질로 코팅되어 데이터를 저장합니다.
    • 플래터는 스핀들(spindle)이라는 축에 고정되어 고속으로 회전하며, 데이터를 읽고 쓰는 헤드(head)가 디스크 암(disk arm)에 부착되어 움직입니다.
    • 데이터는 플래터의 동심원 형태의 트랙(track)과 이를 나눈 섹터(sector)에 기록됩니다. 동일 위치의 트랙 집합은 실린더(cylinder)라고 합니다
  • 작동 원리:
    • 플래터가 회전하면 헤드가 자성 물질을 자화하거나 소거하여 데이터를 기록하거나 읽습니다.
    • 데이터 접근은 순차적 또는 임의 접근 방식으로 이루어지며, 디스크의 회전 속도(RPM)가 성능에 영향을 미칩니다
  • 특징:
    • 대용량 데이터를 저렴하게 저장 가능.
    • 기계적 부품이 많아 충격에 취약하고 소음이 발생할 수 있음.
    • 일반적으로 PC, 서버 등에서 널리 사용.

2. 솔리드 스테이트 드라이브(SSD)

  • 구조:
    • SSD는 플래시 메모리를 기반으로 하며, 기계적 부품이 없는 반도체 장치입니다.
  • 작동 원리:
    • 전자적으로 데이터를 읽고 쓰며, HDD보다 훨씬 빠른 속도를 제공합니다.
  • 특징:
    • 빠른 데이터 접근 속도와 내구성.
    • 충격에 강하고 소음이 없음.
    • 비용이 높지만 점차 대중화되고 있음

디스크 관련 용어

  • 트랙(Track): 플래터 표면의 동심원으로 데이터가 기록되는 기본 단위.
  • 섹터(Sector): 트랙을 나눈 작은 구간으로 데이터 저장의 최소 단위.
  • 실린더(Cylinder): 여러 플래터에서 동일한 위치의 트랙 집합.
  • RPM(Revolutions Per Minute): 플래터가 분당 회전하는 횟수로, 성능 지표 중 하나

https://velog.io/@skwd1013

 

보조기억장치의 종류

하드디스크는 자기 저장 기술을 사용합니다. 데이터는 회전하는 금속디스크인 플래터의 자기적 표면에 저장됩니다. 읽기,쓰기 헤드가 디스크위를 움직이며 데이터를 읽고 씁니다.HDD는 기계적

velog.io


주기억장치

주요 특징

  1. 휘발성 메모리: 대부분의 주기억장치(RAM)는 전원이 꺼지면 데이터가 사라지는 휘발성 메모리입니다.
  2. 고속 처리: CPU와 직접 연결되어 빠른 데이터 접근이 가능하며, 보조기억장치보다 속도가 훨씬 빠릅니다.
  3. 작업 공간: 실행 중인 프로그램과 데이터를 임시로 저장하여 CPU가 효율적으로 작업을 수행할 수 있도록 지원합니다.

구성 요소

  1. RAM (Random Access Memory):
    • 데이터를 읽고 쓰기가 가능하며, 컴퓨터가 실행 중인 프로그램과 데이터를 임시 저장합니다.
    • 휘발성 메모리로, 전원이 끊어지면 데이터가 소멸합니다.
    • 종류:
      • DRAM (Dynamic RAM): 주기적으로 리프레시(refresh)가 필요하며, 대용량 메모리에 적합.
      • SRAM (Static RAM): 리프레시가 필요 없으며, 속도가 빠르지만 비용이 높아 캐시 메모리로 주로 사용됩니다.
  2. ROM (Read Only Memory):
    • 읽기 전용 비휘발성 메모리로, 전원이 꺼져도 데이터가 유지됩니다.
    • 시스템의 기본 소프트웨어(BIOS)나 펌웨어를 저장하는 데 사용됩니다.
    • 종류:
      • PROM: 한 번만 기록 가능.
      • EPROM: 자외선을 이용해 데이터 삭제 가능.
      • EEPROM: 전기적 신호로 데이터 삭제 및 재기록 가능.

동작 원리

  1. 주소 지정(Addressing): CPU는 특정 데이터를 주기억장치에서 찾기 위해 주소를 지정합니다.
  2. 데이터 읽기/쓰기:
    • 읽기(Read): CPU가 필요한 데이터를 주기억장치에서 가져옵니다.
    • 쓰기(Write): 연산 결과나 데이터를 주기억장치에 저장합니다.
  3. 리프레시(Refresh): DRAM의 경우, 저장된 데이터를 유지하기 위해 주기적으로 리프레시 작업이 필요합니다.

1. 연속 할당 기법

프로그램이나 데이터를 주기억장치에 연속적으로 할당하는 방식으로, 단일 분할 다중 분할로 나뉩니다.

(1) 단일 분할 할당 기법

  • 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 사용.
  • 한 번에 하나의 프로그램만 실행 가능.
  • 단점: 사용자 프로그램이 작으면 메모리 낭비가 발생(내부 단편화).
  • 해결책:
    • 오버레이 기법: 주기억장치보다 큰 프로그램을 보조기억장치에 분할 저장 후 필요한 부분만 적재.
    • 스와핑 기법: 실행 중인 프로그램을 보조기억장치로 내보내고 다른 프로그램을 적재.

(2) 다중 분할 할당 기법

  • 주기억장치를 여러 개의 영역으로 나누어 다중 프로세스를 동시에 실행.
  • 고정 분할 (Static Allocation):
    • 미리 고정된 크기로 메모리를 분할.
    • 크기가 다른 프로그램이 들어오면 내부 단편화 발생.
  • 가변 분할 (Dynamic Allocation):
    • 프로그램 크기에 맞게 동적으로 메모리 분할.
    • 외부 단편화 문제 발생 가능(빈 공간이 흩어짐).
    • 해결책: *압축(Compaction)*을 통해 조각난 공간을 하나로 모음.

2. 분산 할당 기법

프로그램이나 데이터를 특정 단위로 나누어 주기억장치에 분산 배치하는 방식입니다. 이 방식은 가상 메모리와 밀접한 관련이 있습니다.

(1) 페이징(Paging)

  • 주기억장치를 동일 크기의 블록(프레임)으로 나누고, 프로세스를 동일 크기의 페이지로 나누어 적재.
  • 내부 단편화는 발생하지만 외부 단편화는 없음.
  • 페이지 테이블을 사용하여 논리 주소와 물리 주소를 매핑.

(2) 세그멘테이션(Segmentation)

  • 주기억장치를 가변 크기의 세그먼트로 나누어 적재.
  • 각 세그먼트는 논리적 단위(코드, 데이터 등)를 나타냄.
  • 외부 단편화 발생 가능.

단편화(Fragmentation) 문제와 해결 방안

1. 내부 단편화 (Internal Fragmentation)

  • 고정 분할 방식에서 프로세스가 할당된 메모리를 완전히 사용하지 못해 낭비되는 공간.
  • 해결 방안: 가변 분할 방식 도입.

2. 외부 단편화 (External Fragmentation)

  • 가변 분할 방식에서 작은 빈 공간들이 흩어져 새로운 프로세스가 들어갈 수 없는 상황.
  • 해결 방안:
    • 압축(Compaction): 조각난 공간을 하나로 모아 연속된 빈 공간 확보.
    • 페이징 및 세그멘테이션 사용.

메모리 재분할 및 배치 전략

1. 배치 전략

프로세스를 주기억장치에 배치하는 방법으로, 효율성을 높이는 데 중요합니다.

  • 최초 적합(First Fit): 첫 번째로 맞는 빈 공간에 배치.
  • 최적 적합(Best Fit): 가장 작은 빈 공간에 배치하여 낭비 최소화.
  • 최악 적합(Worst Fit): 가장 큰 빈 공간에 배치하여 큰 공간 유지.

2. 재분할(Repartitioning)

메모리 사용 중 동적으로 크기를 조정하거나 새로운 프로세스를 위한 공간을 확보하는 작업입니다. 이는 가변 분할 방식에서 주로 이루어지며, 압축과 같은 기술이 활용됩니다.

정보보안 관점에서의 중요성

  1. 메모리 보호:
    • 각 프로세스는 자신의 메모리에만 접근해야 하며, 다른 프로세스의 메모리에 접근하지 못하도록 보호해야 함(Memory Isolation).
    • MMU(Memory Management Unit)를 통해 주소 변환과 보호 기능 제공.
  2. 가상 메모리 활용:
    • 보조기억장치를 활용해 물리적 메모리를 확장하여 효율적인 자원 관리 가능.
  3. 보안 취약점 방지:
    • 메모리 오버플로우나 비인가 접근 방지를 위해 메모리 보호 기술 적용 필요.

https://cording-cossk3.tistory.com/284#google_vignette

 

[정보처리기사] Part04-03-1. 운영체제 기초 활용 (4)

2023.01.25 - [정보처리기사/필기] - [정보처리기사] Part04-03-1. 운영체제 기초 활용 (3) Contents UNIX, WINDOWS 메모리 관리 메모리는 실행할 프로그램과 데이터 저장, CPU와 제어장치 통해 명령 수행 핵심은

cording-cossk3.tistory.com

https://www.youtube.com/watch?v=PfCuzUH7ypY&t=1s


캐시

  1. 정의:
    • 캐시는 자주 사용되는 데이터를 미리 저장하여, CPU나 애플리케이션이 더 빠르게 접근할 수 있도록 돕는 고속 메모리입니다.
    • CPU와 메인 메모리 사이에 위치하며, 데이터 접근 시간을 줄이고 병목현상을 완화합니다.
  2. 역할:
    • CPU가 필요한 데이터를 메인 메모리 대신 캐시에서 가져오도록 하여 처리 속도를 높입니다.
    • 데이터를 반복적으로 계산하거나 읽는 시간을 절약합니다
  3. 메모리 계층 구조:
    • 캐시는 메모리 계층 구조에서 속도와 용량의 균형을 맞추는 중요한 요소입니다.
    • 데이터 접근 속도는 다음 순서로 빨라집니다: 디스크 → RAM → 캐시 → 레지스터.

캐시의 동작 원리

  1. 지역성(Locality) 원리:
    • 시간 지역성(Temporal Locality): 최근에 사용된 데이터는 다시 사용될 가능성이 높음 (예: 반복문에서 변수 접근).
    • 공간 지역성(Spatial Locality): 특정 데이터 근처의 데이터가 함께 사용될 가능성이 높음 (예: 배열 순차 접근).
  2. 캐시 히트(Cache Hit)와 캐시 미스(Cache Miss):
    • 캐시 히트: CPU가 요청한 데이터가 캐시에 존재할 경우, 빠르게 데이터를 반환.
    • 캐시 미스: 요청한 데이터가 캐시에 없을 경우, 메인 메모리에서 데이터를 가져와야 함.
      • 미스 종류:
        • Cold Miss: 처음 접근하는 데이터로 인한 미스.
        • Conflict Miss: 동일한 캐시 블록에 여러 데이터가 할당되어 발생.
        • Capacity Miss: 캐시 공간 부족으로 발생
  3. 데이터 관리 방식:
    • 데이터를 블록 단위로 관리하며, 효율적인 저장과 검색을 위해 태그(Tag)와 인덱스를 사용합니다.
    • 캐시에 없는 데이터를 읽어올 때, 새 데이터를 저장하고 오래된 데이터를 교체(Eviction)합니다

캐시의 종류

  1. CPU 캐시:
    • CPU 내부 또는 외부에 위치하며, 계층(L1, L2, L3)으로 나뉩니다.
      • L1: 가장 빠르고 용량이 작음, CPU 코어별로 독립적.
      • L2: L1보다 느리지만 용량이 더 큼.
      • L3: 여러 코어가 공유하며 가장 큰 용량을 가짐
  2. 웹 캐시:
    • 브라우저나 서버에서 자주 사용하는 웹 리소스(이미지, CSS 등)를 저장하여 페이지 로딩 속도를 높임.
  3. CDN(Content Delivery Network):
    • 전 세계에 분산된 서버를 통해 콘텐츠를 캐싱하여 사용자에게 빠르게 제공.
  4. 데이터베이스 캐시:
    • 자주 실행되는 쿼리 결과를 저장하여 데이터베이스 부하를 줄임

https://com789.tistory.com/36

 

캐시(Cache) 란?

정의 자주 사용하는 데이터를 빠르게 제공하기 위해 임시적으로 저장하는 저장소 캐시를 왜 사용할까? 이를 이해하기 위해선 먼저 캐시의 역사에 대해 알아보겠습니다. 현대의 프로세서는 80년

com789.tistory.com


레지스터

**레지스터(Register)**는 컴퓨터의 중앙처리장치(CPU) 내부에 있는 고속의 소형 기억장치로, 연산을 수행하거나 데이터를 처리할 때 가장 먼저 접근하는 저장 공간입니다. 레지스터는 CPU가 명령어를 실행하고 데이터를 처리하는 데 핵심적인 역할을 하며, 컴퓨터 시스템에서 가장 빠른 저장 장치 중 하나입니다.

레지스터의 주요 특징

  1. 위치:
    • CPU 내부에 위치하며, 메모리 계층 구조에서 가장 빠른 저장 장치입니다.
    • CPU와 직접 연결되어 있어 데이터 접근 속도가 매우 빠릅니다.
  2. 속도:
    • 레지스터는 나노초(ns) 단위로 데이터를 처리하며, 주기억장치(RAM)나 캐시보다 훨씬 빠릅니다.
  3. 용량:
    • 용량이 매우 작으며, 일반적으로 몇 바이트에서 수십 바이트 정도의 크기를 가집니다.
    • CPU 설계에 따라 레지스터의 개수와 크기가 결정됩니다.
  4. 휘발성:
    • 전원이 꺼지면 데이터가 사라지는 휘발성 메모리입니다.
  5. 역할:
    • 데이터 저장, 명령어 실행, 주소 계산 등 다양한 작업에 사용됩니다.
    • CPU가 데이터를 처리하기 위해 주기억장치로부터 데이터를 가져오기 전에 임시로 저장합니다.

레지스터의 종류

레지스터는 용도에 따라 여러 종류로 나뉩니다. 아래는 주요 레지스터 유형과 그 역할입니다:

1. 데이터 레지스터(Data Register)

  • 데이터를 임시로 저장하거나 연산 결과를 저장하는 데 사용됩니다.
  • 예: 산술 연산이나 논리 연산 중간 결과를 저장.

2. 주소 레지스터(Address Register)

  • 메모리 주소를 저장하여 주기억장치에서 데이터를 읽거나 쓰는 데 사용됩니다.
  • 프로그램 카운터(PC)와 스택 포인터(SP)가 대표적인 주소 레지스터입니다.

3. 명령어 레지스터(Instruction Register, IR)

  • 현재 실행 중인 명령어를 저장합니다.
  • CPU가 명령어를 해석하고 실행하기 위해 사용됩니다.

4. 프로그램 카운터(Program Counter, PC)

  • 다음에 실행할 명령어의 주소를 저장합니다.
  • 프로그램 흐름을 제어하며, 명령어 실행 후 자동으로 증가하거나 분기(branch) 시 새로운 주소로 변경됩니다.

5. 스택 포인터(Stack Pointer, SP)

  • 스택의 최상위(top) 주소를 가리키는 레지스터입니다.
  • 함수 호출과 복귀 시 데이터 저장 및 복원을 관리합니다.

6. 플래그 레지스터(Status Register 또는 Flag Register)

  • 연산 결과에 대한 상태 정보를 저장합니다.
    • 예: 오버플로우(Overflow), 캐리(Carry), 제로(Zero), 부호(Sign) 플래그 등.
  • 조건부 분기 명령어 실행 시 사용됩니다.

7. 범용 레지스터(General Purpose Register, GPR)

  • 다양한 목적으로 사용되는 다목적 레지스터입니다.
  • 연산, 데이터 임시 저장 등 여러 작업에 활용됩니다.
  • 현대 CPU에서는 보통 8개에서 32개 이상의 범용 레지스터가 존재합니다.

8. 특수 목적 레지스터(Special Purpose Register)

  • 특정 작업을 수행하기 위해 설계된 레지스터입니다.
    • 예: 제어 레지스터(Control Register), 디버그 레지스터(Debug Register).

페이지 교체 알고리즘(Page Replacement Algorithm)

페이지 교체 알고리즘은 캐시, 주기억장치, 보조기억장치  데이터를 관리할 때, 새 데이터를 저장하기 위해 기존 데이터를 제거해야 하는 상황에서 어떤 데이터를 교체할지 결정하는 방법입니다. 이는 특히 가상 메모리 시스템에서 중요한 역할을 합니다.

1. FIFO (First-In-First-Out)

  • 개념: 가장 먼저 들어온 페이지(또는 데이터)를 가장 먼저 내보내는 방식.
  • 동작 원리:
    1. 페이지가 메모리에 적재될 때 큐(queue)에 추가됩니다.
    2. 새로운 페이지를 적재해야 할 공간이 없으면 큐의 맨 앞에 있는 페이지를 제거하고 새로운 페이지를 추가합니다.
  • 장점:
    • 구현이 간단하고 직관적.
  • 단점:
    • 오래된 페이지가 여전히 자주 사용되는 경우에도 제거될 수 있어 비효율적(예: Belady의 이상 현상).

2. FRU (Frequently Recently Used)

  • 개념: 자주 사용되었지만 최근에는 사용되지 않은 페이지를 교체하는 방식.
  • 동작 원리:
    • 페이지의 사용 빈도와 최근 사용 시점을 함께 고려하여 교체할 페이지를 결정.
    • 자주 사용되던 데이터라도 일정 시간 동안 사용되지 않으면 교체 대상이 될 수 있음.
  • 장점:
    • 자주 사용되는 데이터는 유지하므로 효율적.
  • 단점:
    • 구현이 복잡하며, 메모리와 계산 오버헤드가 발생.

3. LRU (Least Recently Used)

  • 개념: 가장 오랫동안 사용되지 않은 페이지를 교체.
  • 동작 원리:
    •  페이지의 최근 사용 시점을 기록하고, 가장 오래된 시점을 가진 페이지를 교체.
  • 장점:
    • 지역성(Locality) 원리를 잘 반영하여 성능이 우수.
  • 단점:
    • 최근 사용 시점을 기록하기 위한 추가적인 메모리와 계산 비용 필요.

4. LFU (Least Frequently Used)

  • 개념: 가장 적게 참조된 페이지를 교체.
  • 동작 원리:
    •  페이지의 참조 횟수를 기록하고, 참조 횟수가 가장 적은 페이지를 교체.
  • 장점:
    • 자주 참조되는 데이터가 유지되므로 효율적.
  • 단점:
    • 오래된 데이터가 여전히 참조 횟수가 높다면 비효율적일 수 있음.

5. Optimal Page Replacement (OPT)

  • 개념: 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 방식(이론적으로 가장 효율적).
  • 동작 원리:
    • 미래의 메모리 접근 패턴을 알고 있다고 가정하고, 앞으로 가장 늦게 사용할 페이지를 제거.
  • 장점:
    • 최소한의 페이지 폴트(page fault)를 보장.
  • 단점:
    • 실제 시스템에서는 미래의 접근 패턴을 알 수 없으므로 구현 불가능.

6. Clock Algorithm (Second-Chance Algorithm)

  • 개념: FIFO를 개선한 방식으로, 각 페이지에 "참조 비트(Reference Bit)"를 추가하여 최근에 참조된 페이지는 제거하지 않음.
  • 동작 원리:
    1. FIFO 방식으로 큐의 맨 앞에서 제거할 후보를 선택.
    2. 해당 페이지의 참조 비트를 확인하여, 참조 비트가 1이면 0으로 초기화하고 다음 후보로 이동(두 번째 기회 제공).
    3. 참조 비트가 0인 경우 해당 페이지를 제거.
  • 장점:
    • FIFO보다 효율적이며 구현이 간단함.
  • 단점:
    • LRU만큼 정확하지는 않음.

'정보보안 > 임호진-정보보안기사필기' 카테고리의 다른 글

1일차-02  (0) 2025.01.23
1일차-01  (1) 2025.01.23