CS
태태개발일지(운영체제)
태태코
2023. 9. 5. 14:10
반응형
스레드?
CPU 활용의 기본단위
- 스레드ID, PC , 레지스터 집합, 스택으로 구성
단일 스레드(스레드가 한개인 구조를 가지고 있다.)
- 스텍, PC, 레지스터 모든게 하나인 스레드 -> 자원을 공유하지 않기 때문에 자원 공유하는 컨트롤을 고려할 필요가 없다.
context switch 작업이 불필요하다.
CPU가 성능이 좋더라도 활용을 할 수 없다
멀티 스레드(스레드가 여러개인 구조를 뜻한다.)
프로그램을 다수의 실행 단위로 나누어 실행한다.
[장점]
대응적 측면: 일부가 차단되거나 장시간 작업 수행시에도 계속해서 실행 가능
자원 공유성: 프로세스의 자원과 상태를 공유, 효율적인 운영
경쟁성: 자신이 속한 프로세스의 자원을 공유하기 때문에, 스레드를 만들고 context switch를 진행하는 것이 경제적
확장성: 다수개의 코어에서 병렬로 프로세스 실행
프로세스를 실행하는 시간이 스레드 실행하는 시간보다 30배정도 오래걸린다.
유저 스레드 | 커널 스레드 | |
특징 | 커널의 별도 지원없이 커널 위에서 동작 생성/파괴를 위한, 메세지/데이터 전달을 위한 코드가 포함되어있다. |
운영체제로부터 직접 자원과 관리를 받음 |
장점 | 스레드 스위칭에서 커널모드 권한이 필요없다. | 동일한 프로세스의 여러 스레드를 서로 다른 프로세스에 예약 가능 |
단점 | 한 유저 스레드가 차단 수행시 전체 프로세스가 차단된다. | 커널 전환이 느리다. |
스레드 풀
-지정된 개수의 스레드를 미리 생성해두고 필요시 꺼내어 쓰는 방식
- 요청이 폭증해도 성능을 유지
-대량 작업 처리시에서 반드시 고려 필요
스레드를 다 사용하게되면 반납할때 까지 기다려야한다.
과다 생성시 메모리 측면에서 낭비 가능성이 있다
반응형