⬅️ 이전     🏠 분류 목차

구성 요소 간의 상호작용

구성 요소 간의 상호작용

1. 사용자 요청 처리 과정

명령어 실행 과정

  1. 사용자 입력: 사용자가 쉘에 명령어 입력
  2. 명령어 파싱: 쉘이 명령어를 파싱하고 분석
  3. 유틸리티 호출: 해당 유틸리티 프로그램 호출
  4. 커널 시스템 호출: 유틸리티가 커널에 시스템 호출 요청
  5. 하드웨어 제어: 커널이 하드웨어에 직접 접근하여 작업 수행
  6. 결과 반환: 결과를 쉘을 통해 사용자에게 반환

시스템 호출 과정

시스템 호출의 예:

// 파일 열기 시스템 호출
int fd = open("file.txt", O_RDONLY);
if (fd == -1) {
    perror("open");
    exit(1);
}

// 파일 읽기 시스템 호출
char buffer[1024];
ssize_t bytes_read = read(fd, buffer, sizeof(buffer));

// 파일 닫기 시스템 호출
close(fd);

2. 계층 간 통신

쉘과 커널 간 통신

시스템 호출을 통한 통신:

  • 프로세스 생성: fork(), exec() 시스템 호출
  • 파일 조작: open(), read(), write(), close() 시스템 호출
  • 프로세스 제어: wait(), exit() 시스템 호출
  • 시스템 정보: uname(), sysinfo() 시스템 호출

유틸리티와 커널 간 통신

유틸리티의 커널 활용:

  • 파일 시스템 유틸리티: 파일 시스템 시스템 호출 활용
  • 네트워크 유틸리티: 소켓 시스템 호출 활용
  • 프로세스 관리 유틸리티: 프로세스 관리 시스템 호출 활용
  • 시스템 모니터링 유틸리티: 시스템 정보 시스템 호출 활용

⬅️ 이전

서브목차