전체 글

공부와 경험의 기록!
Thread 의 장점 1. 응답성, 빠른 처리 : 하나의 스레드가 waiting 인 상태 동안에 동일한 task 내의 다른 스레드는 실행될 수 있어서 응답 속도를 높인다. 2. 자원 절약 : 같은 작업을 수행하는 하나의 프로세스 안의 thread들은 자원을 공유하는 부분이 있다. ex) Code, Data 영역 3. 경제성 : process 를 생성하거나 문맥 교환하는 것에 비해 thread는 경제적이다. (Solaris OS 의 경우 생성의 경우 30배, 문맥 교환의 경우 5배 더 절약된다.) 4. Process는 하나지만, thread는 여러개 인 경우 -> 병렬적으로 일할 수 있다. Thread 구현 방법 Kernel Thread : 운영체제 kernel의 지원을 받는다. ex) 하나의 thread..
동기식 입출력 & 비동기식 입출력 입출력 처리를 운영체제를 통해서 해야 한다. 입출력을 요청한 프로세스가 기다려야 한다면 → 동기식 입출력이다. 입출력이 진행되는 동안에 그 프로세스가 곧바로 CPU를 점유하여 실행한다면 → 비동기식 입출력이다. 동기식 입출력 I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 방법 1 : I/O 가 끝날 때 까지 CPU를 낭비시킨다. → 매 시점에 하나의 I/O 만 일어날 수 있음 방법 2 : I/O가 완료될 때까지 해당 프로그램에게서 CPU 를 빼앗음 → 다른 프로그램에게 CPU 를 준다. 대부분 방법2로 구현된다. 비동기식 입출력 I/O 가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감. 동기식 & 비동..
·Algorithm (PS)
https://www.acmicpc.net/problem/6593 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net BFS 로 풀었다 상하 이동 처리만 신경써주면 된다 하지만 나는 삽질을 몋시간동안 했는지 모르겠다 근데 그 이유가 queue에서 뺄 때 popleft 가 아니라 pop() 을 써서 그렇다 .. 어이없다 ; from collections import deque # 방향 이동 - 동서남북 + 상하 dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0,..
! [remote rejected] main -> main (pre-receive hook declined) 구글링 해보니까 branch protect 정책을 설정하지 않아서 생긴 문제라고 한다 Git에 새로 생긴 기능이려나..? 따라서 레포지토리 -> Settings -> Branch 에 들어가서 새로운 Branch Protection rule을 만들어 주었다. 나의 경우 사이드 프로젝트 였으므로 push force 를 허용하고 delete 도 허용하는 두가지 rule을 추가하였고, 별도로 다른 정책은 건드리지 않았다. 대용량 파일 올리는 방법은 git lfs로 쪼개서 올리는 방법이 있다. git에서는 50MB 를 넘어가면 대용량 파일로 간주하여 올리는데 문제가 발생한다.. brew install lf..
macOS 에서 mysql 서비스를 실행시키는 명령어를 쳐주어야 한다. brew services start mysql 재접속해보니 성공했다
Process Synchronization 컴퓨터 시스템 내에서 데이터가 접근되는 패턴이 있다. 위의 그림처럼 데이터가 저장되는 공간에서 연산할 데이터만 로드시켜서 CPU에서 연산을 한다. 연산 결과는 다시 저장공간에 저장된다. 공유 데이터의 동시 접근이 일어나면 데이터의 불일치 문제가 발생할 수 있다. 일관성 유지를 위해서 협력 프로세스 간의 실행 순서를 정해주는 매커니즘이 필요 Race Condition 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐 race condition을 막기 위해서 concurrent process는 동기화 되어야 한다. Race Condition 이 발생하는 상황 1. Kernel Code ..
CPU Scheduling 이 필요한 이유 ? 여러 종류의 job (= process) 가 섞여 있기 때문에 스케줄링이 필요하다. CPU를 계속해서 사용하는 CPU bound job도 있고, 사용자와 인터렉션을 해야하는 I/O bound job 이 있다. FCFS (First-Come-First-Served) 프로세스의 도착 순서대로 사용한다. -> 마지막으로 도착한 프로세스가 지나치게 오래 기다리게 될 것이다. Round Robin 각 프로세스는 동일한 크기의 시간을 할당 받고, 할당받은 시간이 지나면 프로세스는 선덤 당하고 ready queue의 가장 뒤에 가서 줄을 선다. 프로세스가 ready queue에 n 개 있을 때, 할당 시간이 q time-unit인 경우, 각 프로세스는 최대 q time-..
RDS → S3 마이그레이션 task를 수행하는 중 DMS에서 CDC 작업이 제대로 이루어지는지 검증하는 작업을 수행했다. DMS로 MySQL DB (RDS) 에서 S3 Bucket으로 Migration 하기 AWS에서 새로운 RDS 인스턴스 생성 RDS와 MySQL Workbench 연결하기 RDS 보안그룹에 인바운드 규칙은 다음과 같이 추가되어야 한다. (필요에 따라 내 IP를 선택하거나 모든 트래픽을 선택하면 될 것이다. ) 3. 엔드포인트 생성 및 연결 테스트 완료 엔드포인트 생성 시 rds에서 사용하는 마스터키 비밀번호를 정확하게 입력해주어야 한다 4. RDS에서 파라미터 그룹 생성 5. 파라미터 설정에서 binlog_row_image 를 full 로 변경 6. binlog_format 값으로 ..
minjiwoo
MJ workspace