2017-09-13 20 views
0

프로세스가 코드 실행을 위해 다른 프로세스에 속한 원거리 포인터를 호출하면 어떻게됩니까?프로세스가 다른 프로세스에 속한 코드를 호출하면 어떻게됩니까?

32 비트 작동 모드에서 GDT는 거의 사용되지 않으며 세그먼트 화를 완전히 사용할 수 있습니다.

요청한 CS 포인터가 다른 프로세스의 세그먼트를 가리키는 경우 어떻게됩니까?

가끔 허용됩니다.

하지만 일반적으로 그렇지 않습니다.

64 비트 모드에서 세그먼테이션은 중간에 꺼져 있습니다.

모든 세그먼트는 0에서부터 프로세서의 선형 공간의 맨 위에서 실행됩니다.

또한 GDT가 자주 사용되는 것 같습니다. 예를 들어 리눅스는 모든 프로세스의 모든 사용자 코드를 하나의 세그먼트로 던집니다.

시스템 코드와 동일합니다.

따라서 64 비트 모드에서는 다른 프로세스의 코드를 호출하기 위해 먼 포인터가 필요하지 않습니다.

아마 내 질문이 아래로 비등 할 수 있습니다

프로세스가 다른 프로세스의 코드를 호출하려고했을 경우에 어떻게됩니까

?

답변

0

실행중인 OS는 무엇입니까?

일반적으로 OS는 프로세스가 보호 된 메모리에서 실행되기 때문에 프로세스가 소유하지 않은 메모리에 액세스 할 수 없습니다. 가상 메모리 외부의 메모리에 액세스하려고하면 세그먼트 화 오류가 발생합니다. 이러한 메모리에 액세스하려면 커널의 일부가되어야합니다.