


32비트일 때 블록과 도커 환경의 리눅스 환경에서 64비트의 블록 초기화가 달라져서 그림으로 표현해보았다.
나는 가용 가능한 블록을 8바이트로 크게 잡았는데 이걸 4바이트로 줄여 24바이트를 최소 블록 크기로 설정이 가능하다는 이야기를 들었다.
그렇게되면 내부 단편화가 좀 완화가 되어 space utillization 이 나아질듯 싶어서 내일 해볼 생각
CPU 없이도 입출력이 가능하다면? 시스템 효율을 크게 높이는 핵심 기술, DMA를 알아보자.
DMA(Direct Memory Access)는 CPU의 개입 없이 입출력 장치와 메모리 사이에서 데이터 전송을 직접 수행하는 방식이다. CPU는 디바이스 설정만 담당하고, 데이터 전송 자체는 DMA 컨트롤러가 담당한다.
이 방식은 다음과 같은 구조로 작동한다:
✅ CPU는 명령만 던져주고, 실제 데이터 처리는 DMA가 맡는 구조
| 방식 | 설명 |
|---|---|
| Polling 방식 | CPU가 디바이스 상태를 계속 확인하며 전송 완료 여부를 감시함. CPU 리소스 낭비 심함. |
| DMA 방식 | CPU는 명령만 전달하고 기다림 없이 다른 작업 수행 가능. 효율적이고 빠름. |
| 모드 | 설명 |
|---|---|
| 버스트 모드 | 데이터를 한 번에 전송. CPU는 전송 동안 버스를 사용하지 못함. |
| 사이클 스틸링 | CPU가 메모리에 접근하지 않을 때 잠깐씩 버스를 사용. |
| 투명 모드 | CPU가 메모리에 접근하지 않을 때만 동작하여 CPU 성능에 거의 영향 없음. |
Cache Flush / Invalidate
Non-Cacheable Memory 설정
Cache-Coherent DMA
전송 방식
| 연도 | 표준 | 속도 | 설명 |
|---|---|---|---|
| 1985 | 802.3 | 10Mbps | 동축 케이블 기반 |
| 1990 | 802.3i | 10Mbps | UTP 케이블 기반 |
| 1995 | 802.3u | 100Mbps | Fast Ethernet |
| 1998 | 802.3z | 1Gbps | Gigabit Ethernet |
| 2002 | 802.3ae | 10Gbps | 10G Ethernet |
| 2010 이후 | - | 40, 100, 200, 400Gbps | 고속 통신 시대 진입 |
Carrier Sense Multiple Access with Collision Detection
| 방식 | 설명 | CSMA/CD 사용 |
|---|---|---|
| Half Duplex | 공유 케이블, 송·수신 번갈아 수행 | 사용함 |
| Full Duplex | 송·수신 동시 가능, 전용 케이블 | 사용 안함 (비공유 매체) |
※ 표준 호환을 위해 여전히 CSMA/CD 기능은 내장되어 있음
유선 네트워크에서 핵심적인 역할 수행
const fs = require("fs");
const input = fs.readFileSync('input.txt').toString().split('\n');
// 일곱 난쟁이의 합이 100
// 완전탐색 -> 2명을 고르는 픽을 완전탐색으로
let N = 9;
let smalls = [];
for (let i = 0; i < N; i++) {
smalls.push(parseInt(input[i]));
}
let total_sum = smalls.reduce((acc, num) => acc + num);
let found = false;
for (let i = 0; i < N; i++) {
for (let j = i + 1; j < N; j++) {
let two_sum = smalls[i] + smalls[j];
if (total_sum - two_sum == 100) {
smalls.splice(j, 1);
smalls.splice(i, 1);
break;
}
}
if (smalls.length == 7) break;
}
smalls.sort((a, b) => a - b)
console.log(smalls.join('\n'));
일단 파이썬의 Pop 처럼 인자를 전달한다고 해서 해당 인덱스를 배열에서 없앨 수 없다.
따라서 splice를 통해서 배열을 잘라내는 내장함수를 활용해야함.
문제 조건을 꼭 읽자
정렬조건 모르고.... 그냥 냅다 답을 제출했다.