스레드

Solf·2023년 6월 30일
0

운영체제

목록 보기
9/13

스레드의 정의

스레드는 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위이다.
프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야할 일을 CPU에게 전달하는데 이떄 전달하는 일 하나가 스레이다. 작업의 크기를 보았을때 프로세스 > 스레드 관계라고 볼 수 있다.

fork()로 멀티 태스킹을 하는 경우 코드, 전역 데이터, 파일과 같은 낭비요소가 생긴다. 이는 멀티 스레드로 공유함으로서 보완가능하다.

멀티스레드의 장단점

<장점>

  • 응답성 향상: 한 스레드가 입출력으로 인해 작업이 진행되지 않더라도 다른 스레드가 작업을 계속하여 사용자의 작업 요구에 빨리 응답할 수 있다.
  • 자원 공유: 한 프로세스 내에서 독립적인 스레드를 생성하면 프로세스가 가진 자원을 모든 스레드가 공유하게 되어 작업을 원활화게 진행할 수 있다.
  • 효율성 향상: 여러 개의 프로세스를 생성할 필요가 없어 불필요한 자원의 중복을 막음으로써 시스템의 효율이 향상된다.
  • 다중 CPU 지원: 2개 이상의 CPU를 가진 컴퓨터에서 멀티스레드를 사용하면 다중 CPU가 멀티스레드를 동시에 처리하여 CPU 사용량이 증가하고 프로세스의 처리시간이 단축된다.

<단점>
인터넷 익스플로러와 크롬의 가장 큰 차이는 멀티탭 구현방식의 차이에 있다.

인터넷 익스플로러: 멀티 스레드
크롬: 멀티 태스킹

이는 상대적으로 크롬이 성공하게 된 이유인데 멀티 스레드 방식을 사용하는 익스플로러는 하나의 탭이 문제가 발생하면 전체 프로세스에 영향을 준다. 반면 크롬은 안정적이였던 것이다.

profile
CS/Back-End

0개의 댓글