본문 바로가기

CS16

[컴퓨터 구조] 메모리 계층 구조 메모리 계층 구조란? 메모리 계층 구조란 메모리를 필요에 따라 여러가지 종류로 나누어 둠을 의미한다. 이때 필요한 대부분의 경우 CPU가 메모리에 더 빨리 접근하기 위함이다. -위키 백과- 메모리 계층 구조는 어떻게하면 컴퓨터를 최대한 빠르고 저렴하게 만들까에 대한 고민으로 고안된 구조이다. 보통 싼 메모리일 수록 용량이 크지만 느리고, 비싼 메모리는 용량이 작지만 빠르다. 그래서 성능이 좋고 비싼 메모리는 CPU 바로 옆에 작게 만들고, 느리고 용량이 큰 메모리는 먼 곳에 둔다. 이러한 원칙으로 만든 구조가 메모리 계층 구조이다. 메모리 계층 구조 메모리 계층 구조는 Register, Cache, Memory, Disk로 나눌 수 있다. 사진에서 볼 수 있듯 위로 갈수록 빠르고 용량이 작고, 아래로 갈.. 2022. 9. 28.
[운영체제] 멀티 프로세스(Multi-Process)와 멀티 스레드(Multi-Thread) 프로세스(Process) 프로세스는 CPU(프로세서)에 의해 실행되는 프로그램이다. 그림으로 보면 아래와 같다. 프로그램은 application 개발자가 작성한 코드이다. 프로그램은 실행이 되지 않는다면 그냥 데이터의 집합일 뿐이다. 이 프로그램을 작동 시키려면 CPU(프로세서)에서 코드를 읽고 명령어를 실행 시켜야한다. 하지만 현대의 거의 모든 컴퓨터들은 폰노이만 구조를 하고 있기 때문에 디스크에 있는 프로그램을 바로 CPU로 전달할 수 없다. 그래서 메인 메모리에 프로그램을 올리고 메모리에서 코드들을 한줄씩 CPU에 전달하여 실행 하게된다. 이렇게 메모리에 올려저서 실행 중인 프로그램을 프로세스라고 한다. (메모리에 올라간 것 자체가 실행 준비 상태로 볼 수 있기 때문에 메모리에 올라가는 자원 할당 .. 2022. 9. 28.
[네트워크] OSI 7 Layer OSI 7 Layer OSI 7 Layer란 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 즉, 다양한 컴퓨터 간 데이터 전송을 지원할 수 있는 추상 모델을 표준화한 것이다. 그렇다면 OSI 7 계층은 왜 필요할까? 컴퓨터(네트워크) 간 통신을 하려면 생각보다 많은 과정들이 필요하다. 예를 들자면 컴퓨터 간 식별도 해야하고 어떤 방식으로 전송을 할건지, 데이터에 손상은 없는지 확인하는 작업 등을 해야한다. 필요한 각 과정들을 표준화하여 7개의 계층으로 분리하여 각 계층 간 상호 작동하는 방식을 정해 놓은 것이다. 이는 실제로 쓰이는 모델이라기보다는 네트워크 통신을 할 때 이러한 프로토콜이 필요하다고 정해놓은 스펙에 불과하다. 실제로 우.. 2022. 9. 28.
[디자인 패턴] 빌더(Builder) 패턴 0. 이 글을 쓰게 된 이유 남의 코드들을 보면서 빌더 패턴을 처음 접했다. 많은 개발자들이 이 패턴을 쓰는 이유와 제대로 알고 쓰고 싶어서 책을 읽고 공부한 내용을 정리해본다. 1. 빌더 패턴 빌더 패턴에 대해서 공부를 해보니 평소에 사용하는 빌더 패턴(Effective Java에서 설명하고 있는)과 GoF의 빌더 패턴의 목적이 조금 다르다는 것을 알게되었다. Effective Java에서 설명하는 빌더 패턴 객체 생성을 가독성 있고 유연하게 하기 위한 목적 Gof 디자인 패턴의 빌더 패턴 객체의 생성 알고리즘과 조립 방법을 분리하는 것이 목적 이 글에서는 Effective Java에서 설명하는 빌더 패턴의 목적 위주로 설명한다. 1.1 Effective Java 빌더 패턴 Effective Java .. 2022. 9. 28.