맨위로가기

스택리스 파이썬

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

스택리스 파이썬은 운영 체제 커널이 아닌 언어 인터프리터 자체에서 관리하는 마이크로 스레드를 사용하여 프로그램을 분할하는 파이썬 변종이다. 이는 이벤트 기반 비동기 프로그래밍의 대안으로, 단일 코어 프로그램에서 별도의 스레드를 사용하는 오버헤드를 줄여준다. 스택리스 파이썬은 CPython의 전역 인터프리터 락(GIL)을 제거하지 않아 협동적 멀티태스킹만 허용하며, 여러 CPU 코어를 사용하려면 프로세스 간 통신 시스템을 구축해야 한다. 스택리스 파이썬은 기존 파이썬 설치에 플러그인 또는 라이브러리로 설치할 수 없으며, 자체적인 파이썬 배포판으로 제공된다. 스택리스의 스위칭 기능은 greenlet이라는 CPython 확장으로 패키징되어 gevent 등의 라이브러리에서 사용되며, 이브 온라인 및 아이언포트의 메일 플랫폼에서 활용된다.

더 읽어볼만한 페이지

  • 파이썬 구현 - 사이썬
    사이썬은 파이썬 문법에 C 언어의 정적 타입 선언을 추가하여 성능을 향상시키는 프로그래밍 언어이자 컴파일러로, 파이썬과 C/C++ 라이브러리 간 연동을 용이하게 하여 과학 컴퓨팅 라이브러리에서 활용된다.
  • 파이썬 구현 - PyPy
    PyPy는 파이썬의 호환 가능하고 빠른 구현을 목표로 하는 동적 언어 구현 프레임워크이며, RPython을 사용하여 JIT 컴파일러를 생성하고, Python 2.7과 3.10 버전을 지원한다.
  • 병행 컴퓨팅 - 슈퍼컴퓨터
    슈퍼컴퓨터는 일반 컴퓨터보다 훨씬 높은 성능을 가진 컴퓨터로, 복잡한 계산과 시뮬레이션을 수행하며, 프로세서, 메모리, 스토리지, 네트워크 등으로 구성되어 병렬 처리를 통해 높은 성능을 구현하고, 군사, 기상 예측, 과학 기술 분야, 인공지능 등 다양한 분야에서 활용되고 있다.
  • 병행 컴퓨팅 - 프로세스
    프로세스는 컴퓨터에서 실행되는 프로그램의 인스턴스로, 운영 체제가 시스템 자원을 효율적으로 관리하며 멀티태스킹 환경에서 독립적인 실행 흐름을 유지한다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
스택리스 파이썬 - [IT 관련 정보]에 관한 문서
개요
스택리스 파이썬 로고
스택리스 파이썬 로고
종류인터프리터
개발자크리스티안 티스머
최신 안정화 버전3.7 (2019년 8월 15일)
최신 미리보기 버전3.9.0 알파 0
프로그래밍 언어C, 파이썬
운영 체제리눅스, macOS, 윈도우
라이선스파이썬 소프트웨어 재단 라이선스
웹사이트github.com/stackless-dev
설명
개요스택리스 파이썬은 파이썬의 대안 구현체임.

2. 디자인

스택리스 파이썬은 운영체제 커널이 아닌 언어 인터프리터 자체에서 관리하는 마이크로스레드를 사용하여 실행 중인 프로그램을 분할한다. 컨텍스트 전환 및 작업 스케줄링은 인터프리터 내에서 수행되므로, 이러한 스레드는 그린 스레드의 한 형태로 간주된다.

2. 1. 마이크로스레드

스택리스 파이썬은 실행 중인 프로그램을 운영 체제 커널이 아닌 언어 인터프리터 자체에서 관리하는 마이크로스레드로 분할한다. 컨텍스트 전환 및 작업 스케줄링은 인터프리터 내에서 수행되므로, 이러한 스레드는 그린 스레드의 한 형태로 간주된다. 마이크로스레드는 동일한 CPU 코어에서 프로그램 내의 서로 다른 하위 작업의 실행을 관리한다. 이는 이벤트 기반 비동기 프로그래밍의 대안이며, 단일 코어 프로그램에서 별도의 스레드를 사용하는 오버헤드(사용자 모드와 커널 모드 간의 모드 전환을 수행할 필요가 없으므로 CPU 사용량을 줄일 수 있음)를 피할 수 있게 한다.[2]

마이크로스레드는 단일 코어에서 하위 작업을 실행하는 것을 쉽게 만들지만, 스택리스 파이썬은 CPython의 전역 인터프리터 락(GIL)을 제거하지 않으며 여러 스레드 및/또는 프로세스를 사용하지 않는다. 따라서 공유 CPU에서 협동적 멀티태스킹만 허용하고 병렬 처리는 허용하지 않는다(선점은 원래 사용할 수 없었지만 현재는 일부 형태로 제공된다). 여러 CPU 코어를 사용하려면 스택리스 파이썬 프로세스 위에 프로세스 간 통신 시스템을 구축해야 한다.[3]

2. 2. 한계

스택리스 파이썬은 CPython의 전역 인터프리터 락(GIL)을 제거하지 않으므로, 협동적 멀티태스킹만 가능하고 진정한 병렬 처리는 불가능하다. (원래 선점형 멀티태스킹은 불가능했지만, 현재는 일부 형태로 제공된다.[2]) 여러 CPU 코어를 활용하려면 스택리스 파이썬 프로세스 위에 프로세스 간 통신 시스템을 추가로 구축해야 한다.

2. 3. 구현

소스 코드의 상당한 변경으로 인해 스택리스 파이썬은 기존 파이썬 설치에 확장 또는 라이브러리로 설치할 수 없다. 대신, 스택리스 파이썬은 자체적으로 완전한 파이썬 배포판이다. 스택리스의 기능 대부분은 파이파이, 셀프 호스팅 파이썬 인터프리터 및 JIT 컴파일러에도 구현되었다.[3]

3. 활용

스택리스 파이썬은 이브 온라인 대규모 멀티플레이어 온라인 게임 구현과 아이언포트의 메일 플랫폼에서 사용되었다.[4]

3. 1. CPython 확장

Stackless의 스위칭 기능은 `greenlet`이라는 CPython 확장으로 패키징되었다.[4] 이는 CPython에 그린 스레딩 솔루션을 제공하기 위해 gevent[5] 등의 여러 라이브러리에서 사용된다. 이후 파이썬은 그린 스레드를 위한 네이티브 솔루션인 await/async를 받았다.

3. 2. 네이티브 지원

Stackless는 별도의 배포판이지만, 스위칭 기능은 CPython 확장인 greenlet으로 성공적으로 패키징되었다.[4] 이는 CPython에 대한 그린 스레딩 솔루션을 제공하기 위해 여러 라이브러리(예: gevent[5])에서 사용된다. 이후 파이썬은 그린 스레드를 위한 네이티브 솔루션인 async/await를 받았다.

3. 3. 주요 사용 사례

스택리스 파이썬은 이브 온라인 대규모 멀티플레이어 온라인 게임 구현과 아이언포트의 메일 플랫폼에서 사용되었다.[4]

참조

[1] AV media The story of stackless Python https://www.youtube.[...]
[2] 웹사이트 About Stackless https://bitbucket.or[...] 2016-08-26
[3] 웹사이트 Application-level Stackless features — PyPy documentation https://pypy.readthe[...]
[4] 웹사이트 greenlet: Lightweight concurrent programming — greenlet 0.4.0 documentation https://greenlet.rea[...]
[5] 웹사이트 What is gevent? — gevent 1.3.0.dev0 documentation https://www.gevent.o[...]
[6] URL http://terranova.blo[...]
[7] URL http://wiki.secondli[...]
[8] 영상 인용 The story of stackless Python https://www.youtube.[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com