개발/OS (5) 썸네일형 리스트형 멀티 스레드(multi thread) 멀티 쓰레드(Thread)란 무엇인가?하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고자원의 생성과 관리의 중복성을 최소화하여수행 능력을 향상시키는 것을 멀티쓰레딩이라고 한다.하나의 프로그램에 동시에 여러개의 일을 수행할수 있도록 해주는 것이다.멀티 쓰레드를 사용하는 이유는?프로세스를 이용하여 동시에 처리하던 일을 쓰레드로 구현할 경우메모리 공간과 시스템 자원 소모가 줄어들게 된다.쓰레드 간의 통신이 필요한 경우에도 별도의 자원을 이용하는 것이 아니라전역 변수의 공간 또는 동적으로 할당된 공간인 힙(Heap) 영역을 이용하여 데이터를 주고받을 수 있다.그렇기 때문에 프로세스 간 통신 방법에 비해쓰레드 간의 통신 방법이 훨씬 간단하다.심지어 쓰레드의 문맥 교환은 프로세스 문맥 교환과는 달리캐시.. 페이징 기법 📌 가상 메모리와 페이징 기법 정리 (매우 중요!)✅ 가상 메모리란?물리 메모리(RAM)보다 큰 주소 공간을 사용하는 논리적인 메모리 공간각 프로세스는 자신만의 독립된 4GB(32bit 기준) 주소 공간을 갖는다고 생각하면 됨이 주소 공간은 실제 메모리와 1:1로 매핑되지 않음💡 쉽게 말해:가상 메모리는 "4GB짜리 거대한 배열" 처럼 생각하면 된다.배열 안에는 스택, 힙, 코드 영역 등이 포함되어 있고, 실제 물리 주소와는 다르다.✅ 왜 가상 메모리가 필요할까?메모리 보호: 각 프로세스는 자기 주소 공간만 사용 (서로 간섭 불가)효율적인 자원 관리: 실제로 필요한 메모리만 할당프로그래밍 편의성: 프로세스는 자신의 주소 공간만 알면 됨✅ 페이징(Paging) 기법이란?가상 메모리를 고정된 크기(Pag.. cpu bound, io bound의 의미 ✅ 핵심 개념 요약🔧 CPU-bound 프로세스란?CPU 작업이 대부분인 프로세스예: 동영상 인코딩, 머신러닝, 딥러닝연산량이 많아 CPU 리소스를 집중적으로 사용함일반적으로 I/O 작업은 거의 없음🔌 IO-bound 프로세스란?I/O 작업(파일 읽기/쓰기, DB 접근, 네트워크 등)이 많은 프로세스예: 일반적인 웹 API 서버, 파일 서버CPU보다는 외부 리소스를 기다리는 시간이 더 많음⚙️ CPU-bound에서의 스레드 개수 팁스레드 개수가 많다고 항상 좋은 건 아님스레드 수가 코어 수보다 많으면, 컨텍스트 스위칭 오버헤드 발생즉, CPU가 작업 전환 때문에 리소스를 낭비함📌 **Gul Agha의 연구(2002, 2006)**에 따르면:적절한 스레드 수 = 코어 수 + 1예: 듀얼코어 CPU ➝.. 코루틴이란? 🧠 코루틴(Coroutine) 이란?협력적(concurrent)이고, 중단 가능한 함수일반 함수처럼 실행되지만, 중간에 멈췄다가 다시 이어서 실행할 수 있는 특성을 가짐.🔁 코루틴 vs 일반 함수일반 함수 코루틴실행 흐름호출되면 끝날 때까지 실행중간에 멈췄다가(suspend) 다시 이어서(resume) 실행 가능상태 유지호출할 때마다 새로 시작상태(변수 등) 유지사용 목적순차 처리비동기 처리, 이벤트 루프, IO 효율적 처리🚦 코루틴 vs 스레드구분 스레드(Thread) 코루틴(Coroutine)실행 단위OS가 스케줄링하는 실행 단위사용자 레벨의 경량 실행 단위생성 비용비교적 무거움 (스택, 컨텍스트 등)가볍고 수천 개도 생성 가능전환 비용커널 개입 (컨텍스트 스위칭)유저 레벨 전환 → 빠름병렬성멀.. 스레드의 종류 💡 스레드 전체 구조 개요컴퓨터 시스템은 아래 세 가지 레벨로 구성됩니다:하드웨어 (CPU/코어)운영체제 (OS)사용자 프로그램 (User Program)각 레벨에서 **‘스레드’**가 어떻게 다르게 동작하고 정의되는지 구분해서 설명합니다.🔧 1. 하드웨어 스레드 (Hardware Thread)물리적인 CPU 코어 내에서 동작.메모리 접근 대기 시간 동안 다른 스레드를 실행시켜 자원 낭비를 줄이는 기술.인텔에서는 이를 하이퍼 스레딩 (Hyper-Threading) 이라고 부름.하나의 물리 코어 → 2개의 하드웨어 스레드를 실행 가능.OS 입장에서는 하드웨어 스레드 각각을 하나의 코어처럼 인식함.예: 듀얼 코어 CPU에 하이퍼스레딩 적용 시 → 하드웨어 스레드 4개🧠 2. OS 스레드 / 네이티브 스.. 이전 1 다음