| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- kni
- redis
- SR-IOV
- Subscribe
- HugePage
- Publish
- Kernel Bypass
- nic
- DPDK EAL
- redisGetReply
- Mempool
- Pubsub
- mbuf
- dpdk
- Descriptor Ring
- rte_eth_dev
- DPDK 초기화
- pmd
- DPDK Architecture
- lcore
- polling
- redisReply
- hiredis
- Today
- Total
목록Server (25)
우당탕탕 개발일지
앞서 구성했던 채팅 프로그램에서 채팅을 Redis의 Pub/Sub 기능을 이용하여 주고받을 수 있도록 구성하였다. [K8S] C 기반 HTTP 통신 구현 및 Kubernetes 배포GitHub - TirTir/ZamTok: C#을 활용한 채팅 프로그램C#을 활용한 채팅 프로그램. Contribute to TirTir/ZamTok development by creating an account on GitHub.github.com C언어로 HTTP 통신을 이용해 클라이언트와 서버간 간단한uj0791.tistory.com Redis는 데이터를 Key-Value 형태로 메모리에 저장하고, 애플리케이션이 TCP 연결을 통해 명령을 보내는 서버이다.C 서버 │ │ TCP 연결: redis-service:63..
GitHub - TirTir/ZamTok: C#을 활용한 채팅 프로그램C#을 활용한 채팅 프로그램. Contribute to TirTir/ZamTok development by creating an account on GitHub.github.com C언어로 HTTP 통신을 이용해 클라이언트와 서버간 간단한 통신을 구현했다. 중심적으로 봐야할 부분은 다음과 같다. 소켓 생성 먼저 클라이언트와 서버가 통신할 수 있도록 IPv4 기반의 TCP 소켓을 사용하였다.소켓에서 IPv4 주소를 표현할 때는 일반적으로 다음과 같은 struct sockaddr_in 구조체를 사용한다.struct sockaddr_in { sa_family_t sin_family; // AF_INET in_port_t ..
FTP (File Transfer Protocol) 란? 일반적으로 특정 서버에 접속해서 파일을 가져오거나, 반대로 내 로컬 장비의 파일을 서버로 전송할 때 FTP를 많이 사용한다. FTP란, 서버와 클라이언트 간 파일을 업로드하거나 다운로드할 때 사용하는 파일 전송 프로토콜이다. 예를 들어, 10.10.1.1 서버에서 10.10.3.101 서버에 접속하여 해당 서버 안에 있는 파일을 가져온다고 가정하면, 보통 다음과 같은 정보가 필요하다.접속 대상 서버 IP사용자 계정비밀번호접근 가능한 디렉토리 경로파일명ftp 10.10.3.101Name: userPassword: qwer 위 명령어를 입력하면 FTP 서버에 접속을 시도하며, 서버에서 사용자 인증을 요구하면 계정 정보를 입력한다.인증이 정상적으로 완..
[C언어] IPC(1) (feat. 공유 메모리)1. IPC 프로세스는 완전히 독립된 실행 객체로 다른 프로세스에 문제가 발생하여도 영향을 받지 않는다는 장점이 있다. 그러나 독립되어 있는 만큼 서로간에 통신이 어렵다는 문제가 있다. 이를uj0791.tistory.com 1. Pipe파이프는 두 프로세스 사이에서 한 방향으로 통신할 수 있도록 인터페이스를 제공한다.파이프는 이름 없는 파이프(익명 파이프, annoymous pipe)와 이름 있는 파이프(named pipe)로 구분된다. 특별한 수식어 없이 그냥 파이프라고 하면 일반적으로 이름 없는 파이프를 의미한다. 이름 없는 파이프는 부모-자식 프로세스 간에 통신할 수 있게 해준다. ✅ pipe()#include int pipe(int fildes[2..
1. IPC 프로세스는 완전히 독립된 실행 객체로 다른 프로세스에 문제가 발생하여도 영향을 받지 않는다는 장점이 있다. 그러나 독립되어 있는 만큼 서로간에 통신이 어렵다는 문제가 있다. 이를 위해서 커널 영역에서는 IPC(Inter-Process Communication)라는 내부 프로세스간 통신을 제공하여 IPC 설비를 이용해서 프로세스 간 통신을 할 수 있다. 정보 공유여러 사용자가 동일한 정보에 엑세스할 필요가 있을 수 있다.가속화특정 작업(task)을 여러 개의 서브 작업(sub-task)로 쪼개어 프로세스의 병렬성을 키움으로써 처리 속도를 높일 수 있다.모듈화특정한 시스템 기능을 별도의 프로세스(스레드)로 구분하여 모듈화된 시스템을 구성할 수 있다.편의성다수의 사용자가 동시에 여러가지 작업을 수..
시그널 운영체제는 실행하고 있는 프로그램에 대해 예외적인 상황을 보고하기 위해서 시그널(signal)을 사용한다. 시그널은 비동기적으로 발생하며, 다음과 같은 3가지 경우에 발생한다.0으로 나누기처럼 프로그램에서 예외적인 상황이 일어나는 경우프로세스가 kill 함수와 같이 시그널을 보낼 수 있는 함수를 사용해 다른 프로세스에 시그널을 보내는 경우사용자가 Ctrl+C와 같은 인터럽트 키를 입력한 경우 시그널을 받은 프로세스가 이를 처리하는 방법은 다음과 같이 4가지이다.프로세스가 받은 시그널에 따라 기본 동작을 수행한다.대부분 시그널의 기본 동작은 프로세스를 종료하는 것이다.이외에 시그널을 무시하거나 프로세스의 수행 일시 중지/재시작 등을 기본 동작으로 수행한다.프로세스가 받은 시그널을 무시한다.프로세스가..
리눅스 가상 메모리 구조 가상 메모리는 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기의 한계가 있어, 디스크(ROM)의 일부를 확장된 RAM처럼 사용하기 위한 개념이다.실제 물리 메모리가 가지는 공간보다 더 큰 공간으로 확장할 수 있다.ram(주기억장치)이나 디스크, 레지스터 등의 공간을 연속적으로 가상 공간에 매핑할 수 있다.메모리 관리에 효율적이다. 가상 메모리의 단위는 페이지 단위로 관리되고, 물리 메모리는 프레임 단위로 관리된다. 페이지와 프레임은 동일한 사이즈를 가진다. MMU (Memory Management Unit)MMU(Memory Management Unit)는 가상 메모리를 사용하기 위한 하드웨어 장치로, 가상 주소(프로세스가 참조하는 주소)를 물리 주소(실제 메모리..
[C언어] 동기화 (feat. Mutex API 사용해 은행 잔고 프로그램 구현하기)1. Race Condition (경쟁 상태) 둘 이상의 실행 주체가 동시에 하나의 공유 자원에 접근하려고 경쟁할 때 발생하는 상태이다. 프로세스마다 실행 속도가 달라서 예상치 못한 결과를 초래할 수 있다.uj0791.tistory.com Rwlock API ✅ 읽기-쓰기 락 초기화 방법 1. 정적으로 할당된 읽기-쓰기 락 초기화 → 오류 검사가 수행되지 않는다.pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER; 2. 동적으로 할당된 읽기-쓰기 락 초기화pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_r..