| ⬅️ 이전 | 🏠 분류 목차 |
구성 요소 간의 상호작용
구성 요소 간의 상호작용
1. 사용자 요청 처리 과정
명령어 실행 과정
- 사용자 입력: 사용자가 쉘에 명령어 입력
- 명령어 파싱: 쉘이 명령어를 파싱하고 분석
- 유틸리티 호출: 해당 유틸리티 프로그램 호출
- 커널 시스템 호출: 유틸리티가 커널에 시스템 호출 요청
- 하드웨어 제어: 커널이 하드웨어에 직접 접근하여 작업 수행
- 결과 반환: 결과를 쉘을 통해 사용자에게 반환
시스템 호출 과정
시스템 호출의 예:
// 파일 열기 시스템 호출
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() 시스템 호출
유틸리티와 커널 간 통신
유틸리티의 커널 활용:
- 파일 시스템 유틸리티: 파일 시스템 시스템 호출 활용
- 네트워크 유틸리티: 소켓 시스템 호출 활용
- 프로세스 관리 유틸리티: 프로세스 관리 시스템 호출 활용
- 시스템 모니터링 유틸리티: 시스템 정보 시스템 호출 활용
서브목차