CS 스터디

Computer Science/Computer Network

브라우저 URL 검색 과정

www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는가? 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저 렌더링 과정을 거쳐 깃허브 화면이 나타나게 된다. “캡슐화”, “비캡슐화” 과정을 거쳐서 이뤄지게 된다. Web Cache 사용자가 같은 웹 페이지를 여러 번 요청할 경우, 브라우저는 이미 다운로드한 자원을 다시 서버에서 다운로드하지 않고 캐시된 자원을 사용하여 웹 페이지를 보여준다. 페이지 로딩 속도가 빨라지고, 네트워크 대역폭을 절약할 수 있다. 1. Browser Cache(사설 브라우저 캐시) 클라이언트 로컬 컴퓨터에 저장되는 캐싱 방식이다. 방문한 웹 페이지의 이미지, 스크립트, 스타일 시트 등의 자원들을 ..

Computer Science/Operating System

MMU, TLB

MMU(Memory Management Unit) 가상메모리 시스템에서 CPU는 가상 주소를 통해 물리 주소에 접근하여 작업한다. 이 때, 가상 주소를 물리 주소로 변환하는 하드웨어 디바이스를 MMU라고 한다. 가상 메모리 주소(논리 메모리 주소)를 실제 메모리 주소로 변환하는 역할을 한다. OS를 통해 페이지 테이블에 접근하고, 변환 작업을 진행한다. 일반적으로 CPU 내에 존재하지만, 별도의 통합 칩 (IC)에서 작동하기도 한다. Memory Protection 기능을 제공한다. 보호되는 메모리 영역에 접근하지 못하게 한다. 메모리의 실제 배열과 상관 없이 연속된 메모리로 취급할 수 있게 한다. TLB(Translation Lookaside Buffer) 자주 참조되는 Page Table Entry를..

Computer Science/Computer Network

HTTP 상태 코드

클라이언트가 보낸 HTTP 요청에 대한 처리 상태를 응답에서 알려주는 기능이다. 1XX(Informational) “요청이 수신되어 처리중” 거의 사용되지 않는다. 2XX(Successful) “클라이언트의 요청을 성공적으로 처리” 200 OK GET 요청이 성공한 경우 201 Created POST 요청이 성공한 경우 ‘새로운 리소스가 생성됨’을 의미한다. 202 Accepted 요청이 접수되었으나 처리가 완료되지 않은 경우 ex) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리하는 작업 잘 사용하지 않는다. 204 No Content 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없는 경우 주로 save 작업에 해당한다. 서버가 클라이언트에게 전달해야 하는 데이터가 없다. ..

Computer Science/Operating System

메모리 계층구조

메모리 계층구조(Memory Hierarchy) 각각 다른 성능과 특징을 가지는 여러 메모리가 존재한다. 용도에 따라 적재 적소에 사용하면 최적의 효율을 낼 수 있다. 레지스터(Register) CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치 CPU(Central Processing Unit) : 중앙처리 장치 컴퓨터의 4대 주요 기능(기억,해석,연산,제어)을 관할하는 장치이다. 고속 메모리로, 소량의 데이터를 처리할 때 사용한다. CPU는 자체적으로 데이터를 저장할 방법이 없기에 레지스터를 거쳐야 한다. CPU 내부 레지스터 종류 PC(Program Counter) 다음에 실행할 라인의 주소를 가지고 있는 레지스터 AC(ACumulator) 연산 결과 데이터를 일시적으로 저장하..

Computer Science/Computer Network

DHCP

DHCP(Dynamic Host Configuration Protocol) DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다. 쉽게 말해서 DHCP 서버가 클라이언트의 IP주소, 서브넷 마스크, DNS 서버 IP주소, 임대 기간 등 다양한 네트워크 정보를 자동으로 할당해주는 프로토콜이다. OSI Layer 7계층 중 Application Layer에 속한다. “Plug and Play(PnP) protocol”이라고 불린다. 꽂기만 하면 사용할 수 있는 ‘즉시 시작’이라는 뜻이다. 연결 후 작동하는 프로토콜이다...

Computer Science/Computer Network

IP(IPv4, IPv6), NAT

IP(Internet Protocol) Network Layer에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 물리적으로 떨어진 두 호스트가 데이터를 정확하게 송수신 하기 위해 IP 주소를 사용한다. Routing과 Forwarding 이 매우 중요하다. 다른 게시글 업로드 후 설명 예정 신뢰성을 확보하지 않는다. TCP와 같은 신뢰성 있는 프로토콜과 함께 사용한다. IP(Internet Protocol)주소 네트워크(인터넷) 상에서 데이터를 주고받기 위해 모든 컴퓨터들이 가지는 각자의 주소를 의미한다. 고정 IP 컴퓨터가 고정적으로 가지고 있는 IP이다. 한 번 부여받으면 반납하기 전까지 변하지 않는다. 주로 인터넷 사이트를 운영할 때 사용한다. 유동 IP 컴퓨터에 고정된 IP를 부여하지..

Computer Science/Computer Network

OSI 7 계층

OSI 7 계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 통신이 일어나는 과정을 단계별로 파악할 수 있다. 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 고칠 수 있다. 현대 인터넷은 TCP/IP Model을 따른다. 개선된 TCP/IP 모델은 5계층을 가진다. 전체적인 통신 과정 송신 : 각 Layer를 거치며 데이터에 헤더 정보를 추가한다. 수신 : 각 Layer별로 헤더 정보를 해석하여 원하는 데이터, 정보를 파악한다. 1계층 - Physical Layer(물리 계층) 컴퓨터는 0과 1만을 인식할 수 있다.(전기적 ON/OFF 신호) 따라서, 데이터를 전기 신호로 바꾸어 전송하는 계층이다 단순하게 데이터 전달의 역할..

Computer Science/Operating System

Segmentation(세그멘테이션)

Segmentation(세그멘테이션) 일정한 크기로 자르는 Paging과 달리, PCB, Code, Data, Stack 영역 등 논리적 내용을 기반으로 프로그램을 나누는 기법이다. 나눠진 하나하나를 Segment라고 부른다. PCB, Code, Data 영역은 공유 자원으로 쓰인다. 따라서, 프로세스 간 sharing 에 장점을 가진다. Segment는 크기가 다 다르다. 즉, Dynamic Partitioning에 해당한다. 따라서, 외부단편화가 발생한다. 연속된 공간에 존재하지 않아도 된다. 장점 내부단편화를 해결했다. 보호와 공유 기능을 수행한다. 단점 외부단편화가 발생할 수 있다. 너무 큰 단점이라 Segmentation을 잘 사용하지 않는다고 한다. Virtual Address & Segmen..

Computer Science/Operating System

가상 메모리(Virtual Memory), 페이징(Paging)

가상메모리(Virtual Memory) 주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술이다. 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이다. 실행에 필요한 부분만 메모리에 올려 실행한다. CPU는 TLB, MMU 를 사용하여 가상 메모리 주소에 접근한다. Paging 또는 Segmentation 을 사용한다. 장점 실제 메모리보다 큰 프로그램을 실행할 수 있다. 한정된 메모리 내에서 더 많은 프로그램을 동시에 실행할 수 있다. 단점 가상 메모리로 실행하는 것은 물리 메모리로 실행하는 것보다 느리다. Paging(페이징) 물리 메모리를 일정한 크기인 Frame으로 나누고, 논리 메모리를 Frame과 동일한 크기의 Page로 나눈다. 이후..

Computer Science/Operating System

내부 단편화, 외부 단편화

Internal Fragmentation(내부 단편화) Partitioning 상황에서 발생한다. Partition의 크기가 프로세스의 크기보다 커서 메모리가 남지만, 다른 프로세스가 사용할 수 없는 상태를 말한다. 100MB의 공간(Partition)에 Process C를 할당했다. 20MB의 여유 메모리가 존재하지만 Process C 에게 할당되어 사용할 수 없다. 이를 내부단편화라고 한다. External Fragmentation(외부 단편화) 남아있는 메모리의 크기가 실행하고자 하는 프로세스보다 크지만, 연속적이지 않은 공간에 존재하여 실행하지 못하는 현상을 의미한다. 50MB의 두 여유 메모리가 존재하고 총 100MB의 여유 메모리가 존재한다. 그러나, 연속적이지 않은 공간에 존재하여 80MB인..

호준송
'CS 스터디' 태그의 글 목록