반응형

개념 19

13. 네트워크와 분산 시스템

네트워크와 분산 시스템 네트워크와 인터넷 네트워크 구성 방식 강결합 시스템 네트워크로 연결된 모든 컴퓨터의 프로세서가 하나의 메모리를 공유하는 방식 약결합 시스템에 비해 속도 ⬆️ 프로세서들이 하나의 공유 메모리를 사용하여 통신한다 -> 공유 메모리를 서로 사용하기 위해 경쟁 : 결합 교환(Combining switch, 하나의 공유 메모리를 차지하려는 여러 프로세서 중 하나만 골라서 메모리 접근을 허락하는 방식) 약결합 시스템 둘 이상의 독립된 시스템 연결 각 컴퓨터는 각각 독립적으로 운영되다가 필요할 때 통신선으로 메시지 전달 or 원격 프로시저 호출(RPC) 통신 오버헤드 -> 속도 ⬇️ 각각 독립적으로 작동하기 때문에 오류 발생 시 다른 시스템에 영향 X 프로토콜 - 통신 규약 - 다른 기기 간에..

개념 2022.11.13

12.파일 시스템

파일 시스템 파일 시스템 - 파일 속성(메타데이터): 파일을 관리하기 위한 각종 정보로, 파일 이름, 유형, 저장된 위치, 파일 사이즈, 접근 권한, 소유자, 시간 등 파일에 대한 전반적인 정보 - 파일 시스템: 운영체제와 모든 데이터, 프로그램의 저장과 접근을 위한 기법 제공으로, 시스템 내의 모든 파일에 대한 정보를 제공하는 계층적 디렉토리 구조고, 파일 및 파일의 메타데이터, 디렉토리 정보 등을 관리 파일 구조 순차 파일 구조 파일 내용이 하나의 긴 줄로 늘어선 형태로 카세트테이프가 대표적인 예 순차 접근 방식 인덱스 파일 구조 순차 파일 구조를 유지하면서도 디스크를 이용한 저장장치의 장점을 살리기 위해 인덱스를 이용한 접근이 가능하다. 인덱스 순차 접근 직접 파일 구조 파일의 레코드를 임의의 순서..

개념 2022.11.04

11. 입출력 시스템과 저장장치

입출력 시스템과 저장장치 입출력 시스템 입출력 장치와 채널 - 필수장치 : CPU, memory - 주변장치 : 입출력 장치, 저장장치 - 각 장치는 메인보드에 있는 버스로 연결된다. - 여러 주변장치는 메인보드 내의 버스로 연결되는데, 버스에는 많은 종류의 장치가 연결되기 때문에 버스를 1개만 사용하면 병목 현상 발생 -> 여러 개의 버스를 묶어서 사용 - 채널 : 데이터가 지나다니는 하나의 통로로, 도로의 차선과 비슷한 개념이다. ex) 4채널 버스는 4개의 주변장치가 동시에 데이터를 주고 받을 수 있는 4차선 도로와 동일 입출력 버스 구조 초기 모든 장치가 하나의 버스로 연결 CPU가 작업을 진행하다가 입출력 명령을 만나면 입출력 장치에서 직접 데이터를 가져옴 -> 폴링(Polling) 방식 입출력..

개념 2022.10.29

MSA

MSA(MicroService Architecture) - 마이크로 서비스 아키텍쳐 - 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법 -API Gateway는 모든 API 서비들의 End-Point를 단일화하여 묶어주는 역할 & 라우팅, 로드밸런싱, 인증 역할 등을 한다. API Gateway란 - 모든 서버에서의 요청을 단일 지점을 거쳐서 처리하도록 한다. - 모든 클라이언트는 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달 - 사용자가 설정한 라우팅 설정에 따라 각 엔드포인트로 클라이언트를 대신해서 요청하고 응답을 받으면 다시 클라이언트에서 전달하는 프록시 역할을 한다. - 엔드포인트 서버에서 공통으로 필요한 인증/인가, 사용량 제어, 요청/응답 변조 ..

개념 2022.10.25

10. 가상 메모리 관리

가상 메모리 관리 * 프레임 : 물리 메모리를 일정한 크기로 나눈 블록 * 페이지 : 가상 메모리를 일정한 크기로 나눈 블록 요구 페이징 - 메모리를 효율적으로 사용하는 방법 중 하나로, 필요한 페이지만 적재하는 방법 - 가상 메모리 시스템을 사용하여 필요한 프로그램의 일부만 적재함으로써 메모리를 더 효율적으로 사용할 수 있도록 한다. - 미리 가져오기는 요구 페이징과 반대로 앞으로 필요할 것이라 예상되는 페이지를 미리 가져오는 방식 ex) 캐시 *스와핑 : 프로세스를 구성하는 모든 페이지를 메모리에 올리는 것은 순수한 스와핑, 사용자가 요구할 때 메모리에 올리는 것은 게으른 스와퍼 페이지 테이블 엔트리 구조 스왑 영역 하드디스크에 존재하나 메모리 관리자가 관리하는 영역 시스템에 메모리가 부족할 경우 하..

개념 2022.10.22

Redis

Redis Redis란? - NoSQL로, Key-Value 타입의 저장소 영속성을 지원하는 인메모리 데이터 저장소 읽기 성능 증대를 위한 서버 측 복제 지원 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원 컬렉션 지원 : List, Set, Sorted Set, Hash 등의 자료구조 지원 Pub/Sub 지원 : Publish/Subscribe 모델 지원 현재 메모리 상태를 디스크로 저장할 수 있는 기능과 현재까지 업데이트 내용을 로그로 저장할 수 있는 AOF(Append Only File, 명령이 실행될 때마다 해당 명령이 파일에 기록) 기능으로, 데이터 손실이 거의 없다. RDB(메모리의 스냅샷을 파일 형태로 저장할 때 쓰는 파일의 확장자명) 지원 RDB, AOF 1. RDB RDB를 하는 방식 S..

개념 2022.10.19

9. 컴파일러와 인터프리터

컴파일러와 인터프리터 컴파일러 프로그램 전체를 스캔하여 이를 모두 기계어로 변역 전체를 스캔하기 때문에 초기 스캔 시간 ⬆️ ex) C, C++, 자바 등 목적 오류 발견: 소스코드에서 오류를 발견하여 실행 시 문제가 없도록 하는 것 코드 최적화 컴파일 과정(자바) 개발자가 .java 소스코드를 작성 자바 컴파일러가 자바 소스코드 파일을 읽어 바이트코드(.class)로 컴파일 바이트코드 파일: 아직 컴퓨터가 읽을 수 없는 JVM이 읽을 수 있는 코드 컴파일 된 바이트 코드를 JVM의 클래스 로더(Class Loader)에 전달 클래스 로더는 동적 로딩(Dynamic Loading)을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역인 JVM의 메모리에 올림 실행 엔진은 JVM 메모리에 올라온 ..

개념 2022.10.11

8. 물리 메모리

물리 메모리 메모리 관리자 - MMU(Memory Manage Unit)이라는 하드웨어서 메모리를 관리한다. 메모리 관리자의 작업 Fetch(가져오기) - 프로세스와 데이터를 메모리로 가져오는 작업 - 사용자가 요청한 프로세스와 데이터를 모두 메모리로 가져오기도 하고, 데이터의 일부만 가져오기도, 요청이 없어도 앞으로 필요할 것이라 예상되는 데이터를 미리 가져오기(prefetch)도 한다. Placement(배치) - 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정하는 작업 - 메모리를 어떻게 자를지 결정한다. - 메모리 자르는 방식에 따라 페이징(paging), 세그먼테이션(segmentation) 등의 방법이 있다. Replacement(재배치) - 꽉 차 있는 메모리에 새로운 프로..

개념 2022.10.09

SQS(Simple Queue Service)

SQS - 서버들끼리 사용할 수 있는 메시지 큐를 제공하는 서비스 - 비동기 메시지 서비스 - 마이크로 서비스, 분산 시스템 및 서버리스 애플리케이션을 쉽게 분리하고 확장할 수 있도록 지원하는 완전 관리형 메시지 대기열 서비스 QUEUE - 메시지를 담는 공간 표준 대기열(Standard Queue) 장점 최소 1회 전달 보장(At Least Once Delivery) 무제한에 가까운 메시지 전송 지원(최대 처리량) 최대한 순서 보장(Best Effort Ordering) 단점 메시지 순서 보장 X 중복 읽기 가능성이 존재 FIFO 대기열(First In First Out Queue) 장점 메시지 순서 보장 1번 전송, 1번 수신이 된다.(중복 수신 방지) 초당 300개까지 호출 가능 보기 제한 시간..

개념 2022.10.01
728x90
반응형