CPU는 커널 모드 (완전 권한) 또는 사용자 모드 일 수 있습니다. 커널은 커널 모드가 필요하고 응용 프로그램은 사용자 모드에서 실행해야합니다. 그러나 CPU가 한 번에 두 가지 모드로 어떻게 될 수 있습니까?커널/사용자 모드의 CPU
0
A
답변
1
프로세서는 일반적으로 프로세서가 주어진 시간에 어떤 모드인지 나타내는 모드 플래그를 포함합니다. 그 깃발은 반드시 전체적으로 많이 할 필요는 없습니다. 간단한 구현에서 플래그는 프로세서가 메모리 매핑을 변경할 수 있는지 여부 만 제어 할 수 있습니다. 프로세서는 단순히 사용자 모드로 전환하는 명령 및 커널 모드로 동시에 전환하여 특정 주소로 점프하는 명령을 포함합니다.
커널이 위의 주소에 자신의 코드를 저장하고 문제의 주소가 쓰기 금지되어 있도록 메모리 맵을 전환하면 사용자 코드는 커널에 요청을 어딘가에 저장하여 수행하도록 요청할 수 있습니다 "커널 모드로 전환 및 점프"명령을 호출합니다. 그런 다음 커널 코드는 개인 메모리 영역을 활성화하고 사용자 모드 코드에 의해 저장된 요청을 검사하고 요청에 따라 작동하고 개인 메모리 영역을 비활성화하며 사용자 모드로 다시 전환하고 실행중인 사용자 모드 코드로 돌아갈 수 있습니다.
관련 문제
- 1. 로컬 모드의 executor 수와 클라이언트와 클러스터 모드의 차이
- 2. 가로 모드의 tabbar 컨트롤러
- 3. 개발 모드의 암호 보호
- 4. 가로 모드의 페이징보기 컨트롤러
- 5. RavenDB 클러스터 모드의 용도
- 6. 스텔스 모드의 보관함
- 7. 릴리스 모드의 테스트 앱
- 8. 가로 모드의 Center VideoView
- 9. iphone 가로 모드의 openUrl
- 10. Landscape 모드의 UIAlertView
- 11. 차단 모드의 원리는 무엇입니까?
- 12. 비행기 모드의 활성 블루투스
- 13. 데몬 모드의 셀러리
- 14. SQLCMD 모드의 ServerConnection.ExecuteNonQuery
- 15. 가로 모드의 AutoCompleteTextView 힌트
- 16. 가로 모드의 배경 변경
- 17. 원격 모드의 DeLeaker?
- 18. 최대 절전 모드의 예외
- 19. Windows 호환성 모드의 함점
- 20. 숫자 모드의 문자 키보드
- 21. 최대 절전 모드의 상속
- 22. Quirks 모드의 일반적인 문제
- 23. 대기열에 삽입하는 모드의 패턴
- 24. 최대 절전 모드의 registerHibernateType
- 25. 초상화 모드의 Three20 - TTSplitViewController
- 26. 무제한 모드의 Mod Rewrite
- 27. 순수 DOS 모드의 WriteFile?
- 28. 개발 모드의 데이터베이스 폴더
- 29. 가로 모드의 이미지 뷰
- 30. 개인 브라우징 모드의 OpenURL
supercat의 답변 외에도 CPU는 한 번에 두 가지 모드가 아닙니다. 사용자 모드 코드를 실행 중이거나 동일한 논리 코어에서 커널 모드 코드를 실행 중입니다. – tangrs
@tangrs : 주어진 실행 컨텍스트는 하나의 모드에만 있습니다. CPU가 핸들 실행 컨텍스트를 동시에 처리 할 수있는 경우 (예 : 다중 코어 사용 또는 단일 코어에서의 하이퍼 스레딩) 논리적으로 분리 된 CPU 부분은 부품이 다른 모드에있는 동안 한 모드에있을 수 있습니다. – supercat
supercat & tangrs, 주제를 명확히 해 주셔서 감사합니다. – Mark