JUNGLE 240501 (W06)
KRAFTON JUNGLE Week 06
KeyWords
가상 메모리
- 메모리의 공간은 한정적이므로 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용한다.
- 메모리 관리 장치는 가상 주소를 이용해 실제 데이터가 담겨있는 주소로 변환해준다.
- 가상 주소 공간: 하나의 프로세스가 메모리에 저장되는 논리적인 모습을 가상 메모리에 구현한 공간 / 가상 주소: 해당 공간을 가리키는 주소
단편화
내부 단편화
- 할당된 블록이 데이터 자체보다 더 클 때 발생
- 내부 단편화는 정량화하기가 간단하다. (할당된 블록의 크기과 데이터 크기 차이의 합)
외부 단편화
- 할당 요청을 만족시킬 수 있는 메모리 공간이 전체적으로 공간을 모았을 때는 충분한 크기가 존재하지만, 이 요청을 처리할 수 있는 단일한 가용 블록은 없는 경우에 발생
- 외부 단편화는 내부 단편화보다 훨씬 더 측정하기 어렵다. -> 이전 요청의 패턴과 할당기 구현에만 의존하는 것이 아니라 미래의 요청 패턴에도 의존하기 때문
단편화 문제 해결 (페이징과 세그멘테이션)
- 외부 단편화 해소를 위한 페이징과 내부 단편화 해소를 위한 세그멘테이션으로 나뉨
- 페이징은 물리적 단위로 분할, 세그멘테이션은 논리적 단위로 분할
페이징
- 프로세스를 일정한 크기의 페이지로 분할해서 메모리에 적재하는 방식
- 페이지: 고정 사이즈의 가상 메모리 내 프로세스 조각
- 프레임: 페이지 크기와 같은 주 기억 장치의 메모리 조각
- 하나의 프로세스가 사용하는 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 방법
- MMU는 가상 주소를 이용해 실제 데이터가 담겨 있는 주소로 변환해줌
- 장점: 가상 메모리는 물리 메모리에 저장될 때 연속되어 저장될 필요가 없고, 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화가 생기지 않음
- 단점: 내부 단편화 문제 발생 가능. 페이지 단위를 작게하면 해결할 수 있지만, 페이지 매핑 과정이 복잡해져 오히려 비효율적
세그멘테이션
- 가상 메모리를 서로 크기가 다른 논리적 단위로 분할한 것
- 프로세스를 물리적 단위인 페이지가 아닌 논리적 단위인 세그먼트로 분할해서 메모리에 적재하는 방식
- 장점: 내부 단편화 문제 해소, 보호와 공유 기능 수행 가능. 프로그램의 중요한 부분을 분리하여 저장할 수 있고 같은 코드 영역을 한번에 저장 가능
- 단점: 외부 단편화 문제 발생 가능
Demand-Zero-Memory (가상 메모리 관리 기법)
- 페이지가 실제로 사용되기 전까지는 물리적 메모리에 할당되지 않는 방식
- 즉, 프로그램이 메모리를 요청할 때마다 즉시 할당되지 않고, 실제로 사용될 때까지 초기화되지 않은 상태로 유지
- 메모리 사용 효율성이 향상되고, 시스템 자원을 절약할 수 있음
동작 방식
- Page Fault: 프로세스가 아직 메모리에 로드되지 않은 주소에 접근하려고 하면 발생
- Demand Zero: Page Fault 핸들러가 해당 페이지를 물리적 메모리에 매핑하고
0
으로 초기화 - 사용: 초기화된 페이지는 이제 프로세스에 의해 사용될 수 있으며, 프로세스는 0으로 초기화된 메모리를 사용하여 자신의 데이터 저장
장점
- 메모리 절약: 실제로 사용되지 않는 페이지는 물리적 메모리를 차지하지 않음
- 효율성: 프로세스 시작 시 필요한 전체 메모리를 할당할 필요가 없으므로, 빠른 시작 가능
- 유연성: 프로세스가 필요한 만큼의 메모리만 사용하므로, 시스템은 메모리를 더 유연하게 관리할 수 있음
단점
- 오버헤드: 페이지가 실제로 사용될 때마다 페이지 폴트 처리가 필요하므로 오버헤드 발생
- 성능 지연: 페이지를 0으로 초기화하는 과정에서 미세한 지연이 발생, 페이지 폴트가 빈번하게 발생하면 시스템의 전체적인 성능에 영향을 줌
시스템 콜
- 컴퓨터 프로그램이 운영 체제 또는 커널의 서비스를 요청하는 방법
- 프로그램이 운영 체제와 상호작용 하려면 시스템 콜을 사용해야 함
- 사용자 프로그램이 시스템 콜을 호출하면 운영 체제는 해당 요청을 처리하고 결과를 프로그램에 반환
- Ex. 파일 입출력, 메모리 할당, 프로세스 관리, 네트워크 통신 등
DMA (Direct Memory Access)
- 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움없이 DMA 컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식
- CPU는 상태, 제어 정보만을 교환하고 데이터 전송은 I/O와 메모리 간에 직접 교환
- DMA 컨트롤러가 버스를 제어하고 I/O와 메모리가 정보를 직접 전송
- PIO: DMA와 대비되는 개념으로 DMA가 입출력 장치와 메모리 간의 직접적인 데이터 전송을 수행하는 반면, PIO는 CPU가 직접 데이터 전송 처리
DMA의 장점
- 속도 향상: CPU가 직접 데이터를 전송하는 것보다 빠름. CPU는 DMA에 전송을 지시한 후 다른 작업을 수행할 수 있음
- 자원 절약: DMA는 CPU를 사용하지 않고 메모리 전송을 수행하므로 CPU를 다른 작업에 사용할 수 있음
- 대역폭 활용: DMA를 통해 여러 디바이스 간의 데이터를 병렬로 전송할 수 있으므로 전송 대역폭을 최대화할 수 있음
이더넷
- 네트워크 장치들이 데이터를 교환하는 데 사용되는 컴퓨터 네트워크 기술
- 유선 네트워크에서 사용되며, 일반적으로 이더넷 케이블을 통해 연결
- 이더넷은 네트워크 장치 간에 데이터를 안정적으로 전송하는 데 중요한 역할을 함
이더넷의 장점
- 높은 전송 속도: 이더넷은 고속 데이터 전송을 지원하여 대용량의 데이터를 빠르게 전송할 수 있음
- 확장성: 이더넷은 다양한 네트워크 규모에 대응할 수 있음
- 비용 효율성: 비교적 저렴한 가격에 구축할 수 있음. 특히 유선 이더넷은 비용 대비 안정성과 성능이 뛰어나기 때문에 많은 기업과 조직에서 선호
- 유연성: 이더넷은 다양한 네트워크 장비와 프로토콜 지원 (다양한 운영 체제 및 네트워크 구성 요소를 쉽게 통합 가능)
- 신뢰성: 충돌 감지와 재전송 메커니즘을 통해 데이터 전송의 신뢰성을 높임
이더넷의 단점
- 유선 제약: 주로 유선 네트워크로 사용되기 때문에 케이블을 통한 연결이 필요 (이동성 제한 및 추가 비용, 복잡성 발생)
- 충돌 및 혼잡: 이더넷은 CSMA/CD(충돌 감지 다중 접속 / 충돌 검출) 프로토콜을 사용하여 충돌을 감지하고 관리하는데, 이는 네트워크 혼잡과 충돌이 발생할 수 있는 환경을 만들어 냄
- 보안 취약성: 유선 네트워크의 경우 데이터가 물리적으로 접근 가능하므로 보안 위협에 노출됨
- 신호 감쇠: 이더넷 케이블의 길이가 길어질수록 신호가 약해지고 감쇠
- 스위칭 장비 필요: 대규모 네트워크에서는 스위치와 같은 추가 장비 필요