이 영역을 누르면 첫 페이지로 이동
Arc 블로그의 첫 페이지로 이동

Arc

페이지 맨 위로 올라가기

Arc

programming

  • Arc
[Unix Programming] Message Passing

[Unix Programming] Message Passing

2021.12.04
Message Passing은 IPC 기법 중 하나로 memory protection을 위해 커널의 도움을 받아 message를 전달한다. 여기서 message는 문자나 byte의 열이라고 생각하면 된다. Message Passing의 방식은 한 process가 msgsnd를 하게되면 사용자의 주소 공간으로부터 message queue에 message가 저장되고, 다른 process가 msgrcv를 하게되면 message queue에 있는 message를 사용자의 주소 공간으로 가져오게된다. 앞에서 본 것과 같이 Message Passing은 커널에 message queue를 만들어서 통신을 한다. message queue는 msgget 함수를 통해 만들어지며 message의 임시 버퍼로 쓰인다. 그럼 ..
[Unix Programming] IPC 기본 개념

[Unix Programming] IPC 기본 개념

2021.12.03
IPC 기법에는 여러가지의 종류가 있는데 우선 다음의 기법에 대해 알아보도록 하자. - message passing - shared memory - pipe 우선 위 기법에 대해 알아보기 전, facility key와 get 연산에 대해 먼저 알아야 한다. IPC에는 facility key라는 것이 있는데 이것은 IPC 객체를 유일하게 식별하기 위해 사용되는 수이다. 소켓 통신을 할 때 IP와 Port 번호로 소켓을 유일하게 식별하는 것처럼, IPC 통신에서는 facility key를 사용하여 객체를 식별하는 것이다. facility key 값을 integer 형식의 숫자로 부여해도 되지만 숫자는 중복될 가능성이 높기 때문에 이 위험을 방지하기 위해 ftok이라는 함수를 쓴다. ftok은 파일 이름을 키..
[Unix Programming] Record Locking

[Unix Programming] Record Locking

2021.12.02
Record Locking은 두 명 이상의 파일 사용자가 동시에 정보를 업데이트하려고 할 때 발생할 수 있는 오류, 즉 경쟁상태를 방지하기 위해 파일 또는 파일의 일부를 잠그는 것이다. Record Locking read lock - 여러 프로세스들이 같은 구역 동시에 설정 가능(write lock 적용 불가) write lock - 다른 프로세스들의 읽기나 쓰기 록을 불허 record lock을 걸기 위해서 fcntl이란 함수를 사용한다. #include int fcntl(int filedes, int cmd, struct flock *ldata); 여기서 filedes는 file descriptor를 의미하고, cmd는 F_GETLK, F_SETLK, F_SETLKW 을 넣어 설정할 수 있다. str..
  • 최신
    • 1
  • 다음

정보

Arc 블로그의 첫 페이지로 이동

Arc

  • Arc의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (106)
    • Language (28)
      • C++ (0)
      • C# (0)
      • Java (28)
    • Algorithm (47)
      • Algorithm (15)
      • Data Structure (6)
      • PS (26)
    • Computer Science (22)
      • Design Pattern (1)
      • Network (14)
      • OS (7)
    • Game (0)
      • Unity (0)
    • Backend (3)
      • Spring (1)
      • JPA (2)
    • DB (0)
      • SQL (0)
    • DevOps (2)
      • AWS (0)
      • Docker (2)
      • Jenkins (0)
      • Nginx (0)
    • Software Engineering (4)
      • OOP (4)
    • AI (0)
      • Machine Learning (0)
    • Others (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • network
  • graph
  • 네트워크
  • java
  • 그래프
  • 알고리즘
  • algorithm
  • 자바

나의 외부 링크

정보

SeoArc의 Arc

Arc

SeoArc

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © SeoArc. Designed by Fraccino.

티스토리툴바