..

시스템 콜, DMA, 이더넷

시스템 콜(System Call)

  • 사용자 프로그램이 OS 기능을 요청하는 방법
  • 트랩이 발생하면 CPU는 즉시 커널 모드로 전환, 운영체제의 시스템 콜 핸들러로 점프
    • 트랩: 오류나 예외(Exception)처럼 예기치 않게 발생하는 것이 아니라, syscall, int 같은 명령어로 프로그래머가 의도적으로 발생시키는 것
    • 시스템 콜 핸들러: CPU가 트랩을 통해 직접 점프해서 실행하는 운영체제 함수
  • 동작 방식
    1. 프로그램이 c 라이브러리 함수를 호출합니다(read, write)
    2. 특수한 트랩 명령어를 실행하여 CPU를 커널 모드로 전환
    3. CPU는 시스템 콜 벡터 테이블을 참조하여 적절한 커널 핸들러로 점프
      • 커널 핸들러가 시스템 콜 핸들러보다 더 큰범위
    4. 커널은 파일 디스크립터 테이블 확인, 파일 시스템 접근 등 요청된 작업을 수행
    5. 결과(읽은 바이트 수, 에러 코드 등)를 레지스터에 저장
    6. 제어가 다시 사용자 프로그램으로 돌아감 → 호출한 함수가 반환값을 사용자 코드로 전달

DMA(Direct Memory Access)

  • DMA는 CPU를 거치지 않고 I/O 장치가 메인 메모리에 직접 데이터 전송을 수행할 수 있게 해주는 메커니즘
  • CPU 부하를 줄이고 I/O 성능을 높일 수 있음
  • CPU가 DMA 컨트롤러에게 전송할 메모리 시작 주소, I/O 장치 주소, 데이터 크기를 알려줍니다
  • 디스크 블록을 읽거나 네트워크 카드에서 패킷을 받으면, DMA가 이를 메모리 버퍼로 직접 전송한 뒤 CPU에게 “다 됐다”라고 알려줍니다
  • CPU는 전송 시작과 끝만 확인하고, 실제 데이터 이동은 DMA 컨트롤러가 처리하여 성능 향상과 CPU 효율성을 보장

DMA

이더넷(Ethernet)

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