동시성과 병렬성 동시성(병행성) 하나의 코어에서 여러 작업을 번걸아가며 처리하는 방식 빠른 CPU 처리속도로 여러 프로그램가 동시에 작동하는 것처럼 느낌 문제점 - 프로세스간 메모리 공유 (잦은 콘텍스트 스위칭으로 인한 오버헤드) 병렬성 CPU가 여러개 있어서 각 CPU에서 작업을 동시에 처리하는 방식 물리적인 시간 관점에서 실제로 여러 작업이 동시에 실행 프로세스 동기화 프로세스 동기화 공유 자원에 여러 프로세스가 동시 접근해도 데이터의 일관성이 유지되도록하는 매커니즘 임계 영역 공유 자원에 접근할 수 있고 접근 순서에 따라 결과가 달라지는 코드 영역 레이스 컨디션 (경쟁 상태) 공유 자원에 여러 프로세스들이 동시에 접근해서 경쟁하는 상태 최종 연산결과는 마지막에 공유 데이터를 다룬 프로세스가 누구인지..
IP란? IP(Internet Protocol) 란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다. IPV4와 IPV6 IPV4 IPv4는 IP version 4의 약자로 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 일반적으로 172.16.254.1와 같이 마침표로 구분된 4개의 숫자가 있고 10진수 형식으로 표시된다. 4바이트(32비트)로 이루어지며 약 43억개의 주소를 가진다. 인터넷 사용자 수 급증으로 인한 IPv4 주소의 고갈 문제를 해결하기 위해 IPv6가 등장한다. IPV6 IPv6는 IP version 6의 약자로, IPv4의 주소체계를 128비트 크기로 확장한 차세대 인터넷 프로토콜 주소이다. 16비..
CPU 스케줄링 CPU 스케줄링은 운영체제가 프로세스들에게 CPU 자원을 배분하는 것이다. 운영체제는 준비 큐에 있는 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할지 결정한다. 시분할 시스템에서 각 프로세스들의 CPU 수행시간이 다르기 때문에 CPU 스케줄링을 통헤 적절히 CPU를 할당하여 빠른 사용자 응답을 제공하고, CPU와 입출력장치의 효율을 높일 수 있다. 스케줄링의 종류 단기 스케줄링 준비 큐에 있는 대기 상태 프로세스 중 어떤 프로세스를 다음으로 실행할지 스케줄링 알고리즘으로 결정한다. CPU 스케줄링이라고도 한다. 중기 스케줄링 너무 많은 프로세스에게 메모리를 할당해 성능이 저하되는 경우를 막기 위해, 메모리에 로드 된 프로세스 수를 동적으로 조절한다. 메모리에 프로세스가 많이 로드되면..
신뢰적 데이터 전송의 원리 전송 후 대기 프로토콜 송신부에서 데이터를 보낸 후 수신부로부터 응답을 받을때까지 다음 데이터를 보내지 않고 기다리는 방식이다. 송신부는 패킷을 보낸 후 수신부의 ACK 또는 NAK 신호를 기다린다. 송신자는 ACK 메세지를 받으면 다음 패킷을 전송하고, 일정 시간동안 ACK 메시지를 받지 못하면 패킷을 재전송 한다. 구현이 간단하지만 이전 메시지에 대한 응답을 받아야 다음 메시지를 보낼 수 있어 시간 면에서 비효율적이다. 파이프라인 프로토콜 파이프라인 프로토콜은 메시지 패킷을 동시에 보내고 ACK 패킷도 동시에 받는 방법이다. 하나의 패킷을 전송하고 ACK가 돌아올 때까지 기다리는 방법 보다 훨씬 효율적이지만 신뢰성이 낮고, 신뢰성을 보장하기 위한 대표적인 두 가지 방법이 있..
프로세스 프로세스는 컴퓨터에서 실행 중인 하나의 프로그램을 의미한다. 프로세스는 운영체제로부터 독립된 메모리 영역을 할당 받으며 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스 메모리 영역 프로세스 메모리 영역은 크게 스택, 힙, 데이터, 코드 영역으로 나뉜다. 스택 영역 데이터를 일시적으로 저장하는 공간. 함수의 실행이 끝나면 사라지는 매개변수나 지역변수 등이ㅣ 저장 높은 주소 값에서 낮은 주소 값으로 메모리가 할당된다. 재귀함수가 반복해서 호출되거나 함수가 지역변수를 메모리를 초과할 만큼 많이 가지고 있다면 스택 오버플로가 발생한다. 영역 크기는 컴파일 때 결정된다. 힙 영역 프로그래머에 의해 동적 메모리 할당이 일어나는 공간 힙 영역은 런타임에 결정되고, 자바에서는 GC에 의해 메모리가 정..