4 - 쓰레드

우하하·2024년 11월 7일

운영체제

목록 보기
4/7

운영체제가 작업을 처리하는 단위는 프로세스

사용자가 운영체제에게 작업을 요구하면 그만큼 프로세스의 수가 늘어남!

프로세스를 생성하면 PCB가 생성되고 메모리의 코드, 데이터, 스택, 힙 영역을 만들어줘야 하는데, 프로세스의 수가 많아지면 프로세스의 수만큼 이것들을 만들어줘야 하기 때문에 너무 무거워짐

예를 들어, 웹 브라우저의 탭을 20개 열면 프로세스의 복사가 20번이나 일어나게 되는 것임...

결국 웹브라우저가 메모리를 너무 많이 차지하게 됨..!

그래서 개발자들이 고안해낸 것이 쓰레드

1. 쓰레드란?

  • lightwight process
  • 프로세스 내에서 독립적으로 실행되는 CPU 수행 단위
  • 한 개의 프로세스 내에 1개의 쓰레드가 있을 수 있고 10개의 쓰레드가 있을 수 있음

2. 쓰레드의 메모리 공간

  • 프로세스 내에서 메모리를 공유하지만 자신만의 독립된 메모리 공간을 가짐
  • 공유하는 메모리
    • PCB, 코드, 데이터, 힙 영역
  • 독립적인 메모리
    • 각 쓰레드가 개별적으로 가지는 스택 메모리(함수 호출시 사용되는 지역 변수와 반환 주소 등이 저장)

3. 쓰레드 제어 블록(TCB)

  • 프로세스 내의 여러 쓰레드를 구분하기 위해 쓰레드 아이디를 부여하고 관리하기 위한 장치

4. 쓰레드의 장점

✔️ 응답성
다중 쓰레드로 구성된 테스크 구조에서는 하나의 서버 스레드가 waiting 상태인 동안에도 동일한 테스크 내의 다른 쓰레드가 실행되어 빠른 처리를 할 수 있다. (웹 브라우저에서 이미지를 읽어오는 쓰레드와 텍스트를 읽어오는 쓰레드가 동시에 실행되어 빠르게 읽어올 수 있음)

✔️ 자원 공유
프로세스 내의 코드, 데이터 등을 공유하기 때문에 효율성이 높음

✔️ 경제성
프로세스와 비교했을 때,
쓰레드 생성, CPU switching의 오버헤드가 각각 30배, 5배 차이가 남(Solaris)

5. 쓰레드의 단점

✔️ 안전성
쓰레드들은 동일한 주소 공간의 코드, 데이터, 힙 영역을 공유하고, 열린 파일과 같은 프로세스의 자원을 공유하기 때문에 멀티쓰레드 환경에서는 한 쓰레드에 생긴 문제가 프로세스 전체의 문제가 될 수 있다는 단점이 있음

참조
👨🏻‍🏫 이화여자대학교 운영체제 강의
👨🏻‍🏫 그림으로 쉽게 배우는 운영체제 - 인프런
📚 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

profile
Hello World!

0개의 댓글