➊ 응용 프로그램은 open() 시스템 호출을 사용해 커널에 파일을 열어 달라고 요청합니다. 이 요청은 사용자 모드에서 실행됩니다.
➋ 시스템 호출이 발생하면 CPU는 사용자 모드에서 커널 모드로 전환되어 제어권이 커널로 넘어갑니다.
➌ 커널이 파일 시스템(디스크)에서 test.txt 파일을 검색합니다. 해당 파일이 존재하면 파일의 메타데이터(파일 크기, 권한 등)를 확인해 파일 디스크립터를 생성합니다.
➍ 요청한 작업을 완료하고 커널은 파일 디스크립터 번호 또는 오류 코드(-1, 파일 없음)를 반환합니다. CPU는 커널 모드에서 사용자 모드로 전환됩니다.
➎ 응용 프로그램은 반환한 파일 디스크립터를 사용해 파일을 읽거나 씁니다.
Note 커널 모드와 사용자 모드
운영체제는 CPU의 실행 모드를 크게 두 가지로 구분합니다.
• 커널 모드(kernel mode): 운영체제가 실행되는 특수 권한 모드로, 운영체제의 핵심 기능(프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리)이 수행됩니다. 커널 모드에서는 CPU가 모든 명령어를 실행할 수 있고, 하드웨어(메모리, CPU, 디스크, 네트워크 등)에 직접 접근할 수 있습니다. 커널 영역으로 보호됩니다.