전체 글

공부와 경험의 기록!
스케줄링 알고리즘은 크게 non-preemptive / preemptive 방식으로 나뉘게 된다. Scheduling Criteria 성능 척도 CPU utilization (이용률) : 전체 시간중에서 CPU 가 일한 시간. CPU 는 가능한 busy 해야 한다. - CPU 는 비싼 자원이기 때문에 효율적으로 활용하기 위해서는 CPU 는 항상 일을 해야 한다. Throughput (처리량) : 주어진 시간동안 몇개의 프로세스들을 완료 했는가 Turnaround time (소요시간, 반환시간) : 특정 process를 실행하는데 걸리는 시간 Waiting time (대기 시간) : 프로세스가 ready queue에서 대기하고 있는 시간 Response time (응답 시간) : 요청이 왔을 때 처음으로 ..
CPU & I/O burst CPU burst : CPU를 사용하여 작업하는 부분 I/O burst : I/O 작업을 수행하는 부분 프로그램은 CPU burst 와 I/O burst 번걸아서 연속적으로 실행된다. CPU Burst Time의 분포 I/O bound job : CPU 를 잡고 계산하는 시간 보다 I/O에 많은 시간이 필요한 job 이다. 위의 그래프에서 알 수 있듯이 CPU burst를 짧게, 빈도는 많이 사용할 것이다. CPU bound job : CPU를 잡고 계산을 위주로 하는 job이다. CPU를 길게 연속적으로 사용하며 CPU burst 빈도는 적게 일어난다. 여러 종류의 job (= process) 이 섞여 있기 때문에 CPU 스케줄링을 통해, 자원을 효율적으로 사용해야 한다. ..
프로세스 간 협력 프로세스는 독립적이다. 각자 주소공간을 가지고 수행되기 때문에 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 미치지 못한다. 그렇지만 프로세스 간 협력 메커니즘 (Inter Process Communication)을 통해, 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있다. IPC에는 크게 message passing 과 shared memory 기법이 있다. Message Passing 원칙적으로 프로세스끼리 직접 통신을 하지 않으므로, 운영체제의 커널을 통해 메세지를 전달하는 방법 1. Direct Communication 통신하려는 프로세스의 이름을 명시적으로 표시하는 방법 커널을 통해 다른 프로세스에게 메세지를 넘긴다. 2. Indirect Communi..
시스템 콜의 종류 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..
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..
·Algorithm (PS)
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..
minjiwoo
MJ workspace