[OS] 사용자 스레드(User Thread)와 커널 스레드(Kernel Thread)
·
Computer Science/Operating System
사용자 스레드 (User Thread) 커널과 상관없이 완전한 사용자 수준(User-level)의 패키지 사용자 수준의 스레드 라이브러리(Library)를 통해 구현됨 스레드 라이브러리는 커널 지원없이 스레드 생성, 동기화, 스케줄링, 관리 기능 제공 장점 성능 (속도가 빠름) 복잡한 비동기 기법을 ‘라이브러리’가 제공] 커널 스레드 (Kernel Thread) 운영체제(Kernel)가 지원하는 스레드 기능으로 구현됨 스레드 생성, 동기화, 스케줄링, 관리가 커널에 의해 커널 공간에서 행해짐 일반적으로 ‘사용자 스레드’에 비해 ‘생성’,’관리’가 너무 느림 다중 스레드 모델 3가지 다-대-일 (Many-to-One) 많은 ‘사용자 스레드’를 하나의 ‘커널 스레드’로 매핑 스레드 관리는 사용자 공간의 스레..
[OS] 멀티코어 프로그래밍 (Multicore Programming), 병렬 실행(Parallelism)
·
Computer Science/Operating System
멀티코어 or 멀티프로세서에서의 극복해야 할 도전과제 5개 태스크 인식 (Identifying Tasks) 병렬 처리가 가능한 태스크로 나눌 수 있는 영역을 찾는 작업 필요 균형 (Balanace) 전체 작업에 균등한 기여도록 가지도록 태스크를 나눠야 함 데이터 분리 (Data Splitting) 처리하는 데이터들이 분리된 개별 코어에서 수행해도록 나눠야 함 데이터 종속성 (Data Dependency) 데이터 의존성을 조정하기 위한 태스크 실행 동기화 필요 시험 및 디버깅 (Testing & debugging) 병렬로 실행되기 때문에, 단일 스레드 응용보다 Testing 및 Debugging이 어려움 병렬 실행(Parallelism)의 유형 데이터 병렬 실행 (Data Parallelism) 데이터(D..
[OS] 스레드(Thread)란?
·
Computer Science/Operating System
스레드 개발 동기 DB 서버의 요구 처리 과거 서버는 클라이언트 요구가 도착할 때마다, 새로운 프로세스를 생성 - fork() 단점 프로세스 생성에 대한 오버헤드 (생성 비용 비쌈) 프로세스간 통신 비용 큼(메시지 패싱, 공유 메모리) 네트워크와 같은 자원 공유가 어려움 프로세스를 처리기에 전달하고, 결과를 다시 수집하는 오버헤드 전통적인 PCB(Process Control Block) 구성 스레드 (Threads) CPU 이용의 기본단위 경량 프로세스 (LWP: Light Weight Process) 애플리케이션 내에서 실행 커널은 일반적으로 다중 스레드(Multi Thread) 프로세스 생성은 무겁고, 스레드 생성은 가벼움 구성 고유한 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택 등 같은 프..
[OS] 클라이언트-서버 환경에서의 통신: 소켓(Sockets), 원격 프로시저 호출(RPC), 원격 메소드 호출(RMI)
·
Computer Science/Operating System
클라이언트-서버(분산 시스템) 환경에서의 통신소켓 (Sockets)원격 프로시저 호출 (RPC: Remote Procedure Calls)원격 메소드 호출 (RMI: Remote Method Invocation(Java)) 소켓 (Sockets)  프로세스간 데이터를 교환하는 통신 Endpoint두 프로세스가 통신하기 위해서는 프로세스마다 하나씩, 총 2개의 소켓(Sockets)이 필요모든 통신은 유일(Unique)함모든 연결마다 유일한 소켓 쌍 사용효율적이지만 너무 낮은 수준(Low-level) 소켓 IDIP주소(IP Address) + 포트(Port) 번호ex) 소켓 ID: 161.25.19.8:1625   →   IP주소: 161.25.19.8, Port번호: 1625원격 프로시저 호출 (RPC: ..
HaSeon9
'Computer Science/Operating System' 카테고리의 글 목록