프로그래밍 (93) 썸네일형 리스트형 [KOCW] 반효경 운영체제 강의 정리 - 6. Process Synchronization 3 Bounded-Buffer Problem(Producer-Consumer Problem) Shared Data Buffer 자체 및 Buffer 조작 변수(empty / full beffer의 시작 위치) Synchronization variables mutual exclusion Need binary semaphore(shared data의 mutual exclusion을 위해) resouce count Need integer semaphore(남은 full / empty buffer의 수 표시) 해결 Readers-Writers Problem 한 process가 DB에 write 중 일 때 다른 process가 접근하면 안됨 read는 동시에 여럿이 해도 됨 solution Writer가 DB에 접근.. [KOCW] 반효경 운영체제 강의 정리 - 6. Process Synchronization 2 Semaphores(세마포어) Critical Section으로 들어가기 위한 작업을 추상화 하는 것 Semaphores S 정수형 변수 아래의 두 가지 atomic 연산에 의해서만 접근 가능 Critical Section of n Processes Synchronization variable semaphore mutex; /* intially 1 : 1개가 CS에 들어갈 수 있다. */ Process pi do { P(mutex); /* 만약 가능하다면 접근하고 안된다면 기다린다 */ critical section V(mutex); /* 세마포어의 값을 증가해준다.*/ remainder section } while(1); busy-wait는 효율적이지 못함(=Spin Lock) Block & Wakeu.. [KOCW] 반효경 운영체제 강의 정리 - 6. Process Synchronization 1 데이터의 접근 Race Condition OS에서의 race condition (1/3) OS에서 race condition이 발생하는 경우 kernel 수행 중 인터럽트 발생 시 Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data OS에서의 race condition (2/3) OS에서의 race condition (3/3) multiprocessor Process Syynchronization 문제 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(Inconsistency)를 발생시킬 수 있다... [KOCW] 반효경 운영체제 강의 정리 - 5. CPU Scheduling 2 Multilevel Queue Ready Queue를 여러 개로 분할 foreground(interactive) background(batch - no human interaction) 각 큐는 독립적인 스케줄링 알고리즘을 가짐 foreground - RR background - FCFS 큐에 대한 스케줄링이 필요 Fixed Priority Scheduling 모든 foreground 작업이 끝난 뒤 background 작업을 한다. 기아 현상이 생길 수 있다. Time Slice 각 큐에 CPU time을 적절한 비율로 할당 예를들어 80%는 foreground queue에서 RR 작업을 하고 20%는 background에서 FCFS 작업을 한다. Multilevel Feedback Queue 프로세스.. [KOCW] 반효경 운영체제 강의 정리 - 5. CPU Scheduling 1 CPU and I/O Bursts in Program Execution CPU만 연속적으로 쓰는 단계 : CPU burst I/O를 실행하는 단계 : I/O burst CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다 Interactive job에게 적절한 response 제공 요망 CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 I/O-bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job (many short CPU bursts) CPU-bound process 계산 위주의 job (few very long CPU.. AWS SAA - Auto Scaling Group (ASG) 현실에서는 웹사이트와 애플리케이션이 변경되기 마련이며 받는 부하도 다르다. 사용자가 많아지고 유명해질수록 더 많은 부하가 걸리게 된다. 클라우드 내에서는 빠르게 서버를 생성 및 제거할 수 있다. Auto Scaling Group(ASG) Scale out (EC2 인스턴스 추가) 부하가 증가하면 거기 맞춰서 EC2 인스턴스를 추가한다. Scale in (EC2 인스턴스 제거) 부하가 감소하면 거기 맞춰서 EC2 인스턴스를 제거한다. ASG는 EC2 인스턴스가 일정량만큼만 증가하거나 감소하도록 할 수 있다.(최소, 최대 설정 가능) 로드 밸런서에 자동으로 새 인스턴스를 등록해준다. Auto Scaling Group 속성 시작 구성 AMI + Instance Type EC2 User Data EBS Volu.. AWS SAA - Elastic Load Balancer(ELB) 로드밸런싱 로드 밸런서는 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 또는 서버들(EC2 인스턴스)로 전달하는 역할 사용하는 이유 부하를 다수의 다운스트림 인스턴스로 분산 애플리케이션에 단일 액세스 지점(DNS)을 노출 다운스트림 인스턴스의 장애를 원할히 처리 상태 확인 매커니즘으로 어떤 인스턴스로 트래픽을 보낼 수 없는지 확인 SSL 종료(HTTPS)를 할 수 있다. 크키로 고정도를 강화할 수 있다. 영역에 걸친 고가용성을 가진다. 클라우드 내에서 개인 트래픽과 공공 트래픽을 분리할 수 있다. ELB(Elastic Load Balancer) ELB는 관리형 로드 밸런서이다. AWS가 관리하며, 어떤 경우에도 작동할 것을 보장한다. AWS가 업그레이드와 유지 관리 및 고가용성을 책임진다. 로드 밸런.. AWS SAA - Scalability & High Availability 확장성(Scalability) 애플리케이션 / 시스템이 조정을 통해 더 많은 양을 처리할 수 있다는 의미 확장성의 종류 수직 확장성 수평 확장성(탄력성) 확장성과 고가용성은 서로 다른 개념이다. 고가용성(High Availability) 고가용성은 보통 수평 확장과 함께 사용되는 개념이다. 고가용성이란 애플리케이션 또는 시스템을 적어도 둘 이상의 AWS의 AZ나 데이터 센터에서 가동 중이라는 걸 의미한다. 고가용성의 목표는 데이터 센터에서의 손실에서 살아남는 것이다. 센터 하나가 멈춰도 계속 작동이 가능하게끔 하는 것이다. 수동형 RDS 다중 AZ를 갖추고 있는 경우 활성형 수평 확장 EC2에서 확장성 & 고가용성 수직 확장 인스턴스의 크기를 늘리는 것 확장(스케일 업), 축소(스케일 다운) 수평 확장 .. 이전 1 2 3 4 5 6 7 ··· 12 다음