분류 전체보기

Study/OOP with Java

[OOP with JAVA] 3. 메서드 스택 프레임

이전까지의 스택 프레임은 Main 스택 프레임에서 벌어지는 일에 대해서 설명했으나, 오늘 설명할 스택 프레임은 Main 스택 프레임 밖에서 생성되는 스택 프레임을 설명할 것이다. 일단 다음 코드부터 읽어보자 public class Main { public static void main(String[] args) { int number = 5; number = square(number); System.out.println(number); } public static int square(int n) { int result = n * n; return result; } } n의 제곱값을 반환하는 함수 square를 선언했다. 메서드를 호출하면 T메모리에는 Main 스택 프레임 바깥에 호출한 메서드의 스택 프레..

Study/OOP with Java

[OOP with JAVA] 1. 객체 지향 프로그래밍을 시작하며

기초가 중요하지 않을까요? 스프링은 다음과 같은 기술들의 집약이다. 서비스 지향 구조(Service Oriented Architecture) 컴포넌트 기반 개발(Component Based Development) 객체 지향 프로그래밍(Object Oriented Programming) 절자 지향 프로그래밍(Procedure Programming) 기계어/어셈블리어 스프링을 이해하려면 스프링 그 이전의 기술들이 뭔지는 알아야 할 것이다. 이번 챕터에서는 스프링 이전의 기술들을 훑어보게 될 것이다. 기계어 컴퓨터는 사실 0과 1밖에 다루지 못한다. 초기의 컴퓨터가 이해할 수 있는 언어는 기계어 뿐이었다. 기계어는 동작하는 컴퓨터에 따라 형식이 달라서 동작하는 컴퓨터에 맞는 형식으로 작성해야하고 인간이 작성하..

Study/Learning Python

[Python] 클래스 생성자에 대하여( __new__와 __init__ )

이 글은 파이썬 중급자를 위한 글입니다. 오늘의 의문 왜 파이썬 클래스의 __init__ 메서드는 반환이 없을까? class MyClass: def __init__(self, name): print("Does this function really create an instance?") self.name = name my_instance = MyClass("init_mumu") print(my_instance.name) 아무리 생각해도 이상하다. 위의 코드는 분명 my_instance 변수에 인스턴스를 대입한다. 그런데, __init__ 메서드는 반환값이 없으니 말이다. 코드 실행 흐름 분석 그래서 대입 시점을 찾기 위해 빨간콩을 코드에 죄다 찍고 Line by Line으로 코드를 실행해보았다. MyCla..

School/전기와자기의만남

기본적인 힘

우주를 지배하는 기본적인 힘 중력(Gravity) 전자기력(Electromagnetic Force) 강력(Strong Nuclear Force, 강한 핵력) 약력(Weak Nuclear Force, 약한 핵력) 빅뱅 후 4가지 힘이 생성된 시간 중력 거시세계를 구성하는 중력 물체를 서로 잡아 당겨 인력으로 작용 시공간을 변형시킴 미시세계에서의 중력 극단적으로 약하여 거의 작용을 하지 않음 전자기력 전기력과 자기력에 바탕을 둔 힘 미시세계를 구성 인력과 척력이 모두 존재 양전하, 음전하 사이에 작용하는 전하의 움직임에 관련 중력처럼 거리와 범위에 따라 그 상호작용이 결정 강력 원자핵의 양성자와 중성자를 강하게 결합하는 힘 극미세계를 구성 모든 무거운 원소들을 만들게 한 근복적인 힘 거리가 멀어지면 서로 당..

School/컴퓨터 구조

[컴퓨터 구조] 캐시(Cache) - Associative Caches

완전 연관 캐시(Fully associative cache) - 주어지는 블록은 아무 캐시 엔트리에 저장될 수 있다 - 캐시내의 모든 엔트리를 검색해야함 - 엔트리당 하나의 비교기가 필요하다 집합 연관 캐시(Set associative cache) - 집합 하나에 n개의 엔트리를 포함할 수 있다 - 블록 넘버는 집합에 따라 결정된다 (Block number) modulo ( 캐시안의 집합 개수 ) - 주어진 세트의 모든 항목 한 번에 검색 - n개의 비교기가 필요 직접 사상 캐시는 1way 집합 연관 캐시라고도 볼 수 있다 연습 문제 1워드 크기의 블록 4개로 구성된 세 종류의 캐시가 있다. 하나는 완전 연관 방식, 다른 하나는 2way 집합 연관 방식 나머지는 직접 사상 방식이다. 블록 주소 0, 8,..

School/컴퓨터 구조

[컴퓨터 구조] 캐시(Cache) - 캐시 퍼포먼스 측정

CPU time 프로그램이 수행되고 메모리를 기다리는 시간 - CPU time = (CPU execution clock cycles + Memory-stall clock cycles) * Clock cycle time - Memory-stall clock cycles = Read-stall cycles + Write-stall cycles Read-stall cycles = Reads/Program * Read miss rate * Read miss penalty Write-stall cycles = Writes/Program * Write miss rate * Write miss penalty + Write buffer stall - Write miss: 쓰기를 진행하기 전에 블록을 가져와야함 - Wr..

School/컴퓨터 구조

[컴퓨터 구조] 캐시(Cache) - 캐시 미스와 쓰기 처리

큰 캐시 블록은 공간 지역성에 의해 miss rate를 전반적으로 감소 시킴 그러나 고정된 사이즈의 캐시에서는 문제가 발생 - 큰 블록은 워드에 접근할 때 교체가 일어날 수 있음 - 이것은 miss rate의 증가로 이어짐, why? 블록 교체때문에 정작 필요한 블록들이 빈번히 사라지기 때문 캐시 미스 1. 원래의 PC 값(next PC - 4)을 메모리에 보낸다 2. 메인 메모리에 읽기 동작을 지시하고 메모리가 접근을 끝낼 때까지 기다린다 3. 캐시 엔트리에 쓴다. - 이 때 메모리에서 인출한 데이터를 데이터 부분에 Write - 태그 필드에 주소 상위비트를 Write - 유효비트를 1로 만든다 4. 명령어 수행을 첫 단계부터 다시 시작한다. 캐시에서 명령어를 다시 인출하는데, 이번에는 필요한 명령어를..

School/컴퓨터 구조

[컴퓨터 구조] 캐시(Cache) - Direct Mapped Cache

캐시: 메모리 계층적으로 가장 CPU에 가까운 메모리 캐시는 SRAM으로 만들어진다 # SRAM: 데이터 리프레쉬가 일어나지 않는 RAM 캐시에 없는 Xn에 대한 접근 캐시에 Xn이 없다면 메모리에서 Xn을 가져온다(Fetch) 그런데, 데이터가 캐시에 있는지 어떻게 알 수 있을까? 해당 챕터에서는 그것을 배우게 될 것 Direct mapped cache(직접 사상 캐시) 각각의 메모리 주소가 캐시에 직접 매핑되는 방식 Mapping method - (블록 주소) modulo (캐시의 블록 수) - EX) 00101 modulo (8) = 101 Q. 캐시 주소에 어떤 메모리 주소가 저장되어 있는지 어떻게 알까? - 캐시에 태그를 추가함으로써 해결할 수 있다 - 태그는 캐시 내의 워드가 요청한 것인지 아..

Study/DevOps

4. 쿠버네티스 아키텍처

4.1 쿠버네티스 클러스터의 전체 구조 쿠버네티스 클러스터는 크게 두 종류의 서버로 구성합니다. 클러스터를 관리하는 Master와 실제 컨테이너를 실행시키는 Worker입니다. Master에는 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 등의 컴포넌트가 실행됩니다. 마스터는 보통 고가용성을 만족하고자 서버 3대 정도를 구성해서 운영합니다. 실제 리더 마스터는 1대고 나머지 2대는 대기를 합니다. 워커 노드에는 쿠블렛, 쿠베프록시, 도커 등의 컴포넌트가 실행됩니다. 실제 사용하는 컨테이너 대부분은 워커 노드에서 실행됩니다. 4.2 쿠버네티스 주요 컴포넌트 4.2.1 마스터용 컴포넌트 etc..

School/컴퓨터 구조

1-1 Computer Organization

컴퓨터의 종류 Personal Computer (PC) 개인이 사용하도록 설계된 컴퓨터, 일반적으로 그래픽 디스플레이, 키보드 및 마우스를 통합합니다. 광범위하게 사용되는 가장 잘 알려진 컴퓨팅 형태. PC는 저렴한 비용으로 단일 사용자에게 우수한 성능을 제공하고 일반적으로 타사 소프트웨어를 실행합니다. Server Computer 여러 사용자를 위해 더 큰 프로그램을 실행하는 데 사용되며 네트워크를 통해서만 액세스할 수 있는 컴퓨터입니다. 서버는 더 큰 컴퓨팅, 스토리지 및 I/O 용량을 제공합니다. 일반적으로 서버는 신뢰성에 더 큰 중점을 둡니다. Super Computer 엄청난 양의 프로세서와 엄청난 양의 메모리로 구성되는 아주 비싼 컴퓨터 기상 예측같은 하이엔드 과학 혹은 공학 계산에 주로 사용..

init_mumu
'분류 전체보기' 카테고리의 글 목록