inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bài giảng sách khủng long hệ điều hành

shared memory 관련해서 질문 드립니다.

Đã giải quyết

508

sete

18 câu hỏi đã được viết

0

안녕하세요 교수님,

 

챕터 3에서 POSIX shared memory는 메모리 맵 파일을 이용한 방법이라고 하셨는데,

그 메모리 파일이 파일 시스템 상에 존재해야 하는 이유가 무엇인가요?

그냥 RAM에 바로 만들어서 쓸 수는 없는건가요?

 

그리고 퀴즈 #3의 2번에서 "3) shared memory는 memory-mapped file로만 만들 수 있다"가 오답인 걸로 나와있는데

그렇다면 shm_open + mmap이 아닌 다른 방법으로도 만들 수 있는 건가요?

 

감사합니다.

동시성 운영체제

Câu trả lời 1

1

Min Kang

안녕하세요 수강중인 수강생입니다.

교수님이 아니라 제 답변이 정확하진 않겠지만 참고하시면 될 것 같습니다.

 

챕터 3에서 POSIX shared memory는 메모리 맵 파일을 이용한 방법이라고 하셨는데,

그 메모리 파일이 파일 시스템 상에 존재해야 하는 이유가 무엇인가요?

=> 강의에도 보면 메모리 맵 파일이 파일 시스템 상에 존재한단 말이 없는거 같아요

파일 시스템에 파일이 생기듯이 메모리에 파일을 만든다 정도로 설명이 되어있습니다.

( 메모리에 있는 파일이니 엄청 빠르겠다고 설명을 하시면서 )

 

그리고 퀴즈 #3의 2번에서 "3) shared memory는 memory-mapped file로만 만들 수 있다"가 오답인 걸로 나와있는데

그렇다면 shm_open + mmap이 아닌 다른 방법으로도 만들 수 있는 건가요?

=> shmget, 과 shmmat 로 커널에 공유 메모리 공간을 요청하고, 이 메모리를 attach, dettach 하는 방식도 있습니다.

memory-mapped file 은 memory mapped file 을 open 하고 mmap 을 했다면,

위에 방식은 커널이 큰 메모리 공간을 할당하도록 요청하고 이걸 자신의 process 에서 접근이 가능하도록 attach 하는 방식 입니다.

 shmget, 과 shmmat 를 검색해보시면 될거 같습니다.

0

sete

안녕하세요,
친절한 답변 감사드립니다.
제가 조금 더 알아본 바로는 shm_open으로 생성되는 POSIX shared memory object는
/dev/shm에 마운트된 tmpfs라고 하는, ramdisk와 유사한 파일 시스템에 생성된다고 합니다.
그래서, 답변주신 대로 그 파일은 디스크가 아닌 메모리에 상주하면서 메모리 매핑이 이루어지는 듯 합니다.

혹여나 비슷한 질문을 가진 분들이 계실까봐 설명을 적었습니다.
다시 한번 답변 감사드립니다.

0

Min Kang

아주 상세하게 알아보셧군요 ^^ 덕분에 저도 공부하고 가네요

감사합니다.

퀴즈 7번의 답에 대한 질문입니다.

0

541

1

이해하고 있는것이 맞는건지 궁금합니다 ㅠㅠ

0

802

1

타우시간

0

533

1

퀴즈1 1번 질문합니다 !

1

593

1

Page는 Text Data이외에 다른 메모리도 포함하나요?

1

369

0

IPC shared memory 코드

0

508

1

[간단한 질문 ]banker's algorithm 을 linux 에서 실제로 프로세스 관리할때 쓰이나요?

0

393

0

user mode i/o 관련 질문

0

273

1

교수님 fork()함수에 대해 질문이 있습니다.

0

878

2

process 와 thread

0

360

1

교수님 Docker 로 실습해도 괜찮을까요?

1

856

1

Mac OS에서 Docker 이용하여 Ubuntu 20.04 환경설정 방법 공유

22

3313

2

moniter, condition variable, synchronized에 대해서 궁금한점이 있습니다..

0

660

1

왜 무료인지 이해를 못 하겠네요..

3

420

1

7.1 Classic Problems of Synchronization 질문이 있습니다

0

292

1

공룡책 8판과 10판중

0

589

1

6.3 peterson's solution 질문이 있습니다

0

217

1

08-01 연습문제 8번 질문있습니다!

0

275

0

06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류

0

259

1

안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다

1

347

1

2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류

0

337

1

아래 질문 관련하여 다시 문의드립니다

0

192

1

Thread & Concurrency (Part 2) 질문드립니다

0

181

1

vmware에 ubuntu 설치관련 질문드립니다

0

209

1