스레드

포스트: 51
Tags

Posts

51 posts

[리눅스커널] Process - 프로세스, 경량 프로세스, 스레드 소개

Guillermo Austin Kim|2018년 9월 30일

프로세스라는 개념은 모든 멀티프로그래밍 운영체제의 기본입니다.프로세스는 실행중인 프로그램의 인스턴스로 정의할 수 있는데, 16명의 유저가 vi를 동시에 실행하면 각각 16개의 프로세스가 존재합니다. (물론 vi 코드는 동일한 것을 공유할 수 있습니다). 리눅스 코드에서는 프로세스를 태스크(task)나 쓰레드(thread)라고 부릅니다. 프로세스, 경량 프로세스 그리고 쓰레드프로세스라는 용어는 여러가지 다른 추상화 개념으로 씁니다. 프로세스는 프로그램이 어디까지 실행되었는지를 완벽하게 알고 있는 자료 구조체라 볼 수 있습니다. 프로세스는 마치 인간과 같습니다. 프로세스는 생성되고 중요하게 관리될 수 있으며 사소하기도 한 삶을 살고, 자식 프로세스를 생성하기도 하고 마지막에는 죽습니다. 아주 작은 차이가

[리눅스] 특정 process에서 생성된 thread의 갯수 확인하는 방법

Guillermo Austin Kim|2018년 9월 20일

mysqld 프로그램의 쓰레드 갯수를 확인하려면 다음 명령어를 입력하면 됩니다.cat /proc/$(pidof mysqld)/status | grep ^ThreadsThreads: 17 다음 명령어를 입력하니 쓰레드 pid를 확인할 수 있습니다.$ ps -eL -o pid,cmd,lwp,nlwp | grep mysqld 1063 /usr/sbin/mysqld 1063 17 1063 /usr/sbin/mysqld 1155 17 1063 /usr/sbin/mysqld 1156 17 1063 /usr/sbin/mysqld 1157 17 1063 /usr/sbin/mysqld 11

[리눅스] 스레드 사용 시 장점

Guillermo Austin Kim|2018년 9월 20일

평균 처리 시간이 짧아진다.예를 들어 A라는 task가 10이라는 시간이 걸리고 B라는 task가 1이라는 시간이 걸린다고 가정합시다.1) single thread로 처리할 경우 : A를 먼저 처리하고 B를 처리한다고 하면, A는 처리에 10이라는 시간이 들고 B는 처리에 11이라는 시간이 든다. 평균 처리 시간은 10.52) multi thread로 처리할 경우 : A를 먼저 처리하고 B를 처리한다고 가정하고, time slice를 1씩 고르게 배분한다고 가정하면, A를 처리하는데 11이라는 시간이 들고 B를 처리하는데 2라는 시간이 든다. 평균 처리 시간은 6.5 context switch cost를 고려하지 않았을 때, 총 처리시간은 11로 같지만 A,B를 처리하는데 평균적으로 걸린 시간은 mul