..
시스템 콜, DMA, 이더넷
시스템 콜(System Call)
- 사용자 프로그램이 OS 기능을 요청하는 방법
- 트랩이 발생하면 CPU는 즉시 커널 모드로 전환, 운영체제의 시스템 콜 핸들러로 점프
- 트랩: 오류나 예외(Exception)처럼 예기치 않게 발생하는 것이 아니라, syscall, int 같은 명령어로 프로그래머가 의도적으로 발생시키는 것
- 시스템 콜 핸들러: CPU가 트랩을 통해 직접 점프해서 실행하는 운영체제 함수
- 동작 방식
- 프로그램이 c 라이브러리 함수를 호출합니다(read, write)
- 특수한 트랩 명령어를 실행하여 CPU를 커널 모드로 전환
- CPU는 시스템 콜 벡터 테이블을 참조하여 적절한 커널 핸들러로 점프
- 커널 핸들러가 시스템 콜 핸들러보다 더 큰범위
- 커널은 파일 디스크립터 테이블 확인, 파일 시스템 접근 등 요청된 작업을 수행
- 결과(읽은 바이트 수, 에러 코드 등)를 레지스터에 저장
- 제어가 다시 사용자 프로그램으로 돌아감 → 호출한 함수가 반환값을 사용자 코드로 전달
DMA(Direct Memory Access)
- DMA는 CPU를 거치지 않고 I/O 장치가 메인 메모리에 직접 데이터 전송을 수행할 수 있게 해주는 메커니즘
- CPU 부하를 줄이고 I/O 성능을 높일 수 있음
- CPU가 DMA 컨트롤러에게 전송할 메모리 시작 주소, I/O 장치 주소, 데이터 크기를 알려줍니다
- 디스크 블록을 읽거나 네트워크 카드에서 패킷을 받으면, DMA가 이를 메모리 버퍼로 직접 전송한 뒤 CPU에게 “다 됐다”라고 알려줍니다
- CPU는 전송 시작과 끝만 확인하고, 실제 데이터 이동은 DMA 컨트롤러가 처리하여 성능 향상과 CPU 효율성을 보장

이더넷(Ethernet)
- 이더넷은 컴퓨터와 네트워크 장치등을 연결하는 데이터 링크 계층 기술
- IP 패킷을 실제 물리 네트워크에서 전달하기 위해, MAC 주소를 기반으로 프레임 단위 전송을 담당하는 링크 계층 기술
- 이더넷은 링크 계층의 대표 사례
- 7계층 응용, 6계층 표현, 5계층 세션, 4계층 전송, 3계층 네트워크, 2계층 데이터 링크, 1계층 물리