[C++] Process와 thread
2022. 10. 5. 23:34
Development/C++
오늘은 thread에 대해 알아보도록 하겠다. 스레드(thread)란 ? 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하고, 작업을 수행한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 두개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 한다. 프로세스(Process) 란? 간단하게 말하면 실행 중인 프로그램이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성된다. 프로세스와 스레드의 차이 우선 가장 큰 차이점으로 메모리 공유여부에 대한 부분이 다르다. 프로세스..
멀티프로세싱, 멀티쓰레딩, 멀티플렉싱
2022. 10. 3. 23:35
Development/Network
운영체제 및 프로그래밍을 공부하다보면 자주 사용되는 멀티프로세싱, 멀티쓰레딩, 멀티플렉싱과 같은 단어와 각각의 장단점들에 대해 잘 정리되어있는 내용들을 모아봤다. 멀티플렉싱이란? 여러명이서 통신할때 하나의 채널만 가지고 통신하는 방식을 말한다. 멀티쓰레드, 멀티 프로세스가 여러 채널을 만들어 통신한다면 멀티플렉싱은 하나의 프로세스, 스레드를 가지고 여러 명의 통신을 연결시킨다. 여러명이 접속할 수 있는 서버를 만들기 위해 여러 IO모델들이 사용된다. 오늘은 대표적인 멀티플렉싱 방식의 IO 모델인 select에 대해 살펴보고자 한다. 1. select 동작 과정 서버는 여러 클라이언트의 접속을 받는다. 그 후 각 클라이언트의 이벤트(데이터 수신여부, 데이터 송신가능 여부, 오류 수신 여부 등)의 이벤트가 ..