본문 바로가기
728x90

TIL & WIL25

[TIL] 크래프톤 정글 7주차 - Socket이란? Socket- 소켓은 프로세스들이 서로 통신할 수 있게 하는 창구 역할을 한다고 볼 수 있다. - 네트워크에 연결하기 위한 소켓은 정해진 프로토콜에 맞게 만들어져야 한다. 주로 OSI 7 layer의 네 번째 계층인 Transport Layer 상에서 동작하는 소켓을 사용하는데, TCP 상에서 동작하는 소켓은 TCP socket(또는 stream socket), UDP 상에서 동작하는 소켓은 UDP socket(또는 datagram socket)이라 부른다.Datagram Socket (UDP socket)- UDP(User Datagram Protocol)를 사용한다. - 비연결성(connectionless)를 지향한다 : 연결을 맺지 않고 데이터를 전송한다. 데이터를 보내기 전에 수신자와의 연결을 설.. 2024. 5. 6.
[WIL] 크래프톤 정글 6주차 - Malloc Lab 이번 주차는 CMU(Carnegie Mellon University)의 Malloc lab을 진행하는 주간이었다. 이 과제를 통해 malloc의 실제 동작 방식을 이해하고 free한 block을 어떤 방식으로 관리하고 할당해주는 지 배워보는 시간을 가졌다.Malloc 동작 방식의 종류출처 : https://dean30.tistory.com/441. implicit free list(묵시적 가용 리스트)- 묵시적 가용 리스트는 모든 블록을 헤더와 풋터를 통해 간접적으로 연결된 것처럼 보이도록 하는 방식으로 블록들을 관리한다. - 헤더와 풋터에는 같은 정보가 들어가는데, 그 안에는 해당 블록의 크기, 블록의 할당 여부 등이 들어있다. - 블록의 크기를 통해 다음 블록의 주소를 얻어낼 수 있으므로 묵시적으로 .. 2024. 5. 3.
[CS] 크래프톤 정글 6주차 - 이더넷(Ethernet) 이더넷(Ethernet)이란?- 이더넷은 원칙적으로 하나의 인터넷 회선에 유/무선 통신장비 공유기, 허브 등을 통해 다수의 시스템이 랜선 및 통신 포트에 연결되어 통신이 가능한 네트워크 구조를 말한다. - 이더넷은 OSI 7계층 중, 물리 계층 Physical layer(신호와 배션)과 데이터 링크 계층 Data link layer(MAC 패킷, 프로토콜 형식)에서 그 구성 형식이 정의된다.이더넷의 통신 방식- 여러 개의 호스트가 하나의 매체 / 채널을 공유할 때, 두 개 이상의 호스트가 동시에 채널을 사용할 경우 전기 신호의 충돌로 인해 통신을 할 수 없게 된다. 따라서 두 개 이상의 호스트가 채널을 공유할 때에는 원활한 통신을 위해 상호간의 약속이 필요하다. - 이더넷에서는 여러 방식 중, CSMA .. 2024. 5. 3.
[TIL] 크래프톤 정글 6주차 Paging & Demand Paging 페이징(Paging)페이징이란?- 페이징은 프로세스의 물리 주소 공간이 연속적이지 않게 하는 메모리 관리 계획법이다. - 페이징을 통해서 외부 단편화(external framentation)을 피할 수 있다.페이징 방법- 물리 메모리(physical memory)를 frame이라고 하는 고정된 크기의 블록들로 나눈다.(전체 메모리를 나눈다고 보면 됨) 이 때, frame의 크기는 시스템마다 크기가 다르고, 마지막 frame에서 내부 단편화(internal fragmentation)가 발생할 수 밖에 없다. - 논리 메모리(logical memory)를 page라고 하는 같은 크기의 블록들로 나눈다. - CPU에 의해 만들어진 모든 주소는 두 개의 파트로 나뉜다 : page number(p)와 page o.. 2024. 5. 2.
[CS] 크래프톤 정글 6주차 - DMA(Direct Memory Access) DMA란?- DMA(Direct Memory Access)는 특정 하드웨어 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능이다. 자세하게 설명하면, 원래 컴퓨터 장치들 사이에서 전송되는 모든 데이터는 중앙처리장치(CPU)를 거쳐가는 방식이다.(PIO 방식, Programmed Input / Output의 줄임말) 하지만 DMA를 통해 CPU를 거치지 않고, 메모리 버퍼, 포인터, 카운터 등을 사용하여 CPU의 도움 없이 DMA 컨트롤러를 사용하여 데이터를 직접 메모리(RAM 등)로 전송할 수 있는 기능이다. - DMA를 사용하게 되면 I/O 장치와 메모리 사이에 직접적인 데이터 이동이 가능해진다.DMA의 특징- 프로그램 수행 중 인터럽트의 발생 횟수 최소화 .. 2024. 5. 1.
[TIL] 크래프톤 정글 5주차 CS:app 9(가상 메모리 & 동적 메모리 할당) 9장 가상 메모리(virtual memory)- 한 시스템 내 여러 프로세스들이 CPU와 메인 메모리를 공유하게 되면서 여러 어려움을 겪게 된다. 메모리를 너무 많이 차지해서 프로세스가 중단되거나 느려질 수 있고, 메모리 손실에도 취약해질 수 있다. - 더 효율적이고 에러를 적게 갖기 위해 현대의 시스템은 가상 메모리(virtual memory) VM 이라고 알려진 메인 메모리의 추상화를 제공한다. - 가상 메모리는 다음과 같은 3개의 중요한 기능을 제공한다. 1) 메인 메모리를 디스크에 저장된 주소공간에 대한 캐시로 취급해서 메인 메모리 내 활성화된 영역만 유지하고, 필요에 따라 데이터를 디스크와 메모리 간에 전송하는 방법으로 메인 메모리를 효율적으로 사용한다. 2) 각 프로세스에 통일된 주소공간을 제.. 2024. 4. 26.
728x90