728x90

Computer Science 25

[운영체제] 싱글 스레드와 멀티 스레드

싱글 스레드 하나의 프로세스 내에서 하나의 스레드만 실행되는 것을 말합니다. 그렇기 때문에 하나의 PC레지스터와 하나의 스택을 가지고 있습니다. 멀티 스레드 하나의 프로세스 내에 여러 스레드를 구성해서 각각의 스레드가 하나의 작업을 처리하는 것을 말합니다. 각각의 스레드는 PC 레지스터와 스택을 따로 가지고 있으며, 쓰레드 간에 데이터 영역이나 힙 영역을 공유하며 동작합니다. 자원 공유를 통해 자원의 중복을 최소화하여 관리할 수 있습니다. 싱글 스레드의 장단점 장점 스레드 간의 자원 공유가 없기 때문에 그에 대한 동기화에 대해 신경쓰지 않아도 됩니다. 스레드 간의 context switching이 일어나지 않으므로 이 과정에서 발생하는 오버헤드를 방지할 수 있습니다. 단점 여러개의 CPU를 활용하지 못합..

[네트워크] DNS 와 Round Robin / 부하 분산

DNS (Domain Name System) 우리는 보통 네이버에 접속할 때 naver.com 이라는 영문 URL을 사용해서 접속합니다. 하기만 기본적으로 접속을 위해선 URL은 IP주소를 통해 연결되어야 합니다. DNS 는 문자로 된 도메인 이름과 실제 IP 주소를 확인해 변환할 수 있는 시스템입니다. 만약 DNS 서버가 없었다면 어떤 사이트에 접속할 때 123.45.67.89 이런 식의 IP주소를 외워둬야 하게 되겠죠... DNS 과정 1. DNS Query DNS 서버에서 도메인 이름에 해당하는 IP 주소를 요청하여 받아옵니다. 이때 DNS 서버에 접속하는 사용자에 대해 Round Robin 방식을 이용해 IP를 할당하게 됩니다. 2. IP communication IP 주소를 받아오면 사용자는 리..

[네트워크] HTTP와 HTTPS의 동작 과정

우리가 Chrome 을 실행시켜 주소창에 특정 URL 값을 입력시키면 어떤 일이 일어나는가? HTTP의 경우 동작 과정 1. 브라우저는 DNS 서버로 가서 그 주소에 해당하는 ip주소를 찾아서 이를 받아온다. 2. 목적지의 ip를 알게 되었으니 TCP 통신을 통해서 소켓을 개방한다. 3. 브라우저는 해당 사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메시지를 서버로 전송한다. 4. 만약 라우팅 중 프록시 서버를 만나는 경우 웹 캐시에 저장된 정보를 응답 받게 된다. 5. 프록시 서버를 만나지 못하여 특정 URL을 서빙하는 서버에 도달하게 되어 이 메세지를 받은 서버는 클라이언트의 요청을 승인하고, 요청에 맞는 데이터를 전송한다. 6. 서버는 웹사이트의 파일들을 데이터 패킷으로 브라우저에 전송하고..

[네트워크] HTTP와 HTTPS

HTTP와 HTTPS HTTP (HyperText Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신 규약 이는 텍스트 교환이기 때문에 누군가가 네트워크에서 신호를 가로채면 내용이 노출된다는 보안적인 문제가 존재한다. 비연결성 프로토콜이며 REQUEST에 대한 RESPONSE만 전달되며 연결을 유지하지 않는다.(Hyper Text를 주고 받기 위해 만들어져서 따로 연결을 할 필요가 없음) HTTPS (HyperText Transfer Protocol Secure) 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTPS는 텍스트를 암호화한다. (공개키 암호키 방식을 사용) HTTP의 문..

[네트워크] UDP

UDP (User Datagram Protocol) UDP 통신은 데이터를 데이터그램 단위로 처리하는 방식으로, 비연결형이며 신뢰성 없는 전송 프로토콜이다. TCP에 비해 속도가 빠르나 TCP에서는 제공하는 흐름제어, 오류제어, 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다. TCP와 UDP가 등장하게 된 배경 IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있다. IP에서 오류가 발생한다면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다. 1번을 해결하기 위하여 포트 번호가 나오게 됐고, ..

[네트워크] TCP (흐름 제어 / 혼잡 제어)

TCP (Transmission Control Protocol) TCP 통신은 신뢰적이고 순차적인 연결 방식이다. UDP에 비해선 느리다. unreliable한 인터넷을 통해 종단간에 신뢰성 있는 바이트 스트림을 전송하도록 설계되었음. TCP는 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어짐. 이때 연결 설정은 3-way handshake를 통해서 행해짐. 흐름제어 (Flow Control) : 송신측(호스트) - 수신측(호스트) - 수신측이 송신측보다 데이터 처리 속도가 빠르면 문제가 없지만, 송신측이 더 빠를 경우 문제가 발생한다. - 수신측의 제한된 저장 용량을 초과한 이후에도착하는 데이터는 손실 될 수 있다. 만일 손실 된다면 불필요하게 응답과 데이터 전송이 송/수신 측 간..

[네트워크] TCP 3-way handshake & 4-way handshake

TCP 3-way handshake : 연결 성립 1) 클라이언트가 서버에 접속을 요청하는 SYN(client_isn) 패킷을 보냄. 2) 서버는 클라이언트의 요청인 SYN(client_isn)을 받고 클라이언트에게 그 요청을 수락한다는 ACK(client_isn + 1)와 SYN(server_isn) 패킷을 보냄. 3) 클라이언트는 서버의 수락 응답인 ACK(client_isn + 1)과 SYN(server_isn) 패킷을 받고 ACK(server_isn + 1)을 서버로 보냄. 이렇게 3개의 단계를 거치면 연결이 성립하게 됨. TCP 4-way handshake : 연결 해제 1) 클라이언트는 서버에 연결을 종료한다는 FIN flag를 보냄. 2) 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트..

[네크워크] HTTP의 GET과 POST 비교

GET과 POST 모두 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요철항 때 사용하는 방식. 그러나 각각의 특징을 이해아고 기술의 목적에 맞게 알맞은 용도로 사용해야한다. - 프로토콜 : 복수의 컴퓨터 사이 또는 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약 GET GET방식은 요청하는 데이터가 HTTP Request Message의 Header 부분에 담겨서 전송된다. 따라서 url 상에 ? 뒤데이터가 붙어 request를 보내게 되는 것이다. GET 방식은 캐싱(caching: 캐시로 데이터를 가져와 접근하는 방식)을 사용하기 때문에 POST보다 빠르다. 이러한 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다. 또한 보안이..

[네트워크] OSI 7계층

계층을 나누는 이유? 통신이 일어나는 과정을 단계적으로 알 수 있고, 어느 한 단계에 이상이 생기면 그 부분만을 수정할 수 있기 때문이다. OSI 7계층 1) Physical (물리) 물리적 매체를 통해 데이터를 전기적인 신호인 비트 흐름으로 전송하기 위한 기능. 데이터를 전송하는 역할만 함. - 리피터, 케이블, 허브 등 2) Link (데이터 링크) 물리 계층으로 송수신 되는 정보를 관리해 안전하게 전달되도록 도와주는 역할. 오류없이 전달하기 위한 제어정보를 추가. - 브릿지, 스위치 등 3) Network (네트워크) 데이터를 목적지 까지 가장 안전하고 빠르게 전달하는 기능 수행. 라우터를 통해 이동할 경로를 선택해 IP주소를 지정하고, 해당 경로에 따라 패킷을 전달. 라우팅, 흐름 제어, 오류 제..

[운영체제] 캐시의 지역성

캐시의 지역성의 원리 캐시메모리는 속도가 빠른 장치와 느린 장치간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 이러한 역할을 수행하기 위해선 CPU가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 함. (캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모있는 정보가 얼마나 들었느냐에 좌우되기 때문) 이때, 적중률(cache hit rate)을 극대화 시키기 위해서 데이터 지역성(Locality)의 원리를 사용 Locality의 전제 조건 : 프로그램은 모든 코드나 데이터를 균등하게 access하지 않는다. (어느 한 순간에 특정 부분을 집중적으로 참조하는 특성) 이는 대표적으로 시간 지역성과 공간지역성으로 나뉨. - 시간 지역성: 최근에 참조된 주소의 내용은 곧 다..

728x90
반응형