쿠버네티스 소스코드 분석 시작
소스코드 분석 시작 쿠버네티스에 대해 가장 확실하게 알아보려면 소스코드를 분석해보는게 가장 확실하다는 판단이 들었다. 그렇기 때문에 쿠버네티스 소스코드를 분석해보기로 했다. 쿠버네티스는 매우 많은 사람들이 기여하고 있는 소프트웨어이다. 그렇기 때문에 분석하고자 하는 버전을 명확히해야 “어제 봤던 거랑 다른 코드인데…?”하는 일을 피할 수 있다. 현...
소스코드 분석 시작 쿠버네티스에 대해 가장 확실하게 알아보려면 소스코드를 분석해보는게 가장 확실하다는 판단이 들었다. 그렇기 때문에 쿠버네티스 소스코드를 분석해보기로 했다. 쿠버네티스는 매우 많은 사람들이 기여하고 있는 소프트웨어이다. 그렇기 때문에 분석하고자 하는 버전을 명확히해야 “어제 봤던 거랑 다른 코드인데…?”하는 일을 피할 수 있다. 현...
세마포어 다익스트라가 제안한 방식으로 busy waiting의 문제를 해결할 수 있으며 앞서 언급했던 세가지 조건(상호 배제, 진행, 제한된 대기)를 모두 만족하는 방법이다. 뿐만아니라 다수의 스레드의 경우에도 사용할 수 있는 방법이다. 때문에 멀티 스레드를 구현할 때 API로써 언어에 제공이 많이 되는 편이다. 세마포어에 대해서 알기 위해선 먼...
경쟁 상태 해결법 소프트웨어적 방법 종류 1 Dekker’s Solution 스레드가 두 개일때 사용가능한 방법으로 최초의 상호 배제 알고리즘이다. 이 알고리즘은 상호 배제, 교착 상태 방지, 기아 방지를 보장한다. 의사 코드는 아래와 같다. // 스레드들을 포함한 프로세스에서 정의 bool WTE[2] ={false, false} // 모두 f...
경쟁 상태 여러 개의 스레드가 동일한 자원에 접근하여 작업할 때 작업 순서가 보장되지 않아 진행할때마다 결과가 달라지는 경우를 말한다. 여기서 동일한 자원은 대부분 공유 메모리이다. 문제 제기 생산자 로직이 있고 소비자 로직이 있다고 가정해보자. 그리고 이 두 개의 로직은 한 개의 프로세스 내에서 각각 스레드로 돌아가며 count 변수 값을 공유한다...
교착 상태(Dead lock) 두 개 이상의 프로세스들이 다른 프로세스가 점유하고 있는 자원을 기다릴 때 교착상태가 발생한다. 가령 A 프로세스와 B 프로세스가 있다고 할 때 A,B 프로세스를 끝내기 위해서 둘 다 a,b 리소스가 필요할 때 A와 B 프로세스가 각각 a 리소스와 b 리소스를 점유하고 있어 A,B 둘다 해결되지 않고 무한정 기다리고 있게...
프로세스 실행 중인 프로그램이라고 할 수 있다. 다음과 같은 C언어 프로그램이 있다고 가정해보자 # include <stdio.h> int glob=3; //global or static variable void Function_A (void) { int loc, *dynamic; dynamic = malloc(138...
수학적 벡터 벡터 공간 물리적 벡터에서 정의된 것과는 좀 다르다. 앞서 포스팅한 대수구조를 통해 정의하게 되는데 벡터 공간이란 체 $F$에 대한 가군 (V,+,·)을 벡터공간, V의 원소를 벡터라고 한다. 이때 +는 벡터의 덧셈이고, ·는 벡터의 스칼라배다. 이게 무슨 소리냐면 집합과 그 위의 결합법칙과 교환법칙이 성립하며 항등원과 역원을 갖는 하...
벡터에 대해서 물리적 벡터와, 수학적인 벡터로 나눠서 설명 하도록 하겠다. 물리적 벡터 벡터는 원래 물리에서 시작된 개념이다. 시작점과 종결점이 중요한게 아니라 방향과 크기만 같으면 동일한 벡터로 간주한다. 1. 벡터와 좌표계 (1) 평면 벡터 이차원 평면에서 크기(스칼라)와 방향을 포함한 표현 도구이다. (2) 공간 벡터 삼차원 공간에서 ...
대수구조 대수 구조란 수 뿐 아니라 수를 대신 할 수 있는 것을 대상으로 하는 집합과 그 집합에 부여된 연산이 여러가지 공리로써 엮인 수학적 대상이다. 간단히 말하자면 일련의 연산들이 주어진 집합이다. 그냥 언뜻 들으면 전혀 와닿지 않는다. 하지만 만약 당신에 프로그래밍을 알고 있고, 추상화에 대해서 알고있다면 조금 더 쉽게 받아들일 수 있다. 어...
행렬 용어 정리 성분(Element, Component) : 행렬안에 배열된 구성원, 항이나, 원소라고 하기도 한다. 행(row) : 가로줄 열(column) : 세로줄 NxM 행렬 : N행과 M열로 이루어진 행렬 주대각선 (Main diagonal) : 행렬의 왼쪽 위 끝부터 오른쪽 아래 중간을 가로지르는 선 영 행렬(zer...