CS 8

L4, L7 Load Balancer

L4, L4 계층 L7: 애플리케이션 계층 최종 사용자에게 가장 가까운 L7은 사용자 데이터와 직접 상호 작용하는 유일한 계층입니다. 이메일 클라이언트, 웹 브라우저 및 기타 소프트웨어 애플리케이션은 모두 레이어 7에 의존하여 통신을 시작합니다. L4: 전송 계층 L4는 장치, 최종 시스템 및 호스트 간의 데이터 전송 및 종단 간 통신을 처리합니다. 여기에는 데이터를 L3으로 보내기 전에 세션 계층에서 데이터를 분할하고 수신단에서 분할된 데이터를 세션 계층을 위한 소비 가능한 데이터로 재조립하는 작업이 포함, 오류 제어 및 흐름 제어를 처리 L4 와 L7 Load balancer (스위칭 장비) 로드밸런서는 트래픽을 받아서 여러 대의 서버에 분산시키는 하드웨어 또는 소프트웨어 부하 분산에는 L4 Load..

CS 2022.06.12

GSLB(Global Server Load Balancing)

정의 글로벌하게 분산된 서버간의 로드 밸런싱 작업으로 지리적으로 분산된 애플리케이션 서버 간에 트래픽을 효율적으로 분산 즉 지리적으로 분산된 위치에 있는 서버 간 부하 분산 사용하는 이유? 성능 : 사용자 요청을 가장 가까운 서버로 전달하여 네트워크 지연 및 네트워크 문제를 최소화 맞춤형 콘텐츠 : GSLB를 사용하면 기업이 해당 지리적 위치 및 언어의 관련성을 위해 맞춤화된 로컬 서버에서 콘텐츠를 호스팅 재해복구(Disater Recovery)용도로도 사용 (ex 지진으로 인한 서울서버 장애시 부산서버로 연결) 유지 관리 : 클라이언트 요청을 다른 서버로 간단히 리디렉션할 수 있으므로 데이터 센터 마이그레이션 및 업그레이드를 중단 없이 실행 기존 DNS는 사용자에게 최적의 경로를 안내하지 못함, 기반 ..

CS 2022.06.11

트랜젝션(Transaction)

트랜잭션 트랜젝션은 데이터베이스 내에서 수행되는 더 이상 쪼갤 수 없는 최소 작업의 단위로, 데이터베이스의 무결성을 유지하며 상태를 변화시키는 기능을 수행합니다. 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 영구성(Durability) 를 보장합니다. 이 성질의 앞 글자를 따서 ACID 라고 부릅니다. *데이터베이스는 COMMIT 과 ROLLBACK 명령어를 통해 데이터의 무결성을 보장합니다. Commit : 모든 작업이 성공해서 데이터베이스에 정상 반영하는 것 Rollback : 작업 중 하나라도 실패해서 변경 사항을 취소하고, 이전의 상태로 되돌리는 것 트랜잭션의 목적 은행 시스템에서 A 가 B에게 출금을해서 입금하는 상황이 있습니다. 송금하려는..

CS 2022.05.03

가상메모리(virtual memory)

가상메모리(virtual memory) => 램과 하드디스크를 하나의 추상화된 메모리 영역으로 제공한다. 가상메모리는 왜 태어났는가? 예전 도스시절 하나의 프로그램만 실행시키던 그 때 프로그램이 메모리를 사용하다가 프로그램이 죽는경우 이 메모리를 회수시킬 방법이 없어 결국 OS를 재시작하게 되는 문제로부터 시작되었다고 한다.. 즉, 프로세스가 운영체제(시스템) 전체에 문제가 나는것을 막기 위해 프로세스의가 사용하는 공간을 가상세계로 범위를 제한시켜 애플리케이션이 죽어도 OS는 살아남는다. (시스템 안정성을 위해) 가상메모리 사용하면 가장 좋은점 OS가 프로그램에게 가상메모리 영역을 할당하기 때문에 프로그램이 뻗어도 OS가 해당 프로그램의 주소위치를 알기 때문에 자원을 회수할 수 있어 메모리의 낭비가 없고..

CS 2022.04.30

교착상태(DeadLock)

교착상태(DeadLock) 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있는 상태, 결국 아무것도 완료되지 못하는 상태를 말합니다. 같은 말로 둘 이상의 스레드가 각기 다른 스레드가 점유하고 있는 자원을 서로 기다릴 때, 무한 대기에 빠지는 상태라고도 합니다. 교착상태가 발생하는 조건은 상호 배제, 점유 대기, 비선점, 순환 대기 4가지 조건이 동시에 성립할 때 발생할 수 있습니다. 이런 교착상태 문제를 해결하는 방법으로는 무시, 예방, 회피, 탐지 회복 4가지 방법이 있습니다. 발생조건 상호 배제 한 자원은 동시에 쓸 수 없는 상황, 하나의 스레드만이 자원을 점유 할 수 있다. 점유 대기 한 스레드가 자원을 붙잡은 상태에서 다른 스레드가 보유한 자원을 기다리고 있는 상태 비선점 다른 ..

CS 2022.04.22

스레드와 멀티스레드 (Thread & Multi Thread)

Thread 스레드는 한 프로그램 or 프로세스 내에서 실행되는 동작(기능, 흐름)의 단위 입니다. 한 프로세스 내의 스레드는 Stack Memory를 제외한 나머지 Memory 영역을 공유할 수 있습니다. Multi Thread 멀티 스레드란 하나의 프로세스내에서 두 개의 이상의 스레드를 가지게 됩니다. 한 프로세스가 동시에 여러작업(병렬로 처리)을 하기 위해 멀티 스레드를 사용하며, 각각의 스레드는 독립적으로 기능을 수행하기 위해 독립적인 Stack Memory와 PC Register 가지며 나머지 Code, Data, Heap 영역을 공유하여 사용합니다. Stack Memory 스레드가 함수를 호출하기 위해서는 매개변수, 리턴값, 지역변수 저장 등을 위한 독립적인 Stack 영역이 필요합니다. 결과..

CS 2022.04.18

멀티 프로세스(Multi process), Context 와 Context Switching

Multi Process 멀티 프로세스는 말 그대로 2개 이상의 프로세스가 동시에 실행되는 것을 의미합니다. 여기서 동시에 라는 말이 중요합니다. 여기서 동시에라는 것은 동시성(Concurrency) 와 병렬성(Parallelism) 을 의미합니다. 동시성(Concurrency) : Single Core에서 여러 프로세스를 빠르게 번갈아 가면서 연산하는 시분할 시스템(Time Sharing System) 으로 실행됩니다. (동시에 실행되는 것 같아 보인다.) 병렬성(Parallelism) : Multi Core에서 실제로 동시에 여러 프로세스를 실행합니다. *시분할 시스템 ? 시분할 시스템은 하나의 CPU에서는 여러 개의 작업을 동시에 수행이 불가하여, 아주 짧은 시간 간격을 두고 여러 개의 프로세스를 ..

CS 2022.04.14

프로세스 메모리 구조

프로세스란? 프로세스란 실행중인 프로그램입니다. 프로그램이 메모리에 적재되어 CPU를 할당받아 실행하는 것 입니다. 프로세스 메모리 구조 프로세스에 할당되는 메모리 공간은 Code, Data, Stack, Heap 4개의 영역으로 이루어져있습니다. 각 프로세스마다 독립적으로 메모리 공간을 할당 받습니다. Code 영역 (Text) 사용자가 실행한 프로그램의 코드가 저장되는 메모리 영역 Data 영역 (Bss, GVAR) 전역변수 또는 static 변수가 저장되는 메모리 영역 Heap 영역 프로그래머가 동적으로 공간을 할당하거나 해제하는 메모리 영역 , runtime에 메모리 영역의 크기가 결정된다. Stack 영역 함수 호출시 생성되는 데이터 (지역변수,매개변수, 리턴값)가 저장되는 임시 메모리 영역

CS 2022.04.13