Linux의 메모리 기본 요소는 무엇입니까?

Linux의 메모리 기본 요소는 무엇입니까?

내가 읽고있다도커 작동 중이런 문장도 있습니다.

Docker는 기본적으로 각 컨테이너에 대해 고유한 IPC 네임스페이스를 생성합니다. Linux IPC 네임스페이스는 명명된 공유 메모리 블록, 세마포어 및 메시지 대기열과 같은 공유 메모리 기본 요소를 분할합니다.

이러한 예에도 불구하고 나는 여전히 그 뒤에 있는 개념이 무엇인지 이해하지 못합니다.메모리 프리미티브, 이 용어를 설명해 주실 수 있나요?

답변1

사람 네임스페이스에 관한 섹션이 있습니다.IPC 네임스페이스.

IPC 네임스페이스는 특정 IPC 리소스, 즉 System V IPC 개체를 격리합니다(참조:슈퍼멤버(7)) 및 (Linux 2.6.30부터) POSIX 메시지 대기열(참조:mq_개요(7)). 이러한 IPC 메커니즘의 일반적인 특징은 IPC 객체가 파일 시스템 경로 이름 이외의 메커니즘으로 식별된다는 것입니다.

man svipc세 가지 유형의 객체가 있다고 가정해 보겠습니다. 공유 메모리 객체, 메시지 큐, 세마포어 세트(세마포어는 세마포어의 보다 일반적인 경우입니다)뮤텍스). 각 개체에는 파일 시스템 경로가 아닌 숫자 ID가 있습니다.

POSIX 메시지 대기열은 파일 이름과 유사한 이름으로 식별됩니다. (Linux 구현에서는 를 통해 액세스되는 가상 파일을 사용합니다 /dev/mqueue/).

System V IPC는 더 이상 사용되지 않으며 사용하기 어려운 것으로 간주되어야 합니다.

  • System V 공유 메모리 개체는 POSIX SHM으로 대체될 수 있습니다.남자 shm_개요.
  • 시스템 V 세마포어는 다음을 사용하여 대체될 수 있습니다.POSIX 공유 메모리의 POSIX 뮤텍스.
  • 짐작하셨겠지만, System V 메시지 대기열은 POSIX 메시지 대기열로 대체될 수 있습니다.

Linux IPC 네임스페이스는 다음을 수행합니다.아니요POSIX SHM을 분리합니다. Linux는 가상 파일 시스템 /dev/shm/을 통해 액세스 개체를 구현합니다 tmpfs. POSIX SHM을 분리하려면 마운트 네임스페이스를 사용하여 마운트된 파일 시스템을 변경할 수 있습니다 /dev/shm/.

답변2

기계 문제는 프로세스 제어, 신호 관리, 파이프 및 공유 메모리에 기본 요소를 사용합니다. Unix의 기본 요소는 다음과 같습니다.

 • Process Control
     fork:
     exec:
 • Signal Management
     sigset:
     kill:
 • Pipes and Files
     pipe:
     mknod:
     unlink:
     read/write:
 • Shared Memory
     shmget:
     shmat:
 • Semaphores (System V style)
     semget:
     semop:
 • ipcs: This command reports on the status of inter-process communication facilities. Allows you to monitor the correct use and operation of the interprocess communication primitives in your program.

• ipcrm: Remove a message queue, semaphore set, or shared memory ID. This comes in handy if your program does not clean up things correctly.

• kill: Terminate or signal a process. Comes in handy to clean up your processes.

• ps: Report on process status. This at least lists all your processes.

인용하다

관련 정보