프로토콜 - 데이터 통신에 있어서 신뢰성 있고 효율적이고 안전하게 정보를 주고받기 위해 정보의 송 / 수신자 측 또는 N/W내에서 사전에 약속된 규약 - 송 / 수신자간 연결, 통신회선 접속, 오류제어, 동기화 등에 이용되고 있음 - 프로토콜은 무엇을, 어떻게, 언제 통신할 것인지 규정함 - 프로토콜 주요 구성 요소 1. 구문(무엇을) : 데이터 구조나 형식을 의미, 데이터가 표현되는 순서 2. 의미(어떻게) : 비트의 영역별 의미, 어떤 동작을 할 것인가 결정 3. 타이밍(언제) : 데이터를 언제 얼마나 빠른 속도로 전송할 것인가 결정 OSI 모델 - N/W 통신을 체계적으로 다루고 있는 ISO 표준에서 1970년대 OSI 모델을 처음 소개함 - OSI 7계층 모델과 TCP/IP 4(5)계층 모델 그림..
- 라이브러리용 랩핑 함수 sysv_semget은 토큰이나 키값, 세마포어 개수, 초기화할 semval 초기값, 접근모드 입력시 세마포어의 IPC 값 반환함 - 만약 세마포어가 생성되지 않으면 생성하고 초기화 - IPC ID가 이미 존재시 errno == EEXIST를 내고 기존의 세마포어 IPC ID를 알려줌(ID를 초기화하지는 않는다.) 세마포어 생성 라이브러리 함수 int sysv_semget(char *tok, key_t sem_fixkey, int n_sem, int sem_value, int user_mode) { intsem_id, i; union semun semun; unsigned short int *arr_semval = NULL; key_tsem_key; /* if tok is no..
- semctl서 IPC_INFO 명령은 세마포어의 시스템 설정을 seminfo 구조체로 읽어옴 seminfo 구조체 struct seminfo{ int semmap; int semmni; int semmns; int semmnu; int semmsl; int semopm; int semume; int semusz; int semvmx; int semaem; } 리눅스의 XSI 세마포어 커널 파라미터 semmap 세마포어 정보를 저장하는 엔트리 맵 개수 semmni 시스템에서 최대로 만들 수 있는 세마포어 최대 세트 개수 semmns 시스템 내에 만들 수 있는 세마포어 최대 개수 semmnu 시스템에서 만들 수 있는 undo구조체 최대 개수 semmsl 한개 세마포어 세트내에 만들 수 있는 세마포어 개수..
semget - 세마포어의 생성이나 기존의 생성된 세마포어의 IPC ID를 얻을 때 사용 - 구조 int semget(key_t key, int nsems, int semflg); - 설명 1. key_t key = 시스템에서 세마포어를 식별하는 키 번호(IPC_KEY) 2. int nsems = 세마포어 집합 내 세마포어 개수, 접근 제한하려는 세마포어 자원의 수 3. int semflg = 동작 옵션(IPC_CREATE, IPC_EXCL)결정 ※ IPC_CREATE : key를 이용하여 새로운 공유메모리 공간 할당 IPC_EXCL : IPC_CREATE와 함께 사용, IPC_CREATE와 함께사용해 만약 공유메모리 공간이 존재하지 않으면 새로 만들어주지만 공유메모리 공간을 사용중이라면 error를 리..
세마포어 - 다익스트라(Dijkstra)가 고안한 상호배제의 개념으로 출발 - 하나의 동기화 및 락 메커니즘의 구현한 도구를 가리키는 의미 - 리눅스에서 제공하는 일반적인 락 메커니즘 종류 카운팅 세마포어 ㅇ 복수개의 자원 카운팅이 가능한 세마포어 ㅇ -3 = 3개의 프로세스 대기 이진 세마포어 ㅇ 1개의 자원 가운팅이 가능한 세마포어 ㅇ 0과 1로 이로만 표현 ㅇ 1 = 임계영역 진입 가능, 0 = 임계영역 진입 불가 뮤텍스 ㅇ독점적인 획득을 가능하게 하는 특수형태의 락 ㅇ 소유권이 있는 프로세스, Rock을 건 프로세스만 해제 가능 스핀락 ㅇ 문맥교환을 막기 위해 사용되는 매우 빠른 특수한 형태의 락 (문맥교환 : CPU가 필요한 다른 프로세스에게 프로세스를 사용할 수 있도록 해주는 상태, 이전 프로..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.