목록CS (39)
S E P H ' S
1. HTTP 1.0 POST 메소드의 추가로 클라이언트의 정보를 전달할 수 있게 됐다. HTML 뿐 아니라 동영상 등 다양한 정보를 주고 받을 수 있게 됐다. 단기 커넥션 RFC 2626(인터넷 연구, 개발 공동체 작업문서. 한번 부여된 문서의 번호는 수정되거나 중복 번호가 매겨지는 일이 없다.)에 의하면 서버는 반드시 응답을 요청 순서에 맞춰 전달해야 한다는 HTTP 프로토콜 규칙에 의해 HTTP Request는 연속적으로 발생하고 순차적으로 처리된다. 이로 인해 요청때마다 TCP 연결을 생성하게 되고 이 때문에 성능 제약이 발생한다. 2. HTTP 1.1 GET, POST 메소드 이외에 PUT, DELETE 메소드가 추가됐다. HTTP 1.0의 단기 커넥션 문제를 해결하기 위해 영속적 커넥션(Per..
인터넷 브라우저에 www.naver.com 을 입력한다면 어떤 일들이 일어나는지 과정을 통해 웹 통신의 큰 흐름에 대해 알아보도록 하자. 먼저 간략한 흐름을 파악해보자. 웹 브라우저에 URL을 입력하면 브라우저가 URL을 해석한다. 웹 브라우저가 DNS를 통해 도메인으로 IP를 조회한다. HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성한다. TCP/IP 연결을 통해 서버로 HTTP 요청을 전달한다. 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메시지를 생성한다. TCP/IP 연결을 통해 요청한 컴퓨터로 전송 도착한 HTTP 응답메시지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력된다. 1. 브라우저의 URL 파싱 URL을 입력받은 브라우저는 URL의 구조를 해석한다. 어떤 프로토콜로..
페이징은 프로세스를 물리적으로 일정한 크기로 나눠 메모리에 할당하는 기법이었다. 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠 메모리에 배치하는 것을 말한다. 세그멘테이션은 프로세스를 세그먼트(segment)의 집합으로 만들고 각 세그먼트의 크기는 일반적으로 같지 않다. 프로세스를 code + data + stack 으로 나누는 것 역시 세그멘테이션의 모습이다. 물론 code, data, stack 각각 내부에서 더 작은 세그먼트로 나눌 수 있다. 세그먼트를 메모리에 할당할 때는 페이지를 할당하는 것과 동일하다. 하지만 테이블은 조금 다르다. 세그먼테이션을 위한 테이블은 세그먼트 테이블이라고 한다. 그리고 세그먼트 테이블은 세그먼트 번호와 시작 주소(base), 세그먼트 크기(limit)을 엔트리..
페이징 외부 단편화로 인한 메모리 낭비는 매우 심하다는 것을 이전 포스트에서 살펴보았다. Compaction을 사용하면 단편화는 해결할 수 있지만 그로인해 발생하는 오버헤드와 비효율적인 성능으로 사용하기는 어렵다. 그래서 등장한 것이 페이징이다. 페이징은 hole을 가지고 해결하는 것이 아닌 프로세스를 작은 크기로 나눠 외부 단편화를 해결하려 했다. 페이징은 프로세스를 일정한 작은 크기로 나누는데, 프로세스 뿐 아니라 hole도 같은 크기로 나눈다. 이러한 작은 조각들의 크기를 맞춰 메모리에 할당한다. 하지만 하나의 프로세스는 연속적 동작을 수행하는데 이를 작은 조각으로 나눈다면 정상적으로 작동할까? 메모리상에 여러 곳에 흩어진 프로세스를 수행하기 위해 CPU를 속여야 한다. 이전 다중 프로그래밍을 살펴..