스레드2 [OS] 멀티 프로세스 & 멀티 스레드 with Python 프로세스 · 스레드 프로세스가 디스크로부터 메모리에 적재되어 실행 중인 프로그램이라면 스레드는 프로그램을 실행하는 주체이다. 프로세스는 Code, Data, Stack, Heap의 구조로 된 독립된 메모리 영역을 할당받는다. 이들은 서로 격리되어 있으며, 별도의 고유한 주소 공간을 가진다. 운영 체제는 각 프로세스에 대한 완전한 정보를 유지관리하기 위해 데이터 구조를 사용하는데, 이를 PCB(Process Control Block)이라고 한다. 프로세스가 서로 독립적이기 때문에 IPC를 사용한 통신을 한다. 컨텍스트 스위치 비용이 비싸다. 동기화 작업이 필요 없다. 스레드는 경량화된 프로세스이다. 한 프로세스 내에서 Stack만 할당받고, Code, Data, Heap 영역을 서로 공유한다. 공유된 자원.. 카테고리 없음 2023. 1. 18. [OS] 컨텍스트 스위치(Context Switch)란? 컨텍스트 스위치 란 CPU를 한 프로세스 또는 스레드에서 다른 프로세스 또는 스레드로 전환하는 것이다. 여러 프로세스가 단일 CPU 리소스를 공유할 수 있도록 CPU의 상태(컨텍스트)를 PCB에 저장하고 복원하는 컴퓨팅 프로세스이다. 컨텍스트 스위치는 커널 모드에서만 발생한다. 커널 모드는 커널만 실행되고 모든 메모리 위치 및 기타 모든 시스템 리소스에 대한 액세스를 제공하는 CPU의 특권 모드이다. 컨텍스트 스위치가 발생하는 세 가지 시점 1. 멀티태스킹 (Multitasking) 멀티태스킹은 여러 프로세스가 서로 간섭하지 않고 단일 CPU에서 겉보기에 동시에 실행되는 것처럼 보이는 시스템이다. 이러한 동시성의 환상은 빠른 속도(초당 수십 또는 수백 회)로 발생하는 컨텍스트 스위치를 통해 달성된다. 프.. 카테고리 없음 2023. 1. 15. 이전 1 다음 반응형