ScholarGate
어시스턴트

프로세스 및 스레드 관리

프로세스 및 스레드 관리는 운영 체제가 실행 단위(고유한 주소 공간을 가진 프로세스와 이를 공유하는 스레드)를 생성, 스케줄링 및 해체하고, 이들 사이에서 프로세서를 전환하는 방식입니다.

PaperMind(으)로 주제 찾기곧 제공Find papers & topics
Tools & resources
슬라이드 다운로드
Learn & explore
동영상곧 제공

Definition

프로세스 및 스레드 관리는 실행 중인 프로그램을 프로세스 및 스레드로 나타내고, 실행 상태를 유지하며, 생성 및 종료하고, 컨텍스트를 보존 및 복원하면서 프로세서 간에 전환하는 운영 체제 메커니즘을 포함합니다.

Scope

이 주제는 프로세스 추상화 및 수명 주기, 프로세스 제어 블록, 프로세스 생성 및 종료, 스레드 및 다중 스레딩 모델, 컨텍스트 전환, 프로세스 간 통신을 다룹니다. 다음으로 실행될 준비된 작업의 정책(CPU 스케줄링)과 공유 데이터의 조정(운영 체제 일반에서 다루는 동시성)은 제외하며, 실행을 나타내고 관리하는 구조에 중점을 둡니다.

Core questions

  • 운영 체제는 각 프로세스 및 스레드에 대해 어떤 상태를 유지해야 하는가?
  • 프로세스는 어떻게 생성되며, 스레드는 프로세스와 어떻게 다른가?
  • 컨텍스트 전환 중에 무슨 일이 발생하며, 그 비용은 얼마인가?
  • 프로세스는 주소 공간을 넘어 어떻게 통신하고 조정하는가?

Key concepts

  • 프로세스 및 프로세스 제어 블록
  • 프로세스 상태 및 수명 주기
  • 스레드 및 다중 스레딩
  • 사용자 수준 스레드 대 커널 수준 스레드
  • 컨텍스트 전환
  • fork 및 exec
  • 프로세스 간 통신
  • 프로세스 격리

Key theories

프로세스 추상화
운영 체제는 각 실행 중인 프로그램을 고유한 주소 공간과 프로세스 제어 블록에 저장된 실행 컨텍스트를 가진 프로세스로 나타내어 격리, 스케줄링 및 프로세서의 제어된 공유를 가능하게 합니다.

Mechanisms

각 프로세스는 레지스터, 메모리 매핑, 열린 파일 및 스케줄링 상태를 포함하는 프로세스 제어 블록으로 설명됩니다. 시스템은 프로세스를 생성하고(예: fork 및 exec을 통해), 상태(새로 생성됨, 준비, 실행 중, 대기, 종료됨)를 전환하며, 하나의 컨텍스트를 저장하고 다른 컨텍스트를 복원하여 프로세스 간에 전환합니다. 스레드는 프로세스의 주소 공간을 공유하므로 전환 비용이 저렴하지만 동기화가 필요합니다. 프로세스 간 통신은 파이프, 메시지 또는 공유 메모리를 사용합니다.

Clinical relevance

프로세스 및 스레드 관리는 모든 최신 시스템에서 멀티태스킹의 기반이 됩니다. 프로세스 격리는 보안 및 안정성의 초석이며, 스레드는 반응성이 뛰어나고 병렬적인 애플리케이션을 가능하게 합니다. 컨텍스트 전환 및 프로세스 간 통신의 비용은 서버, 런타임 및 동시성 소프트웨어의 설계를 형성합니다.

History

프로세스 개념은 1960년대 다중 프로그래밍 및 시분할 시스템과 함께 성숙했으며, UNIX는 오늘날 널리 사용되는 fork/exec 모델과 프로세스 추상화를 확립했습니다. 스레드는 멀티프로세서를 활용하고 반응성을 개선하기 위해 추가되었으며, POSIX 스레드와 같은 표준은 사용자에게 보이는 스레딩을 공식화했습니다.

Debates

사용자 수준 스레드 대 커널 수준 스레드
사용자 수준 스레드는 관리가 저렴하지만 코어 간에 독립적으로 스케줄링될 수 없으며 차단 호출 시 전체 프로세스를 차단합니다. 반면 커널 수준 스레드는 더 높은 오버헤드로 스케줄러와 통합됩니다. 하이브리드 모델은 이러한 장점을 결합하려고 시도합니다.

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Per Brinch Hansen
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

운영 체제는 각 프로세스에 대해 어떤 정보를 유지하는가?
운영 체제는 프로세스의 저장된 레지스터 및 프로그램 카운터, 메모리 매핑, 스케줄링 상태 및 우선순위, 열린 파일, 계정 및 ID 정보를 기록하는 프로세스 제어 블록을 유지합니다. 이는 프로세스를 일시 중단하고 나중에 중단된 지점에서 정확히 다시 시작하는 데 필요한 모든 정보입니다.
스레드 간 전환이 프로세스 간 전환보다 저렴한 이유는 무엇인가?
프로세스 내의 스레드는 동일한 주소 공간과 자원을 공유하므로, 스레드 간 전환은 메모리 매핑 변경을 필요로 하지 않습니다. 프로세스 간 전환은 추가적으로 주소 공간을 변경하고 변환 캐시를 플러시할 수 있으므로 더 많은 비용이 듭니다.

Methods for this concept

Related concepts