페이지 폴트로 인한 여행

개요

우선, 그것의 메모리를위한 페이지, 무엇을, 현대적인 운영 시스템 메모리는 많은으로 나누어 져 페이지 (논리적으로), 기본 페이지 크기를 킬로바이트 (리눅스)입니다. 메모리 (필요 없음)에로드하지 일회성 페이지가 프로그램에 필요합니다 프로그램을 실행하면 시스템을 작동.
운영 체제에로드되지 않은 페이지를 사용하는 프로그램 실행 그래서 때 물리적 메모리 a의 CPU에서 트리거 될 때 누락 된 페이지 오류, 운영 체제가이 오류를 잡아 한 다음 해당하는 실제 메모리 페이지에로드합니다.

페이지, 물리적 메모리, 인터럽트 : 위에서 설명한 여러 가지 개념을 포함한다.

페이지와 섹션

메모리가 페이지로 구분되는 것을 제외하고는, 사실, 섹션으로 프로그램에 필요한 모든 데이터와 명령어를 저장하는 메모리의 일부를 분리 할 수있다. 이 경우에는 데이터 또는 지시가없는 생성하지 않습니다. 메모리 조각화 및 메모리 :하지만 새로운 문제를 발생시킵니다. 으로는 다음과 같습니다 :

물론 해결책이있다, 즉, 메모리 스와핑 , 파이썬 프로그램은 256M은 첫 번째 디스크에 기록하고, 다시 하드 디스크에서 메모리로 읽어 차지하지만 512M을 점령에서 작성되었습니다. 우리는 지속적으로 256M 공간은 새로운 프로그램 X를로드 할 수 있도록 그것은, 어떤 페이지 완벽한 보인다
몇 배 느린 모습을, 그리고 우리 모두가 알고있는 사실, 메모리는 하드 디스크 액세스 속도에 비해 있지만. 자주 디스크를 읽고 확실히 올라갈되지 않은 쓰기 성능 때문에 페이지 만이있다.

예외 및 인터럽트

이 프로그램은 명령을 실행하기 만 간단하지 않다, 더 많은 외부 입력과 출력을 처리 할 필요가있다. 반면에, 실행중인 프로그램은 같은 0으로 나누기, 오버 플로우와 같은 특별한 상황의 다양한 발생합니다 심지어 우리 자신은 예외 모집 프로그램을 만들 수 있습니다

특이한 사실, 프로세스가 함께 하드웨어와 소프트웨어의 조합, 비정상적인 전 생명 : 생성 및 캡처, 하드웨어 수준에서 이루어집니다. 그러나 반 이후
의 삶, 즉 예외를 처리하고, 사실, 소프트웨어에 의해 이루어집니다

컴퓨터는 예외 코드를 할당하고, 가능한 모든 변형을 제공한다. 예외가 발생하는 경우, CPU는 일반적으로 특수한 신호에 의해 검출된다. 라는이 신호, 일반적으로 하나의 이벤트 (이벤트)가 발생했습니다. 예외 코드를 취득, CPU는 예외 처리 프로세스를 트리거합니다. 또한, 예외 처리의 컨텍스트 스위칭에 관한 것이다.

이상 분류

  • 인터럽트
    절반 프로그램 실행은 일반적으로 비동기, 중단되었습니다.
  • 트랩
    프로그래머는 "의도적으로"예외 이니셔티브는 트리거. 때이 함정에 빠진이 위치에 프로그램이 지시. 그런 다음, 해당 예외 핸들러는 그들이 "함정"을 먹이로 처리합니다. 취급 시간이 경우 응용 프로그램은 파일 시스템 생성 과정을 읽어 호출합니다.
  • 실패는
    트랩과 구별하고 그 실패는 일반적으로 의도적으로 트리거되지 않습니다. 0 경우, 추가로 오버 플로우를 추가합니다. 트랩은 중요한 차이가 실패 예외 처리가 완료된 후, 현재 명령어의 처리가 여전히 대신에 다음 명령어로가는, 돌아와,이다가, 고장 및 인터럽트.
  • 중단
    예외 핸들러는 현재 예외를 처리 할 수없는 경우, 프로그램은 현재 실행을 종료 현탁액

실제 메모리와 가상 메모리

추천

출처www.cnblogs.com/yeni/p/11712590.html