일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 해쉬 dos
- zerowindow
- slow http dos
- ruddy
- tcp syn flooding
- slow http
- backlog queue
- dns drdos
- ntp drdos
- slowloris
- tcp drdos
- slow http read dos
- drdos 대응
- 핑오브데스
- DHCP
- 반사 서버
- slow dos
- 네트워크 대역폭 소진
- snmp drdos
- from sql injection
- icmpp drdos
- 헐크 dos
- slow http post dos
- drdos와 ddos 차이
- hash dos
- udp drdos
- OFFSET
- http get flooding
- hulk dos
- 해시 dos
- Today
- Total
Tech Juny
[01]-01 운영체제 이해 및 관리 본문
- CPU 구조
1. CPU의 구조 이해
1) CPU 개념
: 사람의 두뇌에 해당하는 핵심장치로 입력장치로부터 자료를 받아 연산하고 출력 장치로 보내는 과정을 제어 및 조정함
- CPU의 구성 요소
- ALU (연산장치) : 각종 산술/논리 연산 수행
- Register : CPU 내부의 중간 결과를 일시적으로 기억하는 고속 전용 영역
- Control Unit (제어 장치) : 프로그램 명령어 해석 및 실행하기 위한 제어 신호 발생
- 내부 CPU 버스 : ALU와 레지스터 간 데이터 이동 경로
2) 레지스터 종류
- PC (Program Counter) : 다음에 수행할 명령어가 저장된 주기억장치의 번지 지정
- MAR(Memory Address Register) : 주기억장치에 접근하기 위한 주기억 장치 번지 기억
- MBR(Memory Buffer Register) : 주기억장치에 입출력할 자료를 기억
- IR (Instruction Register) : 주기억장치에서 인출한 명령코드 기억
2. 버스 시스템 (Bus System)
1) 버스란?
: 데이터 주소, 제어정보 등을 전달하는 전송라인 (데이터 이동경로)으로 입출력 성능에 영향을 줌
2) 버스 종류
- 데이터 버스 (Data Bus) : 데이터를 전송하기 위한 용도
- 주소 버스 (Address Bus) : 기억장소 위치 및 장치 식별을 지정하기 위한 용도
- 제어 버스 (Control Bus) : CPU와 기억장치 or I/O 장치 사이의 제어 신호 전송
3. CPU 명령 실행 주기 (Instruction Cycle)
: 하나의 명령 실행 후 다음 명령이 수행되어 끝날때까지의 시간 ,즉 다음 명령의 인출이 반복되는 주기
1) 인스트럭션 실행 (Instruction Cycle)
- 인출 (Instruction Fetch) : 인출단계로 메모리 데이터를 Load하여 레지스터에 적제
- 간접 (Indirect) : 간접 주소 방식 -> 메모리 참조 시 데이터가 아닌 메모리 주소를 참조하여 한번더 조회
- 실행 (Execution) : 명령과 데이터로 CPU가 산술/논리 연산 수행
- 인터럽트 (Interrupt) : 시스템 실행 중 예기치 않은 문제가 발생시 업무처리가 진행되도록 하는 기능
▶ 하드웨어 인터럽트 : 기계착오, 외부 인터럽트, 입출력 인터럽트, 프로그램 검사 인터럽트
▶ 소프트웨어 인터럽트 : CPU 내부에서 실행한 명령으로 발생
- 메모리
1. 기억장치 계층 구조 (Memory Hierarchy)
레지스터 - 캐시 - 주기억장치 - 보조기억장치
<--- 작음 큼 --->
<--- 빠름 느림 --->
<--- 비쌈 쌈 --->
※ 작은게 빠르고 비쌈
2. 캐시 메모리 (Cache Memory)
: CPU와 주기억 장치의 속도 차이를 극복하기 위해 사의에 존재하는 고속 버퍼 메모리
1) 캐시 메모리 사상 (Mapping)
- 직접 사상 (Direct Mapping) : 메인메모리를 여러구역으로 분할하여 캐시슬롯과 매핑
장점 : 단순, 빠름
단점 : 캐시 적중률↓
- 연관 사상 (Associate Mapping) : 메인메모리의 각 블록이 캐시의 어느 슬롯이든 적제
장점 : 캐시 적중률↑
단점 : 복잡, 구현 비용 ↑, 빠름
- 집합 연관 사상 (Set Associate Mapping) : 집접사상과 연관사상의 절충 방식 -> 캐시와 메모리가 M:1 대응
장점 : 각 장점 수용
단점 : 캐시 Fin/Fout 발생↑, 구현 비용↑
※ 가상주소를 실제 주소로 변환하는 과정이 빠른순 연관 > 직접/연관 > 직접
3. 캐시 메모리 관리 방식
1) 캐시 메모리 인출 방식
- Demand Fetch : 필요 시 캐시 인출
- Pre-Fetch : 예상하여 미리 패치
2) 캐시 메모리 교체 (Replacement) 알고리즘
종류 | 설명 | 특징 |
Random | 랜덤 선정 교체 | Overhead ↓ |
FIFO (First In First Out) | 선입선출 교체 | 자주 사용되는 page 교체 우려 |
LFU (Least Frequently Used) | 사용 횟수↓ 교체 | 최근 적제 page 교체 우려 |
LRU (Least Recently Used) | 가장 오래 사용X 교체 | Overhead 존재 |
NUR (Not Used Recently) | 참초비트, 수정비트로 미사용 page 교체 | 최근 사용하지 않은 page 교체 |
SCR (Second Chance Replacement) | 참초비트를 1->0->교체 | 한번더 기회를 줌 |
Optimal | 향후 참조되지 않을 page 예상 교체 | 실현 불가 |
- 페이지 교체 관리시 문제점
문제점 | 세부내용 |
Page Fault 발생 (페이지 부재) | 적제되지 않은 Page 참조 시 발생 |
Demand Paging (요구 페이징) | 요구 될때만 Page 적제 |
Thrashing 발생 (쓰래싱) | Page 부재가 빈번하여 Page 교체에 많은 시간을 소요하는 현상 |
4. 캐시 메모리 일관성 (Cache Coherence)
1) 캐시 메모리 일관성 유지 방식
- Write-Through : CPU와 캐시 값 동기화
- Write-Back : 캐시로부터 해제 될때만 주기억 장치로 전송
※ 두 방법다 캐시 불일치 발생 가능
5. 가상 메모리 시스템
: 주기억장치의 용량 문제로 보조기억장치를 가상 할당하여 주기억 장치처럼 사용
1) 가상 메모리 (Virtual Memory)
: 물리적 메모리 한계를 극복하기위해 사용하는 메모리 관리 방식
2) 가상 메모리 단위
구분 | Paging | Segment |
할당 | Static 분할 | Dynamic 분할 |
적제 | 요구 Page 일부 적제 | 프로그램 전체 적제 |
관점 | 메모리 관리 측면 | 파일 관리 측면 |
장점 | - 요구 Page만 적제 - 교체 시간 최소 |
- 사용자 관점 - 개발 용이 |
단점 | 내부 단편화 발생 | 외부 단편화 발생 |
3) 가상 메모리 관리 정책
종류 | 세부 내용 | 기법의 유형 |
할당 기법 (Allocation) | 메모리 블록 단위 결정 | 고정할당, 가변할당, Paging, Segment |
호출 기법 (Fetch Policy) | 적제 시점 결정 | Demand Fetch, Pre Fetch |
배치 기법 (Placement) | 적제 위치 결정 | Frist fit, Best fit, Next fit, Worst fit |
교체 기법 (Replacement) | 교체 대상 결정 | Random, FIFO, LFU, LRU, NUR, SCR, Optimal |
6. 가상 메모리 관리 기법
1) Paging
: 고정된 Page라는 블록으로 분할 관리 -> 내부 단편화 발생
2) Segmentation
: 가변적인 Segment라는 블록으로 분할 관리 -> 외부 단편화 발생
3) Paged Segmentation
: 페이지들로 세그먼트를 구성하고 세그먼트 표 참조후 페이지표 참조 -> 외부단편화 제거 But. 내부 단편화 발생 가능
- I/O 인터페이스
: 주기억장치와 보조기억장치에서 수행한 결과를 입출력 수행
1) CPU 경유에 따른 입출력 방법
CPU 경유 | 프로그램에 의한 I/O, 인터럽트에 의한 I/O |
CPU 비 경유 | DMA Channl I/O |
2) 프로그램에 의한 I/O, 인터럽트에 의한 I/O
프로그램에 의한 I/O | - 메모리에 기록된 입출력 명령 수행 - Polling 방식 (CPU가 감시) - 시간 낭비 및 효율↓ |
인터럽트에 의한 I/O | - 인터럽트 요청 감지하면 작업 중단 후 서브루틴 수행 |
1. DMA (Direct Memory Access)
: CPU의 개입 없이 I/O 장치와 기억장치 사이의 데이터 전송하는 방식
- 속도 ↑
- DMA 동작 방식
Cycle Stealing | CPU와 Bus 공유 (CPU가 사용하지 않을때 접근) |
Burst Mode | DMA 제어기가 Bus 점유 (수행 완료후 Bus 해제) |
2. I/O 프로세서 (I/O Channel)
1) 구성 요소
- 프로세서 : I/O 명령어 실행
- 지역 기억장치 : 대용량 데이터 블록 저장소
- Bus 인터페이스 : 시스템 Bus 인터페이스
- Bus 중재 회로 : Bus 마스터, Bus 중재
2) I/O 프로세서 종류
종류 | 내용 |
Multiplexer Channel | - 동시에 많은 데이터 전송 - 저속 장치 (Printer, Serial) - 시분할 방식 - 전송 단위에 따라 Block Multiplexer Channel, Byte MultiPlexer Channel 존재 |
Selector Channel | - 한번에 한개씩 데이터 전송 - 고속 장치 (Disk, CDROM) - Burst Mode 동작 |
Block Multiplexer Channel | - 하이브리드 모드 - 동시에 여러 I/O 처리 - 블록 단위 |
Byte MultiPlexer Channel | - 한개의 채널에 여러개의 입출력 장치 연결 - 시분할 공유 - 저속 입출력 |
'정보보안기사 필기' 카테고리의 다른 글
[02]-06 네트워크 활용(TCP/IP) (0) | 2021.02.17 |
---|---|
[02]-05 네트워크 일반 (0) | 2021.02.16 |
[01]-04 윈도우 Client 및 Server 보안 (0) | 2021.02.15 |
[01]-03 리눅스 서버 보안 (0) | 2021.02.13 |