본문 바로가기

분류 전체보기126

[OS] 데드락(Deadlock, 교착 상태) 1. 데드락 두 개 이상의 프로세스나 스레드가 서로 처리할 자원을 이용하지 못해서 다음 작업을 하지 못하는 상태를 나타내며, 상호 간의 작업이 끝나기만을 무한히 대기하는 상태를 일컫는다. 이러한 상태를 데드락(Deadlock)이라고 하며, 교착상태라고도 한다. 2. 데드락 발생 조건 상호 배제(Mutual exclusion) : 자원은 한 번에 한 개의 프로세스만 사용이 가능 점유 대기(Hold and wait) : 하나의 이상의 자원을 점유하며, 다른 프로세스에 할당된 자원을 점유하기 위해서는 대기하는 프로세스가 존재 비선점(No preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 탈취가 불가능(대기) 순환 대기(Circular wait) : 프로세스의 집합에서 각 프로세스가 요.. 2023. 8. 4.
[Network] UDP 1. UDP(User Datagram Protocol) : 인터넷 프로토콜 스위트(IP) 내에서 데이터를 패킷으로 분할하여 전송하기 위해 사용되는 프로토콜이다. UDP는 주로 TCP(Transmission Control Protocol)와 함께 비교된다. 둘 다 인터넷 통신에 많이 사용되지만 서로의 특징과 용도가 다르고, UDP는 특히 속도와 간결성을 추구하는 프로토콜이라고 볼 수 있다. UDP는 TCP와 달리 연결 지향적인 프로토콜이 아니기 때문에, 데이터를 전송하기 전에 연결을 설정하지 않고, 패킷이 도착했는지 여부를 확인하지 않는다. 아래는 UDP가 가지는 특징이다. 높은 전송 속도 : TCP는 패킷을 보낼 때마다 확인응답 과정이 있어, 일정한 지연이 발생할 수 있으나. UDP는 이런 과정을 생략하.. 2023. 7. 31.
[Network] TCP : 3-Way Handshaking / 4-Way Handshaking TCP에서 Client와 Server의 통신을 하기 전에 논리접인 접속을 성사시키기 위해 3-Way Handshaking이라는 방식을 이용하여 상호 통신을 위한 연결을 성사시킨다. 3-Way Handshaking는 클라이언트와 서버 간의 통신을 하기 위한 과정이라고 한다면, 통신을 종료하기 위한 과정 또한 존재하는데, 이를 4-Way Handshaking이라고 한다. 해당 내용을 순서대로 알아볼 것이다. 3-Way Handshaking은 아래의 세 개의 단계로 진행된다. 1. 클라이언트 => 서버 : 연결 요청 (SYN) 클라이언트는 서버에 연결을 요청하기 위해 SYN 패킷을 전송한다. SYN(Synchronize Sequence Numbers)은 클라이언트가 서버와의 연결을 시작하고자 한다는 의미를 가.. 2023. 7. 26.
[Network] TCP/IP 1. TCP/IP의 정의 및 역할 TCP : Transmission Control Protocol TCP는 인터넷 프로토콜 스위트(IP) 내에서 데이터를 신뢰성 있게 전송하기 위해 사용되는 연결 지향적인 프로토콜이다. 3-way Handshaking을 통하여 송신자와 수신자의 상호 연결 설정을 통해 통신을 시작하며, 해당 연결을 이용하여 데이터를 주고 받는다. TCP는 아래와 같은 특징을 가지고 있다. IP 프로토콜 위에서 연결형 서비스를 지원하는 전송계층 프로토콜 전이중(Full Duplex) 방식의 양방향 가상 회선을 제공 패킷의 순서와 확인 번호를 기반으로 신뢰성 있는 데이터 전송을 보장 (손실 시 재요청) OSI 7 계층의 4 계층(전송 계층)에서 속함 IP : Internet Protocol I.. 2023. 7. 24.
[Linux/Ubuntu] 메모리 / 디스크 / 디렉토리 용량 확인 많은 사람들이 AWS에서 Ubuntu를 기반으로 EC2 인스턴스를 많이 생성해서 운용하는 것으로 알고 있는데, 운용함에 있어 알아두면 좋은 명령어들이다. 1. 메모리 확인# 기본 명령어$ free# 가독성을 높인 옵션$ free -h# 저장 바이너리 단위로 출력 # (-b, -k, -m, -g) : 순서대로 바이트, 키비바이트, 메비바이트, 기비바이트# (--tebi, --pebi) : 테비바이트, 페비바이트$ free -b# 용량 단위로 출력# (--kilo, --mega, --giga, --tera, --peta)$ free --kilo 위 명령어를 입력하면 아래 6가지 항목을 출력한다.total : 현재 인스턴스의 총 메모리used : total 메모리에서 항목 중 free 및 buff/cache를.. 2023. 7. 21.
[Redis] Pub/Sub 1. Pub(Publish) / Sub(Subscribe) : Pub / Sub이란, 특정 채널에 메시지를 발행하는 발행자와 해당 채널을 구독하여 메시지를 수신하는 구독자로 구성되어 있다. 발행자가 메시지를 발행하게 되면 해당 채널을 구독하는 모든 사용자들이 메시지를 받을 수 있다는 특징을 가지고 있으며, 그 예시로 카카오톡 단체 채팅방을 들 수 있는데, 한 사람이 메시지를 쓰면 모든 사람이 해당 메시지를 읽을 수 있는 점이다. 발행자는 어떤 사용자가 구독을 한지 모르고 채널에 메시지를 발행하기만 하고, 구독자는 채널에 발행된 메시지를 가져오기만 하기 때문에, 발행자와 구독자가 서로 분리가 되어서 상호 상태에 대하여 알지 못한다는 특징도 가지고 있다. Redis에서 Pub/Sub은 비동기 처리로 메시지를.. 2023. 7. 19.