CS

태태개발일지(운영체제)

태태코 2023. 9. 5. 14:10
반응형

스레드?

CPU 활용의 기본단위

- 스레드ID, PC , 레지스터 집합, 스택으로 구성

 

단일 스레드(스레드가 한개인 구조를 가지고 있다.)

- 스텍, PC, 레지스터 모든게 하나인 스레드 -> 자원을 공유하지 않기 때문에 자원 공유하는 컨트롤을 고려할 필요가 없다. 

context switch 작업이 불필요하다.

 

CPU가 성능이 좋더라도 활용을 할 수 없다

 

 

 멀티 스레드(스레드가 여러개인 구조를 뜻한다.)

프로그램을 다수의 실행 단위로 나누어 실행한다.

 

[장점]

 대응적 측면: 일부가 차단되거나 장시간 작업 수행시에도 계속해서 실행 가능

 자원 공유성: 프로세스의 자원과 상태를 공유, 효율적인 운영

경쟁성: 자신이 속한 프로세스의 자원을 공유하기 때문에, 스레드를 만들고 context switch를 진행하는 것이 경제적

확장성: 다수개의 코어에서 병렬로 프로세스 실행

 

프로세스를 실행하는 시간이 스레드 실행하는 시간보다 30배정도 오래걸린다. 

 

 

  유저 스레드  커널 스레드
특징 커널의 별도 지원없이 커널 위에서 동작
생성/파괴를 위한, 메세지/데이터 전달을 위한 코드가 포함되어있다. 
운영체제로부터 직접 자원과 관리를 받음
장점  스레드 스위칭에서 커널모드 권한이 필요없다. 동일한 프로세스의 여러 스레드를 서로 다른 프로세스에 예약 가능
단점  한 유저 스레드가 차단 수행시 전체 프로세스가 차단된다.  커널 전환이 느리다.

 

스레드 풀

-지정된 개수의 스레드를 미리 생성해두고 필요시 꺼내어 쓰는 방식

- 요청이 폭증해도 성능을 유지

-대량 작업 처리시에서 반드시 고려 필요

 

스레드를 다 사용하게되면 반납할때 까지 기다려야한다.

 

과다 생성시 메모리 측면에서 낭비 가능성이 있다 

 

 

반응형