시스템 콜의 종류 4가지에 대해 알아본다. 프로세스 생성, 실행, 종료와 관련된 주요 4가지 시스템 콜은 다음과 같다. fork() : 복제본 child process를 생성한다. exec() : 새로운 프로그램으로 overlay 한다. wait() : child process 작업이 끝날 때까지 sleep 한다. exit() : 모든 resource들을 free 시키고, parent node에게 이를 알린다. fork() 시스템 콜 process는 fork() 시스템 콜에 의해 생성된다. caller 를 복사해서 새로운 주소 공간을 생성한다. fork() 를 통해서 프로세스를 생성하는 예시이다. int main() { int pid; printf("Only parent process print this..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.Process 의 생성 부모 프로세스가 자식 프로세스를 생성한다. 프로세스들은 트리 구조 형성하게 된다. 프로세스는 자원을 필요로 한다. 자원은 운영체제로부터 받으며, 부모 프로세스와 자식 프로세스가 일반적으로 공유하지 않는다. 프로세스들끼리는 별개의 프로세스이므로 자원을 위해 경쟁을 하게 되는 것이 일반적이기 때문이다. 수행 - 부모와 자식이 공존하며 수행하는 모델 - 자식이 종료될 때가지 부모가 기다리는 모델 주소 공간 - 자식은 부모의 공간을 복사한다. : process의 문맥 (주소공간인 코드 데이터 스택, PC)을 그대로 복사한다. - 마치 과제할 때 기존에 레포트 템플릿이 있으면 복사하고 일부 수정해서 쓰는 것처럼, 효율적일 것이다. - 자식은 그 공간에 새로운 프로그램을 올린다. UNIX 예..
국내에 Databricks 관련 블로그 글이나 문서가 많지 않아서 직접 공부하거나 테스트 해본 내용들을 블로그에 조금씩 정리해보려고 한다..! Databricks DLT Table 이란 ? 데이터브릭스에서 안정적으로 배치 및 스트리밍 데이터를 위한 파이프라인을 구축하고 관리할 수 있도록 만들어 놓은 기능이다. 스트리밍 데이터에 강하다보니, CDC가 필요한 경우에도 주기적으로 스트리밍 데이터를 당겨오면 Delta Live Table에 변경 사항을 반영할 수 있다. 문제점은 .. 편리한 대신에 가격이 비싸다고 한다 https://www.databricks.com/kr/product/delta-live-tables Delta Live 테이블 | Databricks DataBricks Delta Live Tab..
https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 1. 사각형 테두리를 그린다. 2. 테두리 따라서 , characterX, characterY 좌표부터 itemX, itemY 까지의 경로중 최단거리를 BFS를 이용해서 탐색한다 여기서 주의해야 할 점은, 테두리와 테두리가 겹치는 경우 경로를 잘못 인식할 수 있다는 점이다. 따라서, 아예 2배로 칸 크기를 늘려서, 겹치는 문제를 해결해야 한다. 대신 answer 를 구할 때 다시 2로 나..

프로젝트에서 온프레미스 환경에 있는 MongoDB 데이터베이스를 AWS DMS 를 사용하여 S3로 마이그레이션을 하게 되었다..!! DMS CDC 기능을 사용해보기 위해서 mongoDB 레플리카 셋을 구축해보게 되었다. MongoDB ReplicaSet 이란 ? Replica Set은 쿠버네티스에서도 등장하는데, Mongo DB에서는 관점이 조금 다르다. 데이터베이스의 데이터를 여러 서버에 동일한 데이터 셋을 저장하고 운영하기 위한 클러스터이다. Replica Set을 구성해서, 하나의 서버에 장애가 일어나더라도 다른 서버가 동일한 데이터 셋을 운영할 것이므로 가용성을 보장할 수 있다. Replica Set 의 패턴 MongoDB에서 레플리카셋을 구성하는 패턴은 크게 두가지이다. 1. PSS (Prima..
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 가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감. 동기식 & 비동..
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,..