CS
-
[CS] 세마포어(Semaphore) & 뮤텍스(Mutex)CS 2022. 7. 7. 17:43
세마포어(Semaphore) & 뮤텍스(Mutex) 세마포어 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 임계 구역 : 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터에 접근하는 프로그램 코드 부분. 한 프로세스가 임계 구역을 실행 중일 때에는 다른 프로세스가 접근할 수 없도록 제한해야 함 세마포어 P, V P : 임계 구역에 진입하기 전 수행하는 연산 프로세스 진입 여부를 자원 개수(S)를 통해 결정 V : 임계 구역에서 나올 때 수행 자원 반납 알림, 대기 중인 프로세스를 깨움 S = 1 // 자원 개수 = 접근 가능한 프로세스 수 procedure P(S) { while S = 0 // 이미 다른 프로세스가 데이터에 접근했기 때문에 기다림 do wait..
-
[CS] 로드 밸런싱(Load Balancing) & 로드 밸런서(Load Balancer)CS 2022. 7. 7. 17:42
로드 밸런싱(Load Balancing) & 로드 밸런서(Load Balancer) 로드 밸런싱 분산식 웹 서비스로, 여러 서버에 부하(load)를 균등하게 나누어주는 역할 로드밸런서를 클라이언트와 서버 사이에 두고, 한 대의 서버에 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버로 부하를 분산 서비스 운영 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서를 관리해주면 웹 서버의 부하 해결 가능 Scale-up 서버 자체의 하드웨어의 성능을 향상시킴 Scale-out 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영, 서버를 여러 개로 나눔 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요 로드 밸런서 로드 밸런서의 서버 선택 방식 Round Ro..
-
[CS] 트랜잭션과 데드락CS 2022. 7. 7. 17:41
트랜잭션이란? 쪼갤 수 없는 업무 처리의 최소 단위 하나의 작업을 수행하는데 필요한 데이터베이스의 연산을 모아놓은 것 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 데이터베이스의 상태를 변화시킨다는 것-> 질의어(SQL/SELECT, INSERT, DELETE, UPDATE)를 이용해 데이터베이스에 접근하는 것을 의미 트랜잭션의 특징 원자성(Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되거나 아예 반영되지 않아야 한다. 트랜잭션은 논리적인 작업 단위로, 작업 단위별로 작업이 처리되어야 한다. 만약 트랜잭션 단위로 데이터가 처리되지 않는다면 설계자가 데이터 처리 시스템을 이해하기 힘들고, 오작동의 원리를 찾기 어려워질 것이다. 일관성(Consistency) : 트랜잭션의 작업 처리..