Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

운영체제 9주차 정리 - 2 본문

2-1/운영체제

운영체제 9주차 정리 - 2

김브래 2023. 4. 27. 20:35

메모리 관리

공유 메모리


개념

- Shared Memory
- 동일한 메모리공간을 서로 다른 프로세스들이 공유
- 운영체제를 통해 공간이 공유됨

사용(프로그래밍) 절차

1. 공유 메모리 생성
2. 프로세스에 공유 영역을 첨부
3. 공유 영역 접근
4. 첨부된 공유 영역을 해제
5. 공유 메모리 삭제

 

공유 메모리 생성

공유 메모리 생성

 

인자
• key : 시스템에서 식별하기 위한 공유메모리 번호
• size: 공유메모리 크기
• shmflg: 동작 옵션
    – IPC_CREAT : 
        » key에 해당하는 공유메모리가 없으면 생성(단, 생성 시 접근 권한을 부여해야 함)
        » 동일 값이 이미 있으면, 무시됨
    – IPC_EXCL :
        » 공유메모리가 이미 있으면 실패 의미로 -1을 반환

 

반환값:
• 성공: 공유메모리 식별자
• 실패: -1

공유 메모리 접근

공유메모리를 프로세스 메모리에 첨부 (attach)

 

인자:
• shmid : 공유메모리 식별자
• shmaddr : 공유메모리 주소(일반적으로 NULL을 사용)
• shmflg : 동작옵션


반환값
• 성공: 공유메모리 주소 포인터
• 실패: (void *)-1

공유 메모리 해제

공유메모리를 프로세스 메모리로부터 분리(detach)

 

모두 분리되었다고 해서 공유메모리가 사라지지는않음

 

강제 소거를 위한 절차가 필요

 

반환값:
• 성공: 0
• 실패: -1

공유 메모리 수정 및 삭제

생성된 공유메모리에 대하여 속성을 수정

 

공유메모리를 운영체제로부터 삭제

 

인자 :
• shmid : 공유메모리 ID
• cmd : 공유메모리 제어(삭제: IPC_RMID, 설정: IPC_SET)
• buf : 속성값 추출 및 설정(삭제 시 NULL)

 

반환값:
• 성공: 0
• 실패: -1

 

'2-1 > 운영체제' 카테고리의 다른 글

운영체제 10주차 정리 - 1  (0) 2023.05.05
운영체제 9주차 정리 - 3  (0) 2023.04.27
운영체제 9주차 정리 - 1  (0) 2023.04.27
운영체제 중간고사 키워드 정리  (0) 2023.04.19
운영체제 중간고사 정리  (0) 2023.04.15