• 시스템 호출 과정
응용 프로그램이 운영체제의 기능을 사용할 때 시스템 호출이 이루어지는 과정은 다음과 같습니다.
1. 응용 프로그램의 시스템 호출 요청: 응용 프로그램이 시스템 자원을 사용하려고 운영체제에 시스템 호출을 요청하는 단계입니다. 이 요청은 사용자 모드에서 실행합니다.
2. CPU 커널 모드 전환: CPU가 사용자 모드에서 커널 모드로 전환되는 단계입니다. 시스템 호출이 발생하면 CPU의 제어권이 커널에 넘어가고, 실행 흐름이 응용 프로그램에서 운영체제로 변경됩니다. 운영체제는 시스템 호출을 직접 실행하는 것이 아니라 내부적으로 syscall 명령을 사용해 CPU에 커널 모드 전환을 요청합니다. syscall 명령이 실행되면 트랩 또는 소프트웨어 인터럽트가 발생하고 CPU가 커널 모드로 전환됩니다.
TIP - 트랩(trap)은 시스템 호출이 발생할 때 실행 흐름을 변경하는 이벤트고, 소프트웨어 인터럽트(software interrupt)는 소프트웨어가 CPU에 특정 요청을 전달하는 인터럽트입니다.
3. 시스템 호출 처리: 운영체제의 커널이 요청한 시스템 호출의 종류를 분석하고, 해당 요청을 처리할 시스템 기능을 실행하는 단계입니다. 커널이 요청을 처리할 때는 파일 시스템, 프로세스 관리, 메모리 관리 등 여러 기능과 상호작용할 수 있습니다.