─━ IT ━─

2021 정보보안기사 - 클라이언트 보안 관리 정리

DKel 2021. 1. 18. 23:01
반응형
  1. 운영체제 이해 및 관리
    1. CPU (Central Processing Unit, 중앙처리장치)의 구조적 이해
      1. CPU의 구조 이해
        1. CPU 개념: 입력장치로부터 자료를 받아 연산하고, 그 결과를 출력장치로 보내는 일련의 과정을 제어 및 조정하는 핵심장치로 사람의 두뇌에 해당한다.
          1. CPU의 구성요소
            1. ALU(연산장치)
              1. 각종 산술연산들과 논리연산들을 수행하는 회로
              2. 산술연산: +, -, *, /
              3. 논리연산: AND, OR, NOT, XOR
            2. Register(레지스터)
              1. CPU 내부의 소규모 데이터나 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역
              2. 컴퓨터 기억장치 중 Access 속도가 가장 빠름
            3. Control Unit(제어장치)
              1. 프로그램 코드(명령어)를 해석하고, 그것을 실행하기 위한 제어 신호들(Control Signals)을 발생시킴
            4. 내부 CPU 버스
              1. ALU와 레지스터 간의 데이터 이동을 위한 경로
        2. 내부 레지즈터의 종류
          1. PC (Program Counter): 다음에 수행할 명령어가 저장된 주기억장치의 번지를 지정
          2. MAR (Memory Address Register): 주기억장치에 접근하기 위한 주기억장치의 번지를 기억
          3. MBR (Memory Buffer Register): 주기억장치에 입/출력할 자료를 기억하는 레지스터
          4. IR (Instruction Register): 주기억장치에서 인출한 명령코드를 기억하는 레지스터
      2. 버스 시스템 (Bus System)
        1. 버스(Bus)의 정의
          1. 버스(Bus)는 시스템에 많은 장치를 공유하여 데이터, 주소, 제어 정보를 전달하는 전송 라인이다. 한정된 자원이므로 버스를 획득하기 위한 경합이 많이 발생하는 장치이기 때문에 사용하는 방식에 따라 입출력 성능에 영향을 준다.
        2. 버스(Bus) 종류
          1. 데이터 버스(Data Bus): 시스템 컴포넌트 간 처리 데이터를 전송하기 위한 용도
          2. 주소 버스(Address Bus)
            1. 기억장소의 위치 또는 장치 식별을 지정하기 위한 라인
            2. 라인의 비트 수에 따라 접속될 수 있는 장치의 용량이 결정됨
          3. 제어 버스(Control Bus): CPU와 기억장치 또는 I/O 장치 사이의 제어 신호를 전송하는 라인
      3. CPU의 명령 실행 주기 (Instruction Cycle)
        1. CPU의 명령어 처리(Instruction Cycle)는 하나의 명령어 실행이 끝난 후, 다음 명령어의 수행이 시작되어 끝날때까지 걸리는 시간을 말한다. 즉, 한 명령을 수행하는 데 명령 인출, 해독, 피연산자 인출, 실행, 결과 저장 등의 여러 단계를 거쳐야 하는데, 이러한 단계를 거쳐 한 명령이 실행되고 다시 다음 명령의 인출이 반복되는 주기를 말한다.
        2. 인스트럭션 사이클은 패치(Fetch), 간접(Indirect), 실행(Execution), 인터럽트(Interrupt)로 구성된다. 인스트럭션 사이클의 실행 주기는 2단계, 4단계, 5단계 사이클로 구분한다.
        3. 인스트럭션 실행 (Instruction Cycle) 단계
          1. 인출 (Instruction Fetch)
            1. 인출 단계는 메모리(Memory)에서 데이터를 로드(Load)하여 CPU에 있는 레지스터(Register)에 적재하는 과정
          2. 간접 (Indirect)
            1. 메모리를 참조할 때 간접주소 방식을 사용하는 경우에 실행
            2. 간접주소란, CPU가 메모리를 참조했을 때 데이터가 존재하는 것이 아니라, 메모리에 주소가 존재하여 메모리 내에서 한번 더 조회해서 데이터를 얻는 것
          3. 실행 (Execution)
            1. 명령과 데이터로 CPU가 산술 및 논리연산을 수행하는 것
          4. 인터럽트 (Interrupt)
            1. 컴퓨터 작동 중 예기치 않은 문제가 발생한 경우라도 업무 처리가 계속될 수 있도록 하는 컴퓨터 운영체제의 한 기능으로, 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉨
            2. SVC 하드웨어 인터럽트: 기계착오 인터럽트, 외부 인터럽트, 입출력 인터럽트, 프로그램 검사 인터럽트
            3. 소프트웨어 인터럽트: CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에 관련된 모듈이 변화하는 경우 발생
    2. 메모리 시스템 (Memory System)
      1. 기억장치 계층 구조(Memory Hierarchy)
        1. 크기, 속도, 가격당 성능에 따라 분류된 기억장치를 계층적으로 구성함으로써 평균 기억장치 액세스 속도는 높이고 가격 대비 성능비도 적절히 유지하기 위한 설계 아키텍처라고 보면 된다.
        2. 메모리 계층구조의 이유
          1. 액세스 속도가 높아질수록 비트당 가격도 높아진다.
          2. 용량이 커질수록 비트당 가격은 낮아진다.
          3. 용량이 커질수록 액세스 속도는 낮아진다.
        3. 기억장치 계층구조
          1. (1<2<3<4 순 기억장치 용량 증가, 비트당 기억장치 비용 감소, 기억장치 속도 감소)
            1. 레지스터 - 프로그램과 데이터를 직접 읽을 수 있다.
            2. 캐시 - 프로그램과 데이터를 직접 읽을 수 있다.
            3. 주기억장치 - 프로그램과 데이터를 직접 읽을 수 있다.
            4. 보조기억장치 - 실행되기 위해서는 프로그램이나 데이터가 주기억장치에 옮겨져야 한다.
        4. 고속인 CPU와 저속의 보조기억장치 사이에 캐시와 주기억장치를 배치하여 성능 차이를 극복하고, 빠르지만 고가인 SDRAM의 사용량을 줄여 가격적인 경쟁력을 확보할 수 있다.
      2. 캐시 메모리 (Cache Memory)
        1. 캐시 메모리는 CPU와 주기억장치(Memory)의 속도 차이를 극복하기 위해서 CPU와 주기억장치 사이에 존재하는 고속의 버퍼 메모리이다. 이러한 고속의 메모리를 사용하여 CPU가 작업을 빠르게 처리할 수 있다.
        2. 캐시 메모리 정의
          1. 중앙처리장치가 읽어 들인 데이터(명령, 프로그램)들로 채워지는 버퍼 형태의 고속 기억장치이다.
        3. 캐시 메모리 사상 (Mapping) 방식
          1. 직접사상(Direct mapping)
            1. Main Memory를 여러 구역으로 분할하여 Cache 슬롯과 매핑한다.
            2. 태그의 크기: 메모리를 2m개의 구역으로 나눈 경우 m개의 태그 필요
            3. 적재될 Cache의 주소(위치) 결정 방법
              1. (메모리 블록 주소) % (캐시 전체 블록 수)
              2. 캐시의 블록 수가 2N개일 경우, 메모리 주소의 하위 N 비트
            4. Index (색인): Cache의 순서 번호 (순차적인 주소이기 때문에 별도 공간 차지 X)
            5. Valid Bit (유효): 저장 데이터의 유효성 비트
            6. Tag (태그): 매핑된 메모리 주소의 캐시 식별을 위한 Index 비트로 사용되는 하위 비트를 제외한 상위 비트
            7. 장단점
              1. 장점
                1. 매핑 절차가 단순하고 신속하게 처리
              2. 단점
                1. 높은 캐시 미스율(같은 블록에 사상되는 데이터 캐시 적재 시 교체 발생)
          2. 연관사상 (Associate Mapping)
            1. Main memory의 각 블록이 cache의 어느 슬롯이든 적재 가능하다.
            2. 장단점
              1. 장점
                1. 지역성 높은 접근 시 캐시 적중률 높음
              2. 단점
                1. 구현 하드웨어가 복잡하여 구현 비용 상승
          3. 집합 연관사상 (Set Associate Mapping)
            1. 직접사상/연관사상 절충 방식으로 캐시와 메모리가 M대1로 대응한다.
            2. 장단점
              1. 장점
                1. 직접사상과 연관사상의 장점 수용
              2. 단점
                1. 캐시 Fin, Fout 발생 증가
                2. 구현 비용이 많이 듬
      3. 캐시 메모리 관리 방식
        1. CPU는 캐시 메모리에 접근하여 연산에 필요한 명령과 데이터를 읽어들인다. 만약 CPU가 캐시메모리에 접근할 때 원하는 데이터가 없다면, 캐시 메모리는 주기억장치에 접근하여 데이터를 캐시 메모리에 올려야 한다. 즉, 캐시 메모리 관리라는 것은 CPU가 원하는 데이터가 캐시 메모리에 있을 수 있도록 하는 것을 의미한다.
        2. 캐시 메모리 인출 방식
          1. Demand Fetch: 필요 시 캐시를 인출하는 방식
          2. Pre-Fetch: 예상되는 블록을 미리 패치해두는 방식
        3. 캐시 메모리 교체 (Replacement) 알고리즘의 종류
          1. Radnom
            1. 교체될 Page를 임의 선정
            2. Overhead (오버헤드)가 적음
          2. FIFO (First In First Out)
            1. 캐시 내에 오래 있었던 Page를 교체
            2. 자주 사용되는 Page가 교체될 우려
          3. LFU (Least Frequently Used)
            1. 사용 횟수가 가장 적은 page 교체
            2. 최근 적재된 Page가 교체될 우려
          4. LRU (Least Recently used)
            1. 가장 오랫동안 사용되지 않은 Page 교체
            2. Time stamping에 의한 오버헤드 존재
          5. Optimal
            1. 향후 가장 참조되지 않을 page 교체
            2. 실현 불가능
          6. NUR (Not Used Recently)
            1. 참조 비트와 수정 비트로 미사용 Page 교체
            2. 최근 사용되지 않은 페이지 교체
          7. SCR (Second chance Replacement)
            1. 최초 참조 비트 1로 Set, 1인 경우 0으로 Set, 0인 경우 Replacement
            2. 기회를 한번 더 줌
        4. 페이지 교체 관리 시 문제점
          1. Page Fault 발생 (페이지 부재)
            1. 기억장치에 적재되지 않은 Page를 사용하려 할 때 Page Fault 발생
          2. Demand Paging (요구 페이징)
            1. 요구될 때에만 process가 Page를 적재하는 방식
          3. Thrashing 발생 (스레싱)
            1. Page 부재가 너무 빈번하게 발생하여 CPU가 Process 수행보다 Page 교체에 더 많은 시간을 소요하는 비정상적인 현상
        5. 페이지 교체 관리 문제 해결 방안
          1. Load Control
            1. 일정 시간동안 새로운 프로세서가 생성되는 것을 지연시키고 Suspend Queue에 대기시켜서 Thrashing 현상을 감소시킴
          2. Locality(구역성)
            1. 시간과 공간 지역성을 집중적으로 참조함
          3. Working Set(워킹셋)
            1. 일정 시간동안 참조되는 페이지 집합 (Working Set)을 주기억장치에 유지
          4. PFF (Page Fault Frequency)
            1. Process의 page fault 빈도에 따라 resisdence set을 조정
            2. PFF가 높으면 Resisdence set의 크기 증가, 낮으면 감소
        6. 캐시 메모리 일관성 (Cache Coherence)
          1. 캐시 메모리 일관성 유지 방식
            1. 멀티프로세서 환경에서 각 프로세서가 캐시를 보유하며 캐시에 로드된 데이터를 변경한 경우 주기억장치의 데이터와 동일하게 유지되는 메커니즘이다.
          2. 캐시 불일치 발생 원인
            1. Write-through 정책이 사용되는 경우, 프로세서 P1이 Main Memory의 X값을 100에서 110으로 갱신하면 주기억장치 (Cache)의 값이 110으로 갱신되나, 프로세서 P2, P3 캐시는 100으로 일관성이 깨짐
            2. Write-back 정책이 사용되는 경우 Store가 일어나기 전까지 2개의 캐시, 주기억장치가 비일관성 초래
        7. 가상 메모리 시스템
          1. 가상메모리라는 것은 주기억장치의 용량이 너무 적기 때문에 보조기억장치(ex: Disk)를 마치 주기억장치처럼 사용하여 주기억장치의 공간을 확대하는 기억장치 관리 방법이다.
          2. 가상 메모리 (Virtual Memory)
            1. 가상 메모리의 개념
              1. 물리적 메모리 크기의 한계를 극복하기 위해 실제 물리적 메모리보다 더 큰 용량의 메모리 공간을 제공하는 메모리 관리 기법이다.
              2. 가상 메모리를 사용하기 위하여 Virtual Address Space를 사용한다.
            2. 가상 메모리의 관리 단위
              1. 페이지 (page)
                1. 가상 기억장치 상에서 동일한 크기의 최소 논리 분할 단위로 나눈 것
              2. 세그먼트 (segment)
                1. 사용자 주소 공간을 용도별로 논리적 단위로 나눈 것
              3. Paging 기법
                1. 할당: 고정 (Static) 분할
                2. 적재: 요구 Page만 일부 적재 (On-demand)
                3. 관점: 메모리 관리 측면
                4. 장점
                  1. 요구 Page만 적재 Load
                  2. 외부 단편화 해결
                  3. 교체시간 최소
                5. 단점
                  1. 내부 단편화 (Fragmentation) 발생
                  2. Thrashing, 잦은 디스크 I/O 유발
              4. Segment 기법
                1. 할당: 가변 (Dynamic) 분할
                2. 적재: 프로그램 전체 적재 (On-demand)
                3. 관점: 파일 관리 측면
                4. 장점
                  1. 사용자 관점
                  2. 개발/프로그래밍 용이
                  3. 내부 단편화 해결
                  4. 코드, 데이터 공유 용이
                5. 단점
                  1. 외부 단편화 심각
                  2. 메인 메모리가 커야 함
            3. 가상 메모리 관리 정책
              1. 할당 기법 (Allocation)
                1. 프로세스에게 할당되는 메모리 블록의 단위를 결정
                2. 고정 할당, 가변 할당, Paging, Segmentation
              2. 호출 기법 (Fetch Policy)
                1. 보조기억장치에서 주기억장치로 적재할 시점 결정
                2. Demand Fetch, Pre Fetch
              3. 배치 기법 (Placement)
                1. 요구된 페이지를 주기억장치의 어느 곳에 적재할 것인지를 결정
                2. First fit, Best fit, Next fit, Worst fit
              4. 교체 기법 (Replacement)
                1. 주기억장치 공간 부족 시 교체 대상 결정
                2. Random, FIFO, LRU, LFU, NUR, SCR, Optimal
            4. 할당 정책 (Allocation Policy)
              1. 연속 할당
                1. 고정 분할
                  1. 고정된 크기의 단위로 메모리 할당
                  2. 내부 단편화 발생
                2. 가변 분할
                  1. 할당 단위를 요청마다 다른 크기로 할당
                  2. 외부 단편화 발생
              2. 비연속 할당
                1. Paging
                  1. 가상 메모리 블록을 페이지 관리 단위, TLB와 MMU, Page table로 관리
                2. Segmentation
                  1. 가변 크기인 세그먼트로 분할, Segment Table로 관리
        8. 가상 메모리 관리 기법
          1. Paging 메모리 관리 기법
            1.  
반응형