DNS(Domain Name System)도메인 이름을 IP 주소로 변환해주는 시스템 DNS의 구성요소도메인 네임 스페이스도메인에 해당하는 IP를 찾기 위해 사용하는 규칙(닷을 기준으로 계층적 구조를 이룸)네임 서버도메인 정보에 대응하는 IP를 관리하는 서버계층 구조로 이루어져 있으며 상위 계층은 하위계층의 IP주소를 반환하고 최하위 SLD에서 IP 주소를 반환함리졸버DNS Query를 DNS 서버에 요청하거나 응답을 캐싱 DNS 서버의 계층 구조[계층 구조에 따른 분류]1. Root DNS Server설명: DNS 계층 구조의 최상단에 있는 서버입니다.역할: 사용자가 요청한 도메인의 **최상위 도메인(.com, .net, .kr 등)**에 해당하는 **TLD 서버의 위치(IP)**를 알려줍니다.예시: ..

OSI 7계층은 컴퓨터 네트워크 통신이 일어나는 7단계의 표준 프로토콜이다.네트워크 장비마다 다른 통신 방식으로 발생하는 통신 충돌 현상을 방지하고자 표준 프로토콜을 만들었고,이를 통해 통신의 과정을 단계별로 분류하여 흐름 파악을 용이하게 하고, 문제 상황 발생시 각 단계에서 대응할 수 있는 구조를 갖추게 되었다. 각 계층의 특징1. 물리계층데이터를 전기적 신호로 변환하여 전송하는 오로지 전기적 신호로 변환해서 주고 받는 기능만 존재(데이터를 어디에 보낼지, 어떻게 보낼지에 대한 규칙을 정하는 것은 아님 )PDU : 비트케이블, 허브, 리피터, 랜이 해당 2. 데이터 링크 계층네트워크 장비(포인트 투 포인트) 간의 데이터 전송CRC 기반의 오류 제어, 흐름제어를 담당함CRC는 오륨 검출 코드를 의미함m..

동기화 도구이전 포스팅의 Pererson’s Solution을 보면 이론적으로 완벽하지만 entry section, critical section, exit section에서 사용하는 명령어가 Atomic 하지 않아 기대 결과가 달라졌다.이는 기계어의 관점에서 또는 저급 언어 수준에서 구현이 되지 않았기 때문인데 이렇게 개발자가 기계어 수준에서까지 개발을 하는 일은 쉬운 일이 아니기에 고급 언어에서 아래와 같은 동기화 도구를 제공한다. 각 동기화 도구에 대해 알아보자. Mutex LockSemaphoreMonitor Mutex Lockmutex란 mutual exclusion에서 나온 용어로 상호배제를 목표로 한다. lock을 acquire(획득)한 프로세스나 스레드만 critical section에 접..

동시성 문제동시(concurrent)에 공유 데이터에 access(접근)하여 데이터를 manipulate(조작)하는 과정에서 데이터의 일관성이 깨지는 문제 동시성 문제의 근본 원인프로세스나 스레드는 instruction 실행 도중 intruppted(중단) 될 수 있고 CPU의 코어는 다른 프로세스나 스레드 작업을 할당 받을 수 있다. 즉, 두개 이상의 프로세스나 스레드를 동시에 수행할 때 CPU의 context-switching으로 인해 발생한다는 것이다. 아래 간단한 예제를 통해 동시성 문제의 한 예를 보자.public class ConcurrencyProblem { public static int COUNT = 0; public static void main(String[] args) { ..

프로세스는 실행 중인 프로그램을 의미하며, 스레드는 경량 프로세스를 의미한다.스레드는 프로세스에 비해 더 적은 컴퓨터 자원을 필요로한다.프로세스가 OS를 통해 자원을 할당 받는다면, 스레드는 프로세스를 통해 자원을 할당 받는다.스레드는 프로세스 내부에서 메서드를 기준으로 한 실행 흐름을 분리한 것이다.자바로 예를 들면 Thread 클래스의 run 메서드를 기준으로 실행 흐름이 분리되어 자원을 할당 받아 수행되는 것이다. 멀티 프로세스와 멀티 스레드는 다중 코어 환경에서 컴퓨터 자원을 효율적으로 사용할 수 있는 환경을 보장한다.멀티 프로세스와 멀티 스레드를 아래 3가지 관점에서 비교 해보도록 하겠다. 자원 관리컨텍스트 스위칭병렬성과 동시성 자원 관리 멀티 프로세스 환경에서는 위와 같이 프로세스 마다 독립..
프로세스실행 중인 프로그램프로그램이 CPU에 의해 수행되고, 메모리에 할당된 상태프로세스는 작업을 완료하기 위해 CPU, memory, file, I/O devices와 같은 자원을 필요로 한다.각각의 프로세스는 독립된 메모리 영역을 할당 받는다.* 프로그램 : 하드웨어를 동작시키는 명령어 집합 프로세스의 구조 프로세스는 메모리에서 위와 같이 여러개의 구역으로 나뉜다.코드 영역(Text Section) : 실행 코드(명령어)가 저장됨데이터 영역(Data Section) : 전역 변수, 정적 변수가 저장되는 영역힙 영역(Heap Section) : 동적으로 할당된 메모리가 저장되는 영역스택 영역(Stack Section) : 함수 호출 시 지역 변수, 매개변수, 리턴 주소 등이 저장되는 영역* JVM으로..

메모리 단편화외부 단편화 첫번째 단계에서 process5, 8, 2가 할당되어있다.process8을 종료 시켜 중간에 비어있는 메모리 영역을 확보하였다.이후 process9를 실행시켜 메모리 영역에 할당하였고, 그런 다음 process5를 종료 시켜마지막 단계처럼 두개의 비어있는 영역을 확보하였다. 이때, process8을 메모리에 할당할 수 있을까??두 비어있는 영역을 합쳐놓으면 process8을 할당할 만큼 충분한 공간이지만 연속적으로 존재하지 않기에 메모리 영역에 할당하지 못한다. 이와 같이 메모리에 충분한 공간이 있지만 연속적으로 존재하지 않아 데이터를 할당하지 못하는 상황을 외부 단편화 라고 한다. 내부 단편화 내부 단편화는 메모리 영역을 여러 프레임으로 나누어 각 프레임에 프로세스를 나누어 할..

메모리는 고유한 주소를 가지고 있는 바이트 배열로 구성된 데이터로 구성된다.CPU는 메모리 주소로 접근하여 저장된 명령어를 가져와 처리함으로써 프로그램을 동작 시킨다.Logical Address와 Physical Address의 구분CPU가 프로세스를 수행하기 위해 사용하는 메모리 주소는 실제 물리적 메모리 주소와 다르다.우리는 이 메모리 주소를 아래와 같이 구분한다.Logical Address : CPU가 생성하는 프로세스의 메모리 주소Physical Address : 실제 메모리에 할당되는 물리적 주소 먼저, 메모리 주소를 왜 구분하는지 알아보자.이를 이해하는 것이 앞으로 설명할 개념을 이해하는데 큰 도움이 될 것이다. 1. 물리적 메모리 주소 추적의 어려움물리적 메모리 주소는 변동될 수 있어, CP..