본문 바로가기

전체 글161

Deadlock & Starvation Deadlock & Starvation Deadlock 개념 교착 상태 두 개 이상의 작업이 서로 상대방의 작업이 끝나기를 기다려 아무것도 완료되지 못하는 상황 서로가 원하는 자원이 상대방에게 있어 업무가 진행되지 못하고 대기하는 상태 발생 조건 상호 배제 하나의 프로세스가 사용 중일 때 다른 프로세스가 자원을 사용할 수 없다. 점유 대기 하나 이상의 자원을 점유하면서 다른 프로세스가 사용 중인 자원을 추가로 사용하기 위해 대기하는 프로세스 존재 비선점 다른 프로세스가 사용 중인 자원을 중간에 강제로 뺏어올 수 없다. 순환 대기 프로세스 집합에서 순환 형태로 자원을 대기하고 있어야 한다. 예방 상호 배제 부정 여러 프로세스가 공유 자원 사용 점유 대기 부정 프로세스 실행 전 모든 자원 할당 비선점 부정 .. 2023. 2. 21.
Sync & Async Sync & Async Sync 개념 한 자원에 대한 동시 접근을 제한하는 방식 직렬적으로 업무를 순차적으로 처리 어떤 작업이 수행 중이면 다른 작업은 대기 장점 설계가 단순하고 직관적 단점 작업이 끝날 때까지 대기 Async 개념 한 자원에 대한 동시 접근을 허용하는 방식 병렬적으로 업무를 처리 업무가 끝나지 않더라도 다른 작업을 실행 장점 업무가 끝나지 않더라도 다른 작업을 하기 때문에 처리 속도가 효율적이다. 단점 설계가 복잡하다. Sync & Async vs Blocking & non-blocking 특징 특정 작업이 return하여 작업을 완료하는 지를 확인하는 방식 Sync의 경우 작업을 완료하면 다른 작업을 진행 Async의 경우 완료 여부와 상관없이 다른 작업 진행 Blocking & no.. 2023. 2. 20.
Process and Thread Process and Thread 개념 Program 어떤 작업을 실행하기 위한 파일 Process 연속적으로 실행되고 있는 프로그램 운영체제로 부터 자원을 할당받아 실행하는 작업의 단위 CPU 시간, 주소 공간, code, data, stack, heap의 구조의 메모리 등을 할당받는다. 프로세스 당 최소 1개 이상의 스레드를 할당받는다. 각 프로세스는 다른 주소 공간에서 실행되고, 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 다른 프로세스에 접근하기 위해서는 프로세스 간 통신을 사용해야 한다. 파이프, 파일, 소켓을 사용하여 통신 Thread 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스 내에서 각 thread는 stack만 할당받고 code, data, heap은 공유한다. Java T.. 2023. 2. 19.
OSI 7 Layers OSI 7 Layers 개념 OSI(Open Systems Interconnection) 7 Layers 네트워크에서 일어나는 통신을 7 계층으로 나눈 것 목적 네트워크에서 일어나는 통신의 흐름을 파악하기 위해서이며 통신에 문제가 발생하였을 경우 해당 계층에 집중하여 통신 관리를 원활하게 하기 위해서 사용한다. 7 Layers 1 layer : Physical Layer 물리적(전기적, 기계적) 통신을 위해 통신 케이블로 데이터를 전송하는 계층 통신 단위는 bit로 0과 1로 구분된다. 전기적인 신호를 주고받는 역할만 한다. 케이블, 리피터, 허브를 통해 전달한다. 2 layer : Data Link Layer 물리 계층에서 송수신 되는 데이터의 오류와 흐름을 관리하여 데이터 전달을 도와주는 역할 에러 .. 2023. 2. 18.