2011-10-25 2 views
0

수퍼맨 모드 대 사용자 모드별도의 "수퍼바이저"및 "사용자"모드의 필요성은 무엇입니까?

왜 이러한 구별이 필요합니까?

관리자 모드는 OS 지원을위한 것으로 알고 있으며 사용자 모드는 응용 프로그램 지원을위한 것임을 알고 있습니다. OS 운영이 슈퍼 모드에서만 발생하는 동안 사용자의 작업이 사용자 모드에서만 발생하도록 보장하기 위해 이들이 사용된다는 사실을 모호하게 이해합니다. 나는 내가 누락 될 수있는 격차를 메꾸기 위해 좀 더 깊이있는 토론을 찾고있다.

감사합니다.

답변

1

감독 모드는 스택 포인터의 두 번째 복사본을 제공합니다. 사용자 스택과 수퍼바이저 스택은 별도의 메모리 영역에 있습니다. 현재 작업에 대한 스택 포인터는 감독 모드 또는 사용자 모드를 가리 킵니다.

USP - A7 : 사용자 스택 포인터

SSP - A7 : 감독 스택 포인터

각 모드의 코드 자체에 포함 된 스레드이기 때문에 각각의 모드는 스택 포인터를 가지고 - 현재 최고 수준의 작업에 대한 하나 다른 하나는 OS 용입니다. 둘 다 동일한 스택을 사용하면 운영 체제가 사용자 응용 프로그램에 할당 된 스택을 굴릴 수 있습니다. 다른 말로. 운영 체제는 주어진 운영 체제 기능을 지원하기 위해 스택의 한계가 무엇인지 알지 못할 수 있습니다.

두 개의 스택이있는 것이 훨씬 안전합니다. 시스템에 하나의 stakc 만 있으면 운영 체제는 스택 포인터 레지스터를 자체적으로 조정하여 다른 메모리 영역이 적절하게 사용되도록해야합니다. 운영 체제 용 메모리 및 작업용 메모리.

3

사용자 모드는 프로그램을 서로 보호하기 위해 임의의 작업 (예 : 임의의 메모리에 쓰기)을 금지합니다. 감독자 모드는 운영 체제가 입출력, 시작 프로그램 등과 같은 것들을 수행해야하기 때문에 그러한 조작을 허용합니다.

예를 들어, 메모리 보호를 살펴보십시오. 프로그램이 서로의 메모리에 쓰지 못하게합니다. 그러나 운영 체제가 작동하려면 각 프로그램에 대한 메모리 페이지 매핑을 설정할 수 있어야합니다. 어떤 프로그램에서 설정을 할 수 있다면 어떨까요? 보호 장치가 없으므로 각 프로그램이 보호 기능을 무력화시킬 수 있습니다. 이것이 수퍼 유저 모드가 그러한 종류의 작업을 수행하는 데 필요한 이유입니다. 운영 체제에서만 수행 할 수 있고 사용자 프로그램에서는 수행 할 수 없습니다.

Btw 감독자 모드는 "사용자 작업"을 금지하지 않으며 모든 것을 허용합니다.

+0

감사합니다. 도움이되었습니다. – BigBug

관련 문제