본문 바로가기




Computer Science

(2)
Python - native coroutine 코루틴이란? - 실행의 지연과 재개를 허용 함으로써, non-preemptive(비 선점적) 멀티태스킹을 위한 subroutine을 일반화 - 서브루틴: 함수의 동작이 끝나면 자신을 호출하였던 메인루틴으로 돌아오는 루틴. 하나의 진입점과 하나의 탈출점 - 코루틴: 루틴을 진행하는 중간 멈춰서 특정 위치로 돌아갔다가 다시 원래 위치로 돌아올 수 있는 루틴. (메인 루틴에 종속적이지 않음) 다양한 진입점과 다양한 탈출점 - 비 선점형 멀티태스킹: 병렬이 아닌 병행성(Concurrency). -> 동시에 실행되는 것처럼 보임. CPU 사용권을 뺏을 수 없음. -> 작업 교환 때 비용이 적음. - 싱글 스레드에서 동작하는 비동기 동시성(Concurrency) 작업 - 멀티스레드를 대체하기 위한 것이 아닌, 스레..
Process vs Thread 정리 기본부터 탄탄히해보자....!! 본 포스팅은 프로세스와 스레드 부터 멀티 프로세스 멀티 스레드에 대해 간단히 정리된 내용을 담고 있다. 프로세스 - 운영체제로부터 자원(CPU 시간, 메모리, 주소 공간 등)을 할당받은 작업의 단위 - 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 (프로그램은 메모리에 올라가 있지 않은 정적인 상태를 뜻한다.) 프로세스의 작동 원리 - 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당 받는다. - Code 영역: 프로그램을 실행시키는 실행 파일 내의 명령어 (소스코드). Read Only. 프로세스 종료될 때 까지 유지. - Data 영역: global, static, array, structure 저장. 프로세스 종료될 때 까지 ..