베어_
TechBear
베어_
전체 방문자
오늘
어제
  • 분류 전체보기 (336)
    • Spring (33)
      • 개념 (13)
      • Security (5)
      • 실습 (1)
      • 토비 스프링 (11)
    • JPA (6)
    • 프로젝트 기록 (24)
    • DB (13)
    • JAVA (18)
    • 알고리즘 (50)
      • 유형정리 (8)
      • Baekjoon (21)
      • LeetCode (18)
    • 디자인패턴 (0)
    • 개발서적 (79)
      • Effective Java (78)
      • 객체지향의 사실과 오해 (1)
    • 독후감 (4)
    • 보안 (2)
    • 운영체제(OS) (53)
      • 공룡책 (53)
    • 컴퓨터 네트워크 (28)
      • 컴퓨터 네트워크 하향식 접근 (23)
    • 자료구조 (1)
    • DevOps (2)
    • 앱 개발 (20)
      • 안드로이드 스튜디오 (20)

블로그 메뉴

    공지사항

    인기 글

    태그

    • Spring
    • 데이터베이스
    • 자바8
    • 운영체제
    • jpa
    • 스레드
    • java
    • BFS
    • 자바
    • 스프링시큐리티
    • 백준
    • leetcode
    • 알고리즘
    • 스프링
    • 코드업
    • 이펙티브자바
    • 토비스프링
    • 함수형인터페이스
    • dfs
    • C++

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    베어_

    TechBear

    [운영체제] 스레드
    운영체제(OS)/공룡책

    [운영체제] 스레드

    2021. 3. 30. 01:55

    스레드는 CPU이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택으로 구성된다.

    스레드에는 단일 스레드와 다중 스레드가 있는데 만일 프로세스가 다수의 제어 스레드를 가진다면 프로세스는 동시에 하나 이상의 작업을 수행할 수 있다.

     

    하나의 응용 프로그램이 여러 개의 비슷한 작업을 수행할 필요가 있는 상황들이 꽤 많다. 

    예를 들어, 웹 서버는 클라이언트로부터 웹 페이지나 이미지 등에 대한 요청을 받는다. 만약 웹 서버가 단일 스레드 프로세스로 작동한다면, 한 번에 하나의 클라이언트만 서비스할 수 있게 되어 클라이언트는 자신의 요구가 서비스되기까지 매우 긴 시간을 기다려야 한다.

     

    이에 대한 해결책으로 사용했던 방법이 서버에게 서비스 요청이 들어오면 프로세스는 그 요청을 수행할 별도의 프로세스를 생성하는 것이었다. 하지만 프로세스 생성 작업은 매우 많은 자원과 시간이 필요하다. 

     

    따라서 요청이 들어오면 다른 프로세스를 생성하는 것이 아니라 요청을 서비스할 새로운 스레드를 생성하고 추가적인 요청을 listen하기 위한 작업을 재개한다.

     

     

    [다중 스레드의 장점]

    1 ) 응답성 : 연산이 긴 작업을 할 때 싱글 스레드는 그 작업이 끝날 때 까지 다른 작업을 할 수 없지만 다중 스레드는 다른 프로그램의 수행을 허용함으로써 사용자에 대한 응답성을 증가시킨다.

     

    2 ) 자원 공유 : 프로세스는 공유 메모리와 메세지 전달 기법을 통하여만 자원을 공유할 수 있지만 스레드는 자동으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다. 따라서 같은 주소 공간 내에 여러 개의 다른 작업을 하는 스레드를 둘 수 있다.

     

    3 ) 경제성 : 프로세스를 새로 생성하는 것보다 경제적임

     

    4 ) 규모 적응성 : 다중 처리기 구조에서 각각의 스레드가 다른 처리기에서 병렬로 수행될 수 있다. 

     

     

      '운영체제(OS)/공룡책' 카테고리의 다른 글
      • [운영체제] 다중 스레드 모델다중 스레드 모델
      • [운영체제] 다중 코어 프로그래밍
      • [운영체제] 원격 프로시저 호출(RPC)
      • [운영체제] 소켓
      베어_
      베어_
      Today I learned | 문제를 해결하는 개발자

      티스토리툴바