CS34 [네트워크] TCP vs UDP UDP (User Datagram Protocol) - 신뢰성이 낮고 비연결형 서비스를 제공 - 오류 제어, 흐름 제어, 혼잡제어를 모두 하지 않음 - 데이터의 전송순서가 바뀔 수 있음 - TCP와 비교시 속도 매우 빠름 - 헤더가 8Byte로 매우 작음 - RIP과 같은 경로 갱신 프로토콜에 사용 TCP (Transmission Control Protocol) - 높은 신뢰성을 보장하고 연결형 서비스를 제공 - 오류 제어, 흐름 제어, 혼잡제어를 함 - 데이터의 전송순서가 바뀌지 않음 - 속도가 느림 - 헤더가 20Byte로 큼. 헤더는 신뢰적 통신을 보장하는 Sequence number와 ACK로 구성. - 3-way handshaking을 통해 신뢰성 있는 연결 보장 3-way Handshaking.. 2021. 8. 30. [네트워크] OSI 7계층 및 TCP/IP 프로토콜 OSI 7계층 네트워크에서 통신이 일어나는 과정을 7단계로 표현한 것이다. 7계층으로 나눈 이유는 통신의 흐름을 쉽게 알아볼 수 있고, 특정 계층에 오류가 나면 다른 단계를 건드릴 필요 없이 해당 계층만 고칠 수 있기 때문이다. 물리 → 데이터 링크 → 네트워크 → 전송 → 세션 → 표현 → 응용 계층 순이다. Summary 7 계층(응용 계층) : 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층 6 계층(표현 계층) : 데이터의 형식(Format)을 정의하는 계층 5 계층(세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층 4 계층(전송 계층) : 최종 수신 프로세스로 데이터의 전송을 담당하는 계층 3 계층(네트워크 계층) : 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층 .. 2021. 8. 30. [운영체제 OS] Virtual Memory Management Virtual Memory 실제 메모리보다 더 큰 용량을 사용하기 위해 논리주소와 물리주소를 매핑하여 메모리 관리하는 방식 마치 메모리가 무한대인 것처럼 동작하게 하는 Swapping이 핵심이며 여기서는 Paging단위를 사용 Demand Paging 프로세스의 모든 페이지가 아닌 순간순간 필요한 페이지만 메인 메모리에 적재하고, 나머지는 모두 가상 메모리에 적재하는 방식 페이지가 메인 메모리(물리적 메모리)에 적재되어 있는 않은 상태를 Invalid로 표시 Page Fault 지금 필요한 페이지가 실제 메모리에 올라와있지 않을때 발생 과정 1. 논리적 주소 요청이 들어온다. 2. 페이지 테이블에 접근해서 Valid/Invalid 확인했더니 Invalid여서, Trap을 걸어 운영체제에게 요청한다. 3... 2021. 8. 25. [운영체제 OS] Memory Management (2) Paging 프로세스 단위로 메모리에 적재하는 것이 아닌 더 작은 단위(페이지 단위)로 메모리에 적재하는 방식 장점 연속적이지 않은 공간도 사용가능하므로 외부 단편화 문제를 해결 단점 프로세스 적재시 결국 페이지라는 특정단위로 관리하므로 내부 단편화 문제 발생 페이지 단위를 작게하여 내부 단편화 문제도 해결할 수 있지만, 페이지 매핑과정이 많아져 오버헤드 증가 Segmentation 고정 단위로 메모리에 적재하는 것이 아닌 가변크기의 논리적 단위인 세그먼트 단위로 메모리에 적재하는 방식 장점 가변 크기로 할당하므로 내부에서 낭비되는 공간이 없어 내부 단편화 문제를 해결 단점 서로 다른 크기의 세그먼트들이 메모리에 적재되고 제거되는 일이 반복되다보면 결국 외부 단편화 문제 발생 위 방법들의 문제를 해결하기.. 2021. 8. 25. [운영체제 OS] Memory Management (1) Swapping이란? 메인메모리에 적재된 프로세스를 하드디스크나 SSD에 내리고, 다른 하나를 메인메모리에 올리는 것 프로세스를 메인메모리에서 내리는 것이 Swap out, 올리는 것이 Swap in Context Switch가 많이 일어나지만 부족한 메모리 공간을 효율적으로 사용 가능 (마치 메모리가 무한대인 것처럼 동작하며 Virtual Memory Management에서의 핵심) 메모리 단편화란? (Memory Fragmentation) 프로세스들이 메모리에 적재되고 제거되는 일이 반복되다보면, 프로세스들이 차지하는 메모리 틈 사이에 사용 하지 못할 만큼의 작은 자유공간들을 의미한다. 크게 외부단편화와 내부단편화로 나뉜다. 외부단편화 자유공간들을 모두 합치면 충분한 공간이 있지만, 그것들이 작게 분.. 2021. 8. 25. [운영체제 OS] Memory 구조 메모리 계층 구조 메모리 공간은 계층 구조를 가지며 다음과 같은 순으로 CPU와 멀어진다. 레지스터 → CPU 캐시 메모리 → 메인 메모리 → 하드디스크 CPU로부터 멀어질수록 데이터를 저장하는 용량이 커지지만 접근 속도는 느려진다. 메모리 공간 요소 메모리는 아래와 같이 크게 총 4가지 영역(Code, Data, Heap, Stack)으로 구분된다. Code 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 Data 프로그램이 실행될 때 생성되고 프로그램이 종료되면 시스템에 반환되며 전역변수, 정적변수, 배열, 구조체 등이 저장되는 영역 Heap 필요에 의해 메모리를 동적 할당하고자 할 때 사용하는 동적 데이터 영역 Stack 지역변수, 매개변수, 리턴 값 등이 잠시 사용되었다가 사라지는 .. 2021. 8. 25. 이전 1 2 3 4 5 6 다음