TCP 일반적으로 TCP와 IP를 함께 사용하는데, TCP는 패킷 추적 및 관리를 담당하고 IP가 데이터의 배달을 담당합니다. 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜입니다. 사전에 3-way handshake 과정을 통해 연결을 설정하고 통신을 시작합니다. 4-way handshake 과정을 통해 연결을 해제합니다. (가상 회선 방식) 흐름 제어, 혼잡 제어, 오류 제어를 통해 신뢰성을 보장하지만 이 때문에 UDP보다 전송 속도가 느립니다. 데이터의 전송 순서를 보장하며 수신 여부를 확인할 수 있습니다. 대부분의 웹 HTTP 통신, 이메일, 파일 전송 등에 사용됩니다. 흐름 제어 송신 측과 수신 측 사이의 데이터 처리 속도를 해결하기 위한 기법입니다. 만약 송신 측의 전송량 > 수신 측..
OSI 7 계층 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다. OSI 7 계층으로 나누는 이유 OSI 7 계층으로 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문입니다. 계층별의 기능과 통신 과정을 단계별로 나누어서 쉽게 이해할 수 있습니다. 또한, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있기 때문에 편리합니다. 1. 물리 계층 (Physical Layer) 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송합니다. 리피터, 케이블, 허브 등 2. 데이터 링크 계층 (Data Link Layer) 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와줍니다. Mac 주소를 통해 통신합니다. Frame에 M..
페이지 교체 알고리즘운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용하는데, 이를 가상메모리 기법이라 합니다.페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시 Page Fault가 발생합니다. 이때, 어떤 프레임에 있는 페이지를 선택하여 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라고 합니다. 1. FIFO(First in First out) 알고리즘FIFO 알고리즘은 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 알고리즘입니다.구현이 간단하지만 성능은 좋지 않은 편입니다.들어온 시간을 저장하거나 올라온 순서를 큐를 이용해 저장할 수 있습니다.Belady`s Anomaly 현상이 발..
단편화 (Fragmentation)주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간 주기억장치 상에서 빈번하게 기억장소가 할당되고 해제됨에 따라 기억장소들이 조각들로 나누어지는 현상 내부 단편화프로세스에 할당된 메모리 공간이 실제로 프로세스가 필요한 공간보다 많이 할당되었을 때, 프로세스 내부에서 발생되는 단편화를 말합니다. 외부 단편화메모리가 할당되고 해제되는 작업이 반복되면서 작은 공간의 메모리 영역이 생기게 됩니다.이 공간의 크기가 어떤 프로세스가 필요로 하는 크기보다 작은 경우에 생기는 단편화를 말합니다. 단편화의 해결 방법1. 통합 (Coalescing)단편화로 인해 분산되어 있는 메모리 공간들을 인접해 있는 것끼리 통합시켜 큰 메모리 공간으로 합치는 ..
스케줄러스케줄러는 어떤 프로세스에게 자원을 할당할지 결정하는 역할을 합니다.운영체제는 스케줄러를 통해 CPU를 사용하려고 하는 프로세스 사이의 우선 순위를 관리합니다.이것을 스케줄링이라고 부릅니다.프로세스를 스케줄링하기 위한 스케줄링 큐에는 다음의 세 가지 종류가 존재합니다.작업 큐(Job Queue) : 현재 시스템 내의 모든 프로세스의 집합준비 큐(Ready Queue) : 메인 메모리에 존재하며, CPU를 할당받고 실행을 기다리는 프로세스의 집합장치 대기 큐(Device Queue) : 특정 입/출력장치를 대기하는 프로세스의 집합 스케줄러의 종류1. 장기 스케줄러 (Long-Term Scheduler 또는 Job Scheduler)메모리와 디스크 사이의 스케줄링을 담당합니다.많은 프로세스들이 한꺼번..
교착 상태 (DeadLock) 교착 상태는 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다리면서 무한 대기에 빠지는 상황을 일컫습니다. 즉, 한정된 자원을 여러 곳에서 사용하려고 하면서 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태입니다. 프로세스1과 프로세스2가 모두 자원1, 자원2를 얻어야 한다고 가정합니다. t1 : 프로세스1이 자원1을 얻은 동시에 프로세스2는 자원2를 얻음 t2 : 프로세스1은 자원2를 기다리고 프로세스2는 자원1을 기다림 이처럼 현재 서로 원하는 자원이 상대방에게 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠지게 되는데 이러한 상황을 교착 상태라고 부릅니다. 교착 상태가 주로 발생하는 경우는 다음과 같습니다. 멀티 프로그래밍 환경에..
상호 배제 (Mutual Exclusion)상호 배제는 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘입니다.이는 임계 구역으로 불리는 코드 영역에 의해 구현되며, 하나의 프로세스가 공유 자원을 사용할 때 다른 프로세스의 접근을 막을 수 있도록 합니다. 상호 배제는 멀티 프로세스나 멀티 스레드의 동기화에 사용됩니다.또한, 이는 교착 상태의 4가지 필요 조건 중 하나로서 교착 상태와 기아 상태가 발생할 수 있습니다.교착 상태 (Deadlock) : 무한 대기기아 상태 (Starvation) : 우선순위가 낮아 자원을 계속 할당받지 못하는 상태 임계 구역 (Critical Section)임계 구역은 공유 자원에 접근하는 프로세스 내부의 코드 영역입니다.어떤 프로세스가 이 영역을 수행 중일 때..
IPC IPC(Inter Process Communication)는 프로세스 간의 통신을 일컫는 말입니다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고받을 수 있다는 것입니다. 즉, 이는 동시에 접근 가능한 메모리, 다른 말로는 서로 공유하는 메모리가 있다는 것을 뜻합니다. IPC의 종류 1. 익명 파이프 (Anonymous PIPE) 익명 파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 할 수 있기 때문에 한쪽 방향으로만 통신이 가능한 반이중 통신이라고도 부릅니다. 따라서, 양쪽으로 모두 송/수신을 하고 싶으면 2개의 파이프를 만들어야 합니다. 간단하게 사용할 수 있는 장점이 있고 단순한 데이터 흐름을 가질 땐 파이프를..