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
전체 작업 중 일부분에 대해 성능향상을 시킬 경우,
전체 시스템에서의 성능 향상 가능



