스레드 와 동시성 - Thread & Concurrency

chanto11

·

2021. 3. 23. 12:03

Thread : 스레드 

 

- 경량의 프로세스

- CPU 사용하는 기본 단위

- thread ID, PC(program counter), register set, stack으로 구성됨

single thread and multi thread 

- 멀티스레드 서버 아키텍쳐

= 서버에서 클라이언트의 요청을 받아 스레드를 만들어 서비스하고 서버는 추가 요청을 계속 listen 한다.

Multithread server architecture

- 멀티스레딩 장점:

  • NonBlocking 으로 처리를 할수있다.
  • Resource 자원을 공유가 쉽다. (프로세스의 shared-memory 나 message-passing 방식에 비해 쉽다.)
  • Context switching 비용이 적다 (프로세스보다 적은 overhead)
  • Scalability 확장성이 뛰어나다.

- 멀티 코어 시스템에서 멀티 스레드 

  • 멀티 코어를 동시에 효율적으로 처리능력이 향상. (하지만 시스템 구성 난이도 증가)
  • single-core = 시분활 방식, multiple-core = 스레드 병렬 처리

- 멀티 코어 시스템에 도전 과제

  • Identifying tasks : 어떻게 작업을 나눠서 할지. (작업 처리 방법 도출)
  • Balance : 각각의 작업량의 균형을 맞추기. (스레드의 효율적인 일처리 방식 도출)
  • Data splitting : 각 코어에 데이터를 잘 나누기.
  • Data dependency : 동기적인 처리 동작하기위해 Data 의존도를 고려.
  • Tesing and debugging : 테스트 & 디버깅의 어려움.

data parallelism and task parallelism

※ 현재에는 분산처리시스템을 이용하여 처리 (개인의 컴퓨터를 넘어서서)

- 네트워크 운영체제, 분산 운영체제

- Data Migration(데이터 이주), Computation(연산 이주), Process Migration(프로세스 이주)

- Client / Server, Processor Pool, Hybrid

- 캐싱, 원격서비스

- 등...

복잡한 과정에 의해 분산 처리되어짐.

 

multicore programming : 멀티 코어 프로그래밍

- amdahl's Law : 암달의 법칙 : 코어는 많을수록 좋은가?

= 코어가 크게 중요하는 않는다.

'운영체제' 카테고리의 다른 글

CPU 스케줄링 - 1  (0) 2021.03.24
프로세스 - 3  (0) 2021.03.18
프로세스 - 2  (0) 2021.03.10
프로세스 - 1  (0) 2021.03.09
운영체제 - 2  (0) 2021.03.08