> 일반적인 문제 > 운영 체제는 응용 프로그램에 어떤 인터페이스를 제공합니까?

운영 체제는 응용 프로그램에 어떤 인터페이스를 제공합니까?

青灯夜游
풀어 주다: 2022-06-30 18:02:24
원래의
10756명이 탐색했습니다.

운영 체제에서 응용 프로그램에 제공하는 인터페이스는 "시스템 호출"입니다. 운영 체제 인터페이스에는 주로 명령 인터페이스와 프로그램 인터페이스가 포함되며, 시스템 호출이라고도 불리는 프로그램 인터페이스는 시스템 호출 명령 집합으로 구성되며 사용자 프로그램이 사용할 시스템 호출 명령 집합을 제공합니다. 시스템 호출은 응용 프로그램과 시스템 사이의 인터페이스입니다. 응용 프로그램의 요청을 커널에 전달하고 해당 커널 함수를 호출하여 필요한 처리를 완료하고 처리 결과를 응용 프로그램에 반환합니다.

운영 체제는 응용 프로그램에 어떤 인터페이스를 제공합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

운영 체제에서 응용 프로그램에 제공하는 인터페이스는 "시스템 호출"입니다.

운영 체제 인터페이스에는 주로 명령 인터페이스와 프로그램 인터페이스가 포함되며, 그중 프로그램 인터페이스를 시스템 호출이라고도 합니다.

프로그램 인터페이스(시스템 호출)는 시스템 호출 명령 집합으로 구성되며 사용자 프로그램에서 사용할 시스템 호출 명령 집합을 제공합니다.

운영 체제의 시스템 호출

운영 체제 구현에서 제공되는 모든 시스템 호출 집합은 프로그램 인터페이스 또는 API(응용 프로그래밍 인터페이스)입니다. 응용 프로그램과 시스템 간의 인터페이스입니다.

운영 체제의 주요 기능은 하드웨어 리소스를 관리하고 애플리케이션 개발자가 애플리케이션의 호환성을 높일 수 있는 좋은 환경을 제공하는 것입니다. 이 목적을 달성하기 위해 커널은 미리 정해진 기능을 갖춘 일련의 다중 커널 기능을 제공합니다. 시스템 호출이라는 일련의 인터페이스를 통해 사용자. 시스템 호출은 애플리케이션 요청을 커널에 전달하고, 해당 커널 함수를 호출하여 필요한 처리를 완료하고, 처리 결과를 애플리케이션 프로그램에 반환합니다.

최신 운영 체제에는 일반적으로 프로세스에 의해 구현되는 멀티 태스킹 기능이 있습니다. 운영 체제는 각 프로세스 간 실행을 신속하게 전환하므로 모든 것이 동시에 진행되는 것처럼 보입니다. 동시에 이는 많은 보안 문제를 야기합니다. 예를 들어, 프로세스는 다른 프로세스에 이상 현상을 일으키거나 특정 목적을 달성하기 위해 프로세스의 메모리 공간에 있는 데이터를 쉽게 수정할 수 있습니다. 안전하게 실행하세요. 이 문제에 대한 해결책은 프로세서에 기본 레지스터와 제한 레지스터를 추가하는 것입니다. 이 두 레지스터의 내용은 하드웨어를 사용하여 메모리 액세스 명령어에 의해 액세스되는 메모리 주소를 제한합니다. 이러한 방식으로 시스템 스위치가 프로세스를 수행할 때 이 두 레지스터의 내용을 프로세스에 할당된 주소 범위에 기록하여 악성 코드를 방지할 수 있습니다.

사용자 프로그램이 다른 메모리 공간에 액세스하기 위해 기본 레지스터 및 제한 레지스터의 내용을 수정하는 것을 방지하려면 일부 특수 명령어를 통해 이 두 레지스터에 액세스해야 합니다. 일반적으로 프로세서에는 "사용자 모드"와 "커널 모드"라는 두 가지 모드가 있습니다. 태그 비트는 현재 어떤 모드에 있는지 식별하는 데 사용됩니다. 기본 주소 레지스터의 내용 수정과 같은 일부 명령은 커널 모드에서만 실행될 수 있습니다. 사용자 모드에서는 하드웨어가 이 명령을 직접 건너뛰고 다음 명령을 계속 실행합니다.

마찬가지로 보안상의 이유로 일부 I/O 작업 명령은 커널 모드 실행으로만 제한되므로 애플리케이션에 디스크의 특정 위치에서 데이터를 읽는 등의 인터페이스를 제공하기 위해서는 운영 체제에서 인터페이스를 제공해야 합니다. 이러한 인터페이스를 시스템 호출이라고 합니다.

운영 체제가 시스템 호출 요청을 받으면 프로세서는 커널 모드로 들어가 I/O 작업과 같은 명령을 수행하고 시스템 호출 내용을 처리한 후 기본 주소 레지스터의 내용을 수정합니다. 프로세서가 사용자 모드로 돌아가 사용자 코드를 실행하도록 합니다.

시스템콜과 일반콜의 차이점

시스템콜은 본질적으로 프로시저콜이지만 특수한 프로시저콜이고 일반 사용자 프로그램의 프로시저콜과는 분명히 다릅니다.

  • 작동상태가 다릅니다

    작동상태가 다릅니다. 시스템 호출의 호출 프로세스와 호출 프로세스는 서로 다른 상태에서 실행되지만 일반 프로시저 호출은 일반적으로 동일한 상태에서 실행됩니다.

  • 호출 방법이 다릅니다

    호출 방법이 다릅니다. 시스템 호출은 해당 명령 처리기로 전달되기 전에 먼저 소프트 인터럽트 메커니즘을 통해 시스템 코어에 들어가야 합니다. 일반 프로시저 호출은 호출 프로세스에서 호출 프로세스로 직접 전송할 수 있습니다.

  • 질문으로 돌아가기

    질문으로 돌아가기. 선점형 스케줄링을 사용하는 시스템에서는 시스템 호출이 반환되면 우선순위가 더 높은 작업이 준비되었는지 여부를 확인하기 위해 스케줄링 분석을 다시 분석해야 합니다. 일반 프로시저 호출은 호출 프로세스로 직접 돌아가 실행을 계속합니다.

더 많은 관련 지식은 FAQ 칼럼을 방문해주세요!

위 내용은 운영 체제는 응용 프로그램에 어떤 인터페이스를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿