문제: Starlette과 비동기, 동시성

2025. 5. 7. 00:03문제: 고급 웹프로그래밍

문제

  1. 하나의 작업을 여러 CPU/코어로 동시에 처리하는 것을 __컴퓨팅이라 한다
  2. 여러 컴퓨터(노드)가 협력해 작업을 나눠 처리하는 것을 __ 컴퓨팅이라 한다
  3.  병렬 컴퓨팅은 분산 메모리를 사용한다 (o,x)
  4.  각 CPU가 여러 작업을 전환하며 처리하는 컴퓨팅을 뭐라 하는가?
  5. 프로세스란 운영체제가 관리하는 실행 중인 프로그램의 인스턴스로 __ + __ +  __ + __ + __을 가진 독립된 작업 단위
  6. 프로세스는 독립적인 메모리 공간을 가지며 다른 프로세스와 메모리 공간을 공유한다(o,x)
  7. 멀티프로세싱에 대해 서술하시오
  8. 멀티프로세싱은 멀티코어 CPU를 활용해 진짜 병렬 실행이 가능하다 (o,x)
  9. 파이썬의 multiprocessing은 OS-level 프로세스 생성. 스케줄링은 전적으로 python이 담당한다(o,x)
  10. Global Interpreter Lock에 대해 서술하시오
  11. 파이썬에서 multiprocessing은__ 에 사용하고, threading은__ 에 사용함 
  12. 프로세스 내부에서 실행되는 흐름의 단위를 뭐라 하는지 작성하시오
  13. __는 하나의 프로세스 안에서 여러 작업을 동시에 실행할 수 있게 해준다
  14. 멀티 스레딩(multi-threading)은 메모리를 공유하지만, GIL(Global Interpreter Lock) 때문에 Python에서는 CPU 연산에 비효율적이다 (o,x)
  15. 그린스레드는 OS 레벨에서 스케줄링되는 스레드로 CPU병렬이 가능하다 (o,x)
  16. __은 작업 완료 후 실행할 함수를 미리 등록해두는 방식
  17.  파이썬의 __ 함수는 yield 키워드를 통해 함수 상태를 일시 중단 또는 재개할 수 있는 이터레이터
  18. async는 비동기 함수를 정의하고, await는 awaitable 객체를 실행하며 논리적 동시성을 제공한다 (o,x)
  19. asyncio는 동기 이벤트 루프 라이브러리다 (o,x)

 

 

  1. 병렬
  2. 분산
  3. x: 병렬 컴퓨팅은 공유 메모리를 사용하고 분산 메모리는 분산 컴퓨팅이 사용한다
  4. 동시 컴퓨팅
  5. 메모리, 자원, 코드, 데이터, 스택
  6. x: 프로세스는 독립적인 메모리 공간(코드 영역, 데이터 영역, 힙, 스택), 다른 프로세스와 메모리 공간을 공유하지 않음
  7. 하나의 프로그램이 여러 개의 프로세스(Process) 를 생성하여 병렬로 실행. 각각 독립된 메모리 공간을 가지므로 GIL의 영향을 받지 않음
  8. o
  9. x: 파이썬의 multiprocessing은 OS-level 프로세스 생성. 스케줄링은 전적으로 OS가 담당
  10. Python 인터프리터가 "한 번에 하나의 스레드만 실행되도록" 강제하는 락
  11.  CPU-bound,  I/O-bound
  12. 스레드
  13. 스레드
  14. o
  15. x : 그린스레드는 OS가 아닌 유저 레벨(사용자 공간)에서 스케줄링되는 스레드로 가짜 스레드/가벼운 스레드라 할 수 있으며 실제 CPU 병렬성은 없다
  16. 콜백
  17. 제너레이터(generator)
  18. o
  19. x: 비동기 이벤트 루프 라이브러리로 싱글 스레드에서 수천 개 작업을 논리적으로 동시에 실행 가능함.
반응형

'문제: 고급 웹프로그래밍' 카테고리의 다른 글

문제: FastAPI의 라우팅  (0) 2025.05.07
문제: API  (0) 2025.05.07
문제: 종합 1  (1) 2025.05.06
문제: 도커  (0) 2025.05.06
문제: GitHub  (0) 2025.05.06