프로세서가 현재 실행 중인 코드가 사용자 모드(user mode)인지 커널 모드(kernel mode)인지 구분하는 데 사용(시스템의 안전성
과 안정성
을 보장하는데 중요한 역할)
사용자 모드(User Mode) : 사용자 프로그램이 실행되는 모드로 제한된 권한만을 갖음, 하드웨어 자원에 직접 접근할 수 없으며 시스템 콜을 통해서만 접근할 수 있음
커널 모드(Kernel Mode) : 운영 체제가 실행되는 모드로 모든 하드웨어 자원에 접근할 수 있는 권한을 갖음, 시스템 콜 처리와 같은 중요한 작업이 이 모드에서 수행
- 시작 시 사용자 모드 : 일반적으로 응용 프로그램은 사용자 모드에서 시작
- 시스템 콜 호출 : 응용 프로그램이 시스템 콜을 호출하면 모드 비트가 사용자 모드에서 커널 모드로 전환
- 커널 모드에서 시스템 콜 처리 : 운영 체제가 커널 모드에서 시스템 콜을 처리
- 시스템 콜 종료 : 시스템 콜 처리가 완료되면 모드 비트가 다시 커널 모드에서 사용자 모드로 전환
커널
- 안전한 자원 접근
- 시스템 콜을 통해 응용 프로그램은 운영 체제의 검증을 거쳐서만 하드웨어 자원에 접근할 수 있음
- 이는 자원에 대한 불법 접근을 방지하고 시스템의 보안과 안정성을 높임
- 추상화 및 편리성
- 시스템 콜은 하드웨어와의 직접적인 상호작용을 추상화하여 응용 프로그램이 복잡한 하드웨어 동작을 신경 쓰지 않고도 필요한 작업을 수행할 수 있게 함
- 예를 들어, 파일 읽기/쓰기, 메모리 할당, 프로세스 관리 등을 쉽게 할 수 있음
- 일관성 유지
- 다양한 하드웨어와 플랫폼에서 일관된 인터페이스를 제공
- 이는 응용 프로그램이 다양한 환경에서 동일한 방식으로 운영 체제의 서비스를 사용할 수 있도록 함
- 자원 관리 및 효율성
- 운영 체제는 시스템 콜을 통해 자원의 할당과 해제를 중앙에서 관리
- 이를 통해 자원의 중복 사용이나 누수를 방지하고 전체 시스템의 효율성을 높일 수 있음
- 안정성
- 운영 체제가 응용 프래고름의 요청을 안전하게 처리할 수 있도록 함
- 예를 들어, 잘못된 메모리 접근이나 무한 루프 등으로 인해 시스템이 불안정해지는 것을 방지
- 보안
- 시스템 콜을 통해 운영 체제는 각 응용 프로그램의 권한을 제어할 수 있음
- 이를 통해 악성 프로그램이 시스템 자원에 무단 접근하는 것을 방지할 수 있음
- 프로세스 간 통신
- 시스템 콜은 프로세스 간 통신(IPC, Inter-Process Communication)을 지원하여 서로 다른 프로세스들이 데이터를 주고받을 수 있도록 함
- 이를 통해 복잡한 응용 프로그램이 모듈화되고 협력하여 동작할 수 있음