[CS / 네트워크] DNS
·
Computer Science
DNS(Domain Name System) DNS란 사람이 읽을 수 있는 도메인 이름(ex. www.naver.com)을 IP 주소로 변환하는 시스템 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가진다. 구성요소 도메인 네임 스페이스(Domain Name Space) : 도메인 이름 저장을 분산하는 규칙(방법) 네임 서버(Name Server) : 해당 도메인 이름의 IP 주소를 찾는다. 리졸버(Resolver) : DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제고하는 기능 수행
[CS / 네트워크] IP(Internet Protocol)
·
Computer Science
IP(Internet Protocol) 네트워크 호스트는 IP에서 정의된 규약(Protocol)을 이용해 네트워크 상에서 정보를 주고 받으며, 이 정보는 패킷(Packet) 단위로 전달된다. IP Address는 IP protocol을 사용하는 호스트의 주소 정보이다. 문제점 비신뢰성 : IP는 프로토콜일 뿐이고 보낸 데이터의 흐름에 관여하지 않기 때문에 보낸 패킷이 제대로 갔는지 보장하지 않는다. 즉, 순서가 있는 여러개의 데이터를 보냈을 때 받는 데이터가 같은 순서로 받아질 것이란 보장이 될 수 없다. 혹은 중간에 패킷을 가지고 있던 호스트가 강제종료되어 패킷이 소실될 경우 패킷이 목적지까지 가지 못하고 소실될 수 있다. 비연결성 : 패킷을 받을 대상이 연결 상태임을 확인하지 않고 전송하기 때문에 받..
[CS / 네트워크] TCP / UDP
·
Computer Science
TCP / UDP : 전송계층에서 데이터를 보내기 위해 사용하는 프로토콜 TCP(Transmission Control Protocol) 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 연결형 서비스로 가상 회선 방식 제공 3-way handshaking과정을 통해 연결을 설정하고 4-way handshakin을 통해 해제한다. 흐름 제어 및 혼잡 제어 높은 신뢰성을 보장하지만 UDP보다 속도가 느리다 서버와 클라이언트는 1대1로 연결된다. UDP(User Datagram Protocol) 데이터를 데이터그램 단위로 처리하는 프로토콜 비연결형 서비스로 데이터그램 방식 제공 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다. 신뢰성이 낮지만 TCP보다 속..
[CS / 네트워크] OSI 7 계층
·
Computer Science
OSI 7계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다. 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문입니다. 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠수 있기 때문입니다. 1계층 - 물리계층(Physical Layer) 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송 데이터 전송 단위 : 비트 2계층 - 데이터 링크계층(DataLink Layer) 물리게층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역활 데이터 전송 단위 : 프레임 3계층 - 네트워크 계..
[CS / 운영체제] 데드락(DeadLock)
·
Computer Science
데드락 (DeadLock) 시스템의 잘못된 자원 관리로 멀티프로그래밍 환경에서 멈춰버리는 현상 다른 프로세스가 점유하고 있는 자원을 기다리면서 둘 이상의 프로세스가 무한대기에 빠지는 상태 데드락 발생조건 상호배제(Mutual exclusion) : 자원은 한 프로세스에 의해서만 점유가능 점유대기(Hold and wait) : 최소한 하나의 자원을 점유한 상태에서, 다른 프로세스가 점유한 자원을 기다리는 프로세스가 존재해야함 비선점(No preemption) : 다른 프로세스가 점유한 자원은 강제로 빼앗을 수 없음 순환대기(Circular wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음
[CS / 운영체제] 가상메모리(Virtual Memory)
·
Computer Science
가상메모리 (Virtual Memory) 실제 메모리 크기와 상관없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법 프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 기법 대표적인 가상 메모리 기법 : 페이징(paging), 세그멘테이션(segmentation) 페이징 (Paging) 고정크기로 분할된 페이지(page)를 통해 가상 메모리를 관리하는 기법 페이지(page) : 가상메모리를 고정 크기로 나눈 블록 프레임(frame) : 실제 메모리를 페이지와 같은 크기로 나눈 블록(= 페이지 프레임) 프레임과 페이지는 메모리를 일정한 크기의 공간으로 나누어 관리하는 단위이며, 프레임과 페이지의 크기는 같다.
[CS / 운영체제] 프로세스(Process)와 쓰레드(Thread)
·
Computer Science
프로세스 실행중인 프로그램 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것 데이터+메모리+쓰레드 쓰레드 프로세스 내에서 실제로 작업을 수행하는 주체 일반적으로 하나의 프로세스는 하나의 쓰레드 하나의 프로세스 내에서 둘 이상의 쓰레드가 동시에 작업을 수행하는 것 => 멀티쓰레드(자바 특징) 멀티프로세스와 멀티쓰레드 멀티프로세스 : 각 프로세스가 독립적인 메모리를 가지고 별도로 실행 멀티쓰레드 : 자신이 속한 프로세스의 메모리를 공유
[CS / 운영체제] 메모리 구조
·
Computer Science
메모리 구조 코드(Code) - 실행할 프로그램의 코드 데이터(Data) - 전역변수, 정적변수 스택(Stack) - 지역변수, 매개변수 힙(Heap) - 사용자의 동적 할당 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터(Data) 영역 프로그램의 전역변수와 정적변수가 저장되는 영역입니다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다. 전역변수(global variable) : 블록 외부에 선언되는 변수로 어느지역에서는 참조해서 사용할 수 있다. 프로그램이 종료되면 메모리에서 사라지는 장점이 있지만, 유지보수등의 관리가 어려워질 수 있다. 정적변..
[CS / 운영체제] 운영체제란?
·
Computer Science
운영체제란?(OS, Operation System) 시스템의 자원과 동작을 효율적으로 관리하는 소프트웨어 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어 등을 관리 종류 윈도우(Windows) 맥 OS(Mac OS) 리눅스(Linux) 기타 등등 운영체제의 위치 사용자 프로그램(Application)은 특정 운영체제에 맞춰서 만든다. 그러므로 한 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다. 하드웨어와 어플리케이션 사이에 운영체제가 위치하고 있다. 운영체제의 목적 처리능력 향상 : 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킨다. 반환시간 단축 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간을 단축시킨다. 사용가능도 향상 : 시스템을 사용할 필요가 있을 때 즉시 사용..