병행 프로세스 (1) - 협력 프로세스, 세마포어 연산
·
CS/운영체제
병행성(concurrency) 여러 개의 프로세스 또는 쓰레드가 동시에 실행되는 시스템의 특성 병렬 처리와 다르게 단일 CPU 환경에서도 가능 병행 프로세스동시 수행되는 여러개의 프로세스 또는 쓰레드 병행 프로세스의 실행 형태 단일 CPU: 인터리빙 형식 CPU가 빠르게 번갈아가며 프로세스를 실행 실제 동시 실행이 아닌 시분할 방식으로 동작다중 CPU: 병렬처리 여러 개의 CPU가 각각 프로세스를 실행강결합 시스템(공유 메모리 구조)여러 개의 프로세스가 공유 메모리를 통해 데이터 교환프로세스간 통신이 빠르지만 동기화 문제 발생 가능 약결합 시스템(분산 메모리 구조) 각 프로세스가 독립적인 메모리를 가짐메시지 전달을 통해 통신 프로세스 간의 관계 독립 프로세스다른 프로세스와 상태 및 데이터를 공유하지 않음..
SQL - DDL & DML
·
CS/데이터베이스시스템
SQL(Structed Query Language) SQL이란관계대수에 기초해 RDBMS의 데이터 관리를 위해 1970년대 초 IBM에서 설계비 절차적 (선언형) 언어, 필요한 데이터만 기술하는 간단 명료한 언어 데이터 정의 언어(DDL: Data Definition Language)데이터베이스 내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어 집합데이터가 준수해야 하는 제약 조건 기술데이터베이스 객체의 종류 데이터 저장: 스키마, 테이블, 인덱스, 뷰데이터 조작: 트리거, 프로시저, 함수 등데이터 정의 명령어 종류CREATE: 객체 생성ALTER: 객체 수정DROP: 객체 삭제릴레이션과 테이블RDBMS의 기본적 데이터 저장구조로 2차원 형태 릴레이션데이터를 구성하는 추상적인 개념레코드의 순서와 ..
Clickhouse 데이터 웨어하우스로서의 한계와 단점
·
데이터 엔지니어링
2024.11.22 - [데이터 엔지니어링] - BigQuery에서 ClickHouse로 이벤트 로그 데이터 분석 환경 개선하기이전에 빅쿼리를 이용하다가 클릭하우스로 넘어온 이후 이벤트 로그 분석에서는 빠른 성능을 경험했다. 특히 몇억 건의 대량의 이벤트 데이터를 단순 집계하거나 필터링할 때 ClickHouse가 확실히 좋은 성능을 보여줬다. 하지만 최근 MySQL 데이터를 클릭하우스로 마이그레이션하면서 데이터 웨어하우스 용도로 쓰려다 보니 몇 가지 단점들이 보이기 시작했다.1. JOIN 연산에서의 한계클릭하우스는 기본적으로 INNER JOIN 이외의 JOIN 연산을 다루기 어렵다. 그 이유는 ClickHouse의 엔진 설계상 JOIN 연산이 메모리에서만 수행되기 때문이다. 게다가 ClickHouse는 ..
정렬(1) - 선택, 삽입, 버블, 셸
·
알고리즘
정렬주어진 데이터를 값의 크기 순서에 따라 재배치 하는것 (오름/내림차순)내부 정렬 정렬한 전체 데이터를 주기억장치에 저장한 후 정렬하는 방식비교기반데이터 분포 기반두 데이터 값 전체를 비교해 어떤값이 큰지 작은지 결정하여 정렬데이터의 분포 정보를 활용해 정렬 선택, 버블, 삽입, 셸, 합병, 퀵, 힙 정렬계수, 기수, 버킷 안정적 Stable 정렬같은 값을 갖는 데이터에 대한 정렬 전의 상대적인 순서가 정렬 후에도 그대로 유지되는 정렬 방식입력5 1 2 3 6 2 4 정렬 후1 2 2 3 4 5 6 (안정)1 2 2 3 4 5 6 (불안정) 제자리 정렬 in-place입력 배열 이외에 별도로 필요한 저장 공간이 상수 개를 넘지 않는 정렬 입력 크기 n이 증가해도 추가적인 저장 공간 사용하지 않음 선택 ..
프로세스 스케줄링
·
CS/운영체제
스케줄링 단계상위단계 스케줄링 (Long-term Scheduling)디스크에 있는 프로세스 중 어떤 프로세스를 메모리(Ready Queue)로 올릴지 결정실행할 프로세스의 수를 조절하여 CPU 및 시스템의 부하를 관리중간단계 스케줄링 (Medium-term Scheduling)메모리 관리 기법 중 스와핑(Swapping)을 통해 일시적으로 실행 중인 프로세스를 메모리에서 제거(중단)하고 다시 실행할 프로세스를 선택CPU가 과부하 상태일 때 메모리 점유를 줄이기 위한 목적하위단계 스케줄링 (Short-term Scheduling)CPU를 사용할 프로세스를 선택하여 실행하는 단계실행 중인 프로세스가 종료되거나 인터럽트가 발생할 때 새로운 프로세스를 선택스케줄링 목표공정성(Fairness): 모든 프로세스가..
3강 관계형 모델
·
CS/데이터베이스시스템
논리적 데이터 모델링 단계DBMS의 구현 모델에 맞춰 데이터의 구조를 표현하는 과정데이터 정의 언어(DDL)로 기술된 개념 스키마 생성 관계형 모델(relational model)관계(relation)로 데이터를 표현하는 모델 관계형 모델을 사용하는 DBMS를 RDBMS 라고 부름 릴레이션의 구성 구성요소 설명릴레이션 스키마테이블의 구조(이름, 속성)학생(학번, 이름, 학과, 전화번호)릴레이션 인스턴스실제 저장된 데이터(1001, 홍길동, 컴퓨터공학, 010-1234-5678)속성(Attribute)테이블의 열(컬럼)학번, 이름, 학과튜플(Tuple)테이블의 행(레코드)1001, 홍길동, 컴퓨터공학도메인(Domain)속성 값의 허용 범위전화번호: 010-xxxx-xxxx키(Key)유일한 데이터 식별학번(..
1강 데이터베이스의 이해 & 2강 데이터베이스의 모델
·
CS/데이터베이스시스템
파일 처리 시스템데이터베이스가 개발되기 전 데이터 관리에 사용업무별 애플리케이션에서 사용하는 데이터를 개별 데이터 파일에 저장하고 관리하는 시스템 데이터 종속 문제저장된 특정 하드웨어 또는 소프트웨어에서만 사용될 수 있도록 제한되는 문제 데이터 중복 문제서로 다른 파일에 중복 데이터가 있을때 처리 불가 중복은 일관성, 보안성, 경제성 측면에서 문제 발생 무결성 훼손 문제실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건)을 포함 데이터가 정확하고 일관되며 신뢰할 수 있는 상태를 유지해야함 동시 접근 문제 동일 데이터에 다수 사용자의 접근 허용시 일관성이 훼손 이와 같은 문제를 해결하기 위해 데이터를 사용하는 영역과 데이터를 관리하는 영역을 분리하여 데이터베이스 시스템이라는 중간 브로커를 둬서 데..
알고리즘 소개
·
알고리즘
1. 알고리즘 분석정확성 분석 유효한 입력에 대해 일정 시간내에 정확한 결과의 생성 여부 효율성 분석 알고리즘 수행에 필요한 컴퓨터 자원의 양을 측정/평가공간 복잡도 (space complexity): 메모리의 양 = 정적 공간 + 동적 공간시간 복잡도: 수행시간 = 알고리즘의 실행에서부터 완료까지 걸리는 시간 시간 복잡도알고리즘 수행시간 = Σ{각 연산이 수행되는 횟수}수행 시간에 영향을 미치는 요인 입력크기 (리스트 원소의 개수, 행렬의 크기 등)입력크기 n이 커질수록 수행시간 증가 > 입력크기 n의 함수 f(n)으로 표현 입력 데이터의 상태 S(n) : 크기 n인 입력들의 집합 P(i) : 입력 i가 발생할 확률T(i) : 입력 i 에 대한 알고리즘의 수행시간평균 수행시간 $$ A(n) = \sum..
운영체제의 소개 & 프로세스와 쓰레드
·
CS/운영체제
운영체제 수업의 1강 2강 정리한 내용운영체제란 무엇인가?대표적인 시스템 소프트웨어로 컴퓨터 시스템의 자원을 관리하고 프로그램이 동작하기 위한 서비스를 제공운영체제의 역할컴퓨터 시스템의 자원(하드웨어, 소프트웨어, 데이터) 관리사용자가 내린 명령을 해석해 실행하게하는 사용자 지원 커널 모드와 사용자모드커널모드(슈퍼바이저 모드)Kernel : 커널모드에서 동작하는 운영체제의 핵심요소하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드 운영체제의 커널이 동작함 일체형 커널 : 운영체제의 모든 서비스가 커널 내에 포함 (ex. UNIX, Linux)커널 내부 요소들이 서로 효율적으로 상호작용한 요소라도 오류 발생하면 시스템 전체에 장애 발생 가능 마이크로 커널 : 운영제체 요소의 대부분을 커널..