블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/dma/ [운영체제] DMA(Direct Memory Access)란? (DMA vs PIO) - 코드 연구소DMA는 말 그대로 메모리(Memory)에 직접 접근하는 방식을 뜻한다. 이때 CPU는 데이터 전송에 전혀 관여하지 않는다는 점이 중요하다. DMA는 주변장치들이 메인 메모리와 직접 데이터를 공유할 수 있code-lab1.com PIO(Programmed I/O)PIO는 주변장치들(I/O device) 사이 전송되는 모든 데이터가 CPU를 거쳐간다. 이때 CPU는 주변 장치들에 대한 지속적인 모니터링을 통해 주변 장치들이 준비가 됐는지 체크하기 때문에불필요하게 CPU 주기를 낭비하고 "Busy" 상태가 빈번하게 된다..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%8F%99%EC%8B%9C%EC%84%B1%EA%B3%BC-%EB%B3%91%EB%A0%AC%EC%84%B1/ [운영체제] 동시성(Concurrency)과 병렬성(Parallelism)의 차이 - 코드 연구소컴퓨터공학에서 동시성이란 여러 작업이 순서에 상관없이 동시에 진행되는 것을 뜻한다. 하지만 여기서 동시에 진행된다는 것은 실제로 여러 작업이 동시에 동작하고 있다는 뜻은 아니다. 여러code-lab1.com 동시성(Concurrency)이란?컴퓨터공학에서 동시성이란 여러 작업이 순서에 상관없이 동시에 진행되는 것을 뜻한다. 하지만 여기서 동시에 진행된다는 것은 실제로 여러 작업이 동시에 동작하고 있다는 뜻은 아니..
팩토리 메서드 패턴이란? 팩토리 메서드 패턴은 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴이기도 하다. 팩토리 메서드 패턴은 템플릿 메서드의 생성 패턴 버전으로 볼 수 있는데, 따라서 템플릿 메서드에 대해 알지 못한다면 해당 패턴을 먼저 이해하는 것이 좋다. 참고) [디자인패턴] 템플릿 메서드 패턴(Template Method Pattern)이란? 템플릿 메서드 예시 [디자인패턴] 템플릿 메서드 패턴(Template Method Pattern)이란? 템플릿 메서드 예시 템플릿 메서드 패턴이란? 템플릿 메서드 패턴은 소프트웨어 공학에서 동작 상 알고리즘의 프로그램 뼈대를 정의하는 행위 디자인 패턴이다. -위키백과- 템플릿 메서드 패..
템플릿 메서드 패턴이란? 템플릿 메서드 패턴은 소프트웨어 공학에서 동작 상 알고리즘의 프로그램 뼈대를 정의하는 행위 디자인 패턴이다. -위키백과- 템플릿 메서드 패턴은 알고리즘의 골격을 부모 클래스에서 정의하되, 자식 클래스들이 해당 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계들을 오버라이드(재정의) 할 수 있도록 하는 행동 디자인 패턴이다. 템플릿 메서드 패턴은 부모 클래스에서 알고리즘을 일련의 단계들(메서드)로 나누고 단일 템플릿 메서드 내부에서 이러한 메서드들을 호출한다. 자식 클래스는 단일 템플릿 메서드 내부에서 호출되는 메서드들 중에서 필요한 경우 선택적으로 오버라이드 하여 사용할 수 있다. 이렇게 하면 중복을 제거하고 다형성을 확보할 수 있다. 템플릿 메서드 예시 예를 들어 쉽게 이해..
GoF와 이펙티브 자바의 빌더 패턴 빌더 패턴은 "Design Patterns"의 공동 저자 4명을 부르는 GoF(Gang of Four)에서 소개하는 버전과 이펙티브 자바(Effective Java)에서 소개하는 버전이 존재한다. 이 글에서는 요새 자주 쓰이고 Lombok에서도 지원하는 간단한 빌더 패턴에 대해 알아보겠다. 참고) GoF 빌더 패턴 빌더 패턴 / 디자인 패턴들 / 생성 패턴 빌더 패턴 다음 이름으로도 불립니다: Builder 의도 빌더는 복잡한 객체들을 단계별로 생성할 수 있도록 하는 생성 디자인 패턴입니다. 이 패턴을 사용하면 같은 제작 refactoring.guru 빌더 패턴이란? 빌더 패턴이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과..
싱글톤 패턴(Singleton Pattern)이란? 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러 개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. - 위키백과 - 싱글톤 패턴은 쉽게 말해 생성 할 수 있는 객체의 인스턴스를 하나로 제한하는 패턴이다. 싱글톤 패턴을 따르는 클래스는 아무리 생성자를 여러 번 호출하더라도 최초의 생성으로 생겨난 인스턴스가 반환된다. 예시를 통해 이해해 보자. ..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EC%B0%B8%EC%A1%B0%EC%9D%98-%EC%A7%80%EC%97%AD%EC%84%B1/ [운영체제] 참조의 지역성(Locality of Reference)이란? 캐시의 지역성이란? 행렬 곱셈 최적화 방법 - 코참조의 지역성이란 컴퓨터 프로그램이 일정 기간 동안 특정한 메모리 위치 집합에 접근하는 경향이 있는 현상을 뜻한다. 쉽게 말해 참조의 지역성은 주소가 서로 가까운 명령어에 접근하는 경code-lab1.com 참조의 지역성(Locality of Reference)주기억장치와 메모리는 속도 차이가 크다. 이러한 속도의 차이를 극복할 수 있는 게 캐시 메모리이다. 이 캐시 메모리는 주기억장치와 메모리 사이에 위..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%EC%8A%A4%EC%9C%84%EC%B9%98/ 스위치(Switch)란?네트워크에서 스위치(Switch)는 컴퓨터 네트워크에서 데이터를 전송하고 연결하는 장비를 뜻한다. 스위치는 OSI 모델의 2계층인 데이터 링크 계층에서 동작하며, 주로 이더넷(Ethernet) 네트워크에서 사용된다. 스위치는 여러 개의 네트워크 장치(컴퓨터, 서버, 프린터 등)를 연결하고 이들 간에 데이터 패킷을 전송하며 데이터의 흐름을 제어한다. 스위치는 주로 MAC 주소를 사용해 연결된 장치들을 식별하고 데이터를 전달한다. 참고) [네트워크] 스위치와 라우터의 차이스위치란? 네트워크에서 스위치란 소규모 비즈니스 네트워크 안에서 컴퓨터, 프린..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/nat/ [네트워크] NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류 - 코드 연구소NAT는 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다. -위키백과-code-lab1.com NAT(Network Address Translation)란?NAT는 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다. -위키백과- NAT는 Network Address Translation의 줄임말로, 직역하자면 ..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/cpu-%EB%B3%B4%ED%98%B8%EB%A7%81/ [운영체제] [운영체제] CPU 보호링(CPU Protection ring)이란? 사용자 모드(User Mode)와 커널 모드(Kernel Mode위에서 특권 레벨에 대해 말했다. 특권 레벨이란 CPU의 권한 상태를 뜻한다. 이러한 특권 레벨에 따라 CPU가 어떤 명령을 실행 시킬 수 있는지 정해진다. 이러한 특권 레벨을 반지처럼 도식화한 것code-lab1.com 사용자 모드(User Mode)와 커널 모드(Kernel Mode) CPU는 사용자 모드와 커널 모드를 번갈아가면서 동작한다. 사용자 모드일때는 User Process를 실행시킨다. 이때는 하드디스크나 ..