스레드 2

[OS/운영체제] 스레드 (Thread) - (2)

스레드 라이브러리 (Thread Libraries) 스레드 라이브러리는 프로그래머에게 스레드를 생성하고 관리하는 API를 제공한다. 스레드 라이브러리의 구현은 2가지로 나뉘는데, 1. 모든 라이브러리를 커널의 지원 없이 사용자 공간에 제공한다. 이는 라이브러리의 함수를 호출하는 것이 곧 시스템 콜이 아닌 사용자 공간의 지역 함수를 호출한다는 것이라는 의미이다. 2. 운영체제에 의해 직접 지원되는 커널 수준의 라이브러리를 구현한다. 이는 라이브러리의 함수 호출이 곧 시스템 콜임을 의미한다. Pthreads (POSIX Standard) 스레드의 생성과 동기화에 대한 API를 정의한 것이다. (Specification, not an Implementation) C언어에서 pthread.h 헤더 파일을 inc..

운영체제 2020.11.06

[OS/운영체제] 스레드 (Thread) - (1)

스레드 (Thread) 웹 서버가 페이지, 이미지, 사운드 등의 클라이언트 요청을 처리하는 상황을 생각해 보자. 사용량이 많은 웹 서버는 수천, 수만 명의 사용자들의 수많은 요청을 연속적으로 받게 될 것이다. 하지만 만약 웹 서버가 한 번에 단 하나의 요청만 처리할 수 있다면, 사용자들은 간단한 요청 하나에도 많은 시간을 기다리며 불편을 토로할 것이다. 이러한 상황을 해결하는 방법으로는 각 요청마다 요청을 처리하는 프로세스를 두는 것을 들 수 있다. 서버가 요청을 받으면, 서버는 요청을 처리하는 프로세스를 생성하여 받은 요청에 대한 적절한 서비스를 제공한다. 하지만 수천, 수만 개의 요청에 대해 각각 프로세스를 생성하는 데에는 시간 자원의 낭비가 심해질 것이다. 그렇다면 프로세스 하나가 마치 여러 개의 ..

운영체제 2020.11.06