사용자 수준 스레드와 커널 수준 스레드에 관하여
·
OS
사용자 수준 스레드와 커널 수준 스레드는 운영체제에서 스레드를 관리하는 두 가지 방식으로, 각각의 관리 방법과 장단점에 따라 적절한 활용 사례가 다릅니다.1. 사용자 수준 스레드(User-Level Threads)사용자 수준 스레드는 커널의 개입 없이 사용자가 작성한 스레드 라이브러리에 의해 관리됩니다.특징커널이 스레드를 인지하지 못함스레드의 생성, 관리, 스케줄링을 사용자 프로그램이 직접 수행빠른 스레드 전환 속도장점커널 호출 없이 빠른 컨텍스트 스위칭(context switching)운영체제 독립적이며 이식성이 높음효율적인 자원 관리 가능단점다중 프로세서를 활용할 수 없음한 스레드가 블록되면 전체 프로세스가 블록될 수 있음2. 커널 수준 스레드(Kernel-Level Threads)커널 수준 스레드는..
뮤텍스와 세마포어에 관하여
·
카테고리 없음
뮤텍스 (Mutex) 와 세마포어 (Semaphore) 는 멀티스레딩 및 병렬 프로그래밍에서 사용되는 동기화 도구로, 자원 접근 시 발생할 수 있는 경쟁 상태(race condition)를 방지하는 데 사용됩니다.1. 뮤텍스(Mutex)란?뮤텍스(Mutual Exclusion)는 상호 배제를 뜻하는 동기화 도구로, 한번에 단 하나의 스레드만 공유 자원에 접근할 수 있도록 보장합니다.바이너리 락(Binary lock)의 형태를 가짐.락을 소유한 스레드만 해제 가능.주로 임계 구역(Critical Section) 보호에 사용됨.2. 세마포어(Semaphore)란?세마포어는 카운팅 기반의 동기화 도구로, 특정 개수의 스레드가 자원에 접근할 수 있도록 허용하는 방식입니다.자원의 허용 개수를 지정하여 관리.허용 ..
MST 에 관하여
·
algorithm
최소 신장 트리(MST, Minimum Spanning Tree)는 그래프 내의 모든 정점을 연결하는 최소 비용의 간선 집합으로 이루어진 트리를 의미합니다. 즉, 그래프의 모든 노드를 최소 비용으로 연결하는 것입니다.1. MST의 특징모든 정점이 연결되어 있어야 합니다.사이클을 포함해서는 안 됩니다.최소한의 비용으로 구성됩니다.2. MST 알고리즘 종류최소 신장 트리를 구하는 대표적인 알고리즘은 다음과 같습니다.2-1. 크루스칼(Kruskal) 알고리즘시간 복잡도: O(ElogE)간선의 비용을 기준으로 오름차순으로 정렬한 후, 사이클을 형성하지 않도록 최소 비용 간선을 순차적으로 선택합니다.2-2. 프림(Prim) 알고리즘시간 복잡도: O(ElogV)시작 정점에서부터 시작하여 연결된 정점들 중 최소 비용..