오늘은 컴퓨터 공학기초에 대해 공부했다. 뭔가 오늘은 페어가 없어서 그런가.. 아님 이론 수업이라 그런가.. 집중이 좀 안됐다. 아무튼 오늘은 컴퓨터 공학 기초중에서도 운영체제에 대해 배웠는에
- 프로세스
- 스레드
- 멀티스레드 에 대해 공부했다.
사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행한다. 이때 운영체제에 실행되는 애플리케이션의 코드를 실행한다. 이때 운영체제에서 실행되는 애플리케이션을 프로세스라고 부른다. 맥에서 활성 상태창을 들어가면 알 수 있다.
스레드는 어떠한 프로그램 내에서, 특히 프레세스 내에서 실행되는 프름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(Multithread) 라고 한다.ex) 한 프로세스 내에 스레드가 두 개라면 코드가 실행되는 흐름이 두 개가 생긴다는 의미이다.
멀티프로세스가 애플리케이션 단위의 멀티 태스킹이라면, 멀티 스레드는 애플리케이션 내부에서의 멀티 태스킹이라고 할 수 있다. 멀티 스레드는 다양한 곳에서 사용된다. 대용량 데이터의 처리시간을 줄이기 위해 데이터를 분할하여 병렬로 처리하는 데에 사용할 수도 있고, UI를 가지고 있는 애플리케이션에서 네트워크 통신을 하기 위해 사용할 수도 있다. 그리고 여러 클라이언트의 요청을 처리하는 서버를 개발할 때에도 사용된다.