[운영체제] 7. Process3

이건회·2022년 3월 16일
0

운영체제

목록 보기
6/27

  • 스레드는 빠른 응답성(성능 향상)과 자원 절약의 장점이 있다.
  • 다중 스레드가 협력하여 처리율을 높인다.
  • 독립적인 연산들을 각 스레드가 여러대의 CPU에서 실행돼 처리해 병렬성을 높이고 결과가 빨리 나온다.

  • 스레드가 여러개 있으면 스레드는 cpu 수행과 관련된 정보를 (PC,레지스터) 별도로 갖고 있다.

  • 스레드는 프로세스 안에서 독자적으로 가져야 하는 정보만 독자적으로 갖고 코드 데이터는 주소공간에서 공유한다.

  • 왼쪽은 스레드가 하나, 오른쪽은 스레드가 여러개다. 스레드마다 별도로 갖는 공간과 공유하는 공간을 볼 수 있다.

  • 스레드의 첫 번째 장점은 응답성이 높다. 웹 브라우저가 스레드를 여러개 가지면 하나의 스레드가 서버에서 데이터를 들고 오는 동안 blocked 되지 않고 다른 스레드가 이미 읽어온 데이터를 디스플레이 하는 등 응답성을 높일 수 있다. 예를 들어 html을 가져오고 다시 이미지를 요청할때 스레드가 이미지를 가지러 간 동안 html 텍스트만 미리 디스플레이할 수 있는 것이다.
  • 두 번째 장점은 자원의 공유다. 하나의 프로세스에 cpu 수행 단위만 여러개를 두면 코드 데이터등 자원을 공유하므로 자원을 절약할 수 있다.
  • 세 번째는 경제성이다. 역시 빠르다는 뜻이다. 프로세스를 하나 만드는데 오버헤드가 많이 드므로 프로세스를 여러개 두는 것 보다 오버헤드가 적다. 또 오버헤드가 많이 드는 문맥 교환을 아낄 수 있기도 하다.
  • 마지막 네 번째는 CPU가 여러대인 환경에서 스레드를 두었을 때 장점이다. 각각의 스레드가 서로 다른 CPU에서 병렬적으로 일을 하여 작업을 빨리 수행할 수 있다.

  • 스레드는 커널 혹은 라이브러리 형태로 구현된다.
  • 커널 스레드는 스레드가 여러개라는 사실을 운영체제가 알고 있다. 하나의 스레드에서 다른 스레드로 CPU가 넘어가는 것도 커널이 CPU 스케줄링 하듯 넘겨준다.
  • 유저 스레드(라이브러리)는 운영체제가 스레드가 여러개인것을 모르고 유저 프로그램이 스레드를 라이브러리의 지원을 받아 관리한다.
profile
하마드

0개의 댓글