/////
Search
📝

4월8일(월)

3장까지가 1차 시험입니다
Recap
프로세스가 실행되면( == 자원을 할당 받았을때), 하나의 별도의 PCB가 생성 세 개의 프로세스가 실행되면, 세 개의 메모리를 할당받아야함 Thread는, 프로세스 내에서 자원을 활용하는 실행 단위 Thread는 하나의 메모리를 공유
MultiThreaded Server Architecture

CH4 : Threads

학습 목표
Multicore Programming
MultiThreading Models
Thread Libraries
Implicit Threading
Threading Issues
학습 이유 : Motivation
현대의 대다수 application들은 MultiThreaded
Thread들은 application 내에서 run
대부분의 Tasks : separate thread들에 의해 실행
Update display, Fetch data, Spell checking, Answer a network request
프로세스 생성은 무겁지만, 스레드 생성은 가볍다!
효율성을 올릴 수 있고, 코드를 단순화하기 좋다
커널들은 일반적으로 MultiThreaded

Benefits

Responsiveness
Resource Sharing
Economy
Scalability

Thread

하나의 응용프로그램( or 프로세스)는 다중 스레드를 가지고 있음 프로그램 : 스레드 = 1 : N 관계라고 볼 수 있음 EX) 웹서버가 단 하나의 클라이언트에게만 서비스를 제공할 수 있는 경우 → 단일 스레드

단일 스레드 프로세스

처리할 일(= 요청)이 늘수록, 새로운 프로세스를 생성해야함.

Multi-Core

Single-Core
병행성(Concurrency)
하나의 프로세서(CPU)가 하나 이상의 Task를 수행 가능
Multi-Core
병렬성(Parallelism)
시스템이 하나 이상의 Task를 동시에 수행 가능
싱글코어의 병행성도 충분히 좋은 효과를 낼 수 있긴 하다

Multicore Programming

다음 두 가지에 대해 잘 프로그래밍을 해줘야한다
Data Parallelism
Task Parallelism

Data & Task Parallelism

Amdahl’s Law

전체 작업 중 일부분에 대해 성능향상을 시킬 경우, 전체 시스템에서의 성능 향상 가능

Modeling

T(p)=sT+f(T/p)T(p) = s*T + f*(T/p)
T/T(p)=속도향상비율=1/(s+(f/p))=p/(sp+f)T/T(p) = 속도 향상 비율 = 1/(s+(f/p)) = p / (s*p + f)
S=성능최대값=1/((1f)+(f/s))=1/((1f)+(f/p))S = 성능 최대값 = 1/((1-f)+(f/s)) = 1/((1-f)+(f/p))