thread

코어 수와 더 높은 nice 값으로 프로세스를 실행하는 능력 사이에는 어떤 관계가 있습니까?
thread

코어 수와 더 높은 nice 값으로 프로세스를 실행하는 능력 사이에는 어떤 관계가 있습니까?

8개의 높은 우선 순위(nice=-20) OS 스레드(내가 가지고 있는 코어 수)로 CPU를 "플러딩"하면 명백한 이유로 작업이 "일시 중지"되지만 여전히 사용할 수 있습니다. "높은 우선순위 스레드"라고 말하는 것은 동일한 높은 우선순위 프로세스에 의해 생성된 스레드를 의미합니다. 그러나 64개의 스레드가 있으면 컴퓨터를 완전히 사용할 수 없게 됩니다. 최대 우선 순위 스레드와 코어 간 배포 사이의 관계는 무엇입니까? 주어진 좋은 값을 달성하기 위해 CPU를 완전히 플러딩하려면 얼마나 많은 스레드를...

Admin

스케줄러에 의해 pthread가 중단되는 것을 방지할 수 있습니까?
thread

스케줄러에 의해 pthread가 중단되는 것을 방지할 수 있습니까?

저는 4코어 ARM CPU를 사용하여 임베디드 실시간 Linux 장치를 작성하고 있습니다. 10kHz에서는 주기적인 계산이 필요하며, 이는 지터가 너무 심해져서 손실되어서는 안 됩니다. 내 POSIX 스레드는 사용 중인 루프에서 하드웨어가 제공하는 10kHz 토글 레지스터를 읽고 비트가 토글될 때 계산을 수행할 수 있습니다. SCHED_RR스케줄러가 pthread를 중단하는 것을 방지하기 위해 특별히 이 스레드에 대해 CPU 선호도를 코어 2로 설정하고 우선 순위를 99(최대)로 설정했습니다. 몇몇 ...

Admin

Linux 다중 스레드 파일 검색
thread

Linux 다중 스레드 파일 검색

검색했지만 비슷한 것을 찾을 수 없었습니다. ext4 형식의 NVME 드라이브(예: SAMSUNG 980Pro)에 대용량 코드 베이스(AOSP 또는 Yocto)가 저장되어 있습니다. 이러한 코드 베이스는 수천 개의 하위 디렉터리에 있는 수십만 개의 파일로 구성되는 경우가 많습니다. 파일을 검색하기 위해 find를 사용할 때 일반적으로 다음을 수행합니다. find . -iname "filename.txt" 나는 파일을 조작하고 싶지 않고 단지 파일을 찾고 싶습니다. 나는 이것이 멀티스레딩이라고 생각하...

Admin

HDD의 논리 섹터 크기를 4Kn으로 설정하면 어떤 이점이 있습니까?
thread

HDD의 논리 섹터 크기를 4Kn으로 설정하면 어떤 이점이 있습니까?

최신 하드 드라이브는 "고급 형식"예를 들어 기본적으로 512/4096의 논리/물리 섹터 크기를 보고합니다. 기본적으로 대부분의 Linux 포맷 도구는 4096바이트의 블록 크기를 사용합니다(적어도 Debian/EXT4에서는 기본값입니다). 지금까지 저는 이것이 최적화라고 생각했습니다. Linux/EXT4는 논리 섹터 크기가 512K임에도 불구하고 4K 블록을 HDD로 전송하여 이를 최적으로 처리합니다. 그런데 오늘 나는 읽었다.이 최근 (2021) 게시물. 그 사람은 HDD의 논리 섹터 크기를 51...

Admin

ulimit 한도가 다른 프로세스의 영향을 받는 이유는 무엇입니까?
thread

ulimit 한도가 다른 프로세스의 영향을 받는 이유는 무엇입니까?

32(proc) * 120(proc당 스레드 수)과 같이 많은 수의 스레드(Python Ray 모듈 사용)를 생성하는 일부 프로세스가 있습니다. ssh localhost그런 다음 nTH가 실제로 작을 때(예: 새 연결을 생성하거나 top다른 셸에서 사용되는) 스레드를 생성할 때 다른 프로세스가 실패한다는 사실을 발견했습니다 ulimit -a. ulimit이것이 사용자 범위 제한인지 아니면 프로세스 범위 제한인지 궁금합니다 . 후자라면 왜 다른 프로세스의 영향을 받나요? ...

Admin

/proc/를 사용하여 하위 작업(스레드)의 스택을 찾는 방법/지도?
thread

/proc/를 사용하여 하위 작업(스레드)의 스택을 찾는 방법/지도?

목적: Linux 환경에서 포인터 스캐너를 만드는 방법에 대해 이론화 중입니다. 부인 성명: 내 결과는 Debian Bookworm(현재 안정 버전)과 사용자 정의 커널이 있는 Gentoo 시스템에서 테스트되었습니다. 차이는 관찰되지 않았습니다. 질문: 대상 프로세스에 디버거를 연결하지 않고도 각 스레드/하위 작업 스택에 대한 VMA를 식별할 수 있기를 바랍니다. 이것은 다음을 사용하여 가능해야합니다프로세스의사 파일 시스템 논의하다: Linux 4.5 이전에는 경로명 필드에 상위 작업의 스택 영역이...

Admin

Linux에 pid_max와 thread-max가 모두 필요한 이유는 무엇입니까?
thread

Linux에 pid_max와 thread-max가 모두 필요한 이유는 무엇입니까?

/proc/sys/kernel/pid_max의 차이점을 이해합니다 /proc/sys/kernel/threads-max. 답변에 좋은 설명이 있습니다 pid_max, ulimit -u 및 thread_max의 차이점 이해: /proc/sys/kernel/pid_max주어진 시간에 실행될 수 있는 최대 프로세스 수와는 아무런 관련이 없습니다. 실제로 이는 커널이 할당할 수 있는 가장 큰 숫자 프로세스 식별자입니다. Linux 커널에서 프로세스와 스레드는 동일합니다. 커널은 이를 동일한 방식으로 처리합니...

Admin

하위 스레드가 상위 스레드의 cgroup에 자동으로 들어가는 것을 방지하는 방법이 있습니까?
thread

하위 스레드가 상위 스레드의 cgroup에 자동으로 들어가는 것을 방지하는 방법이 있습니까?

나는 내가 만든 Linux cgroup에 애플리케이션 스레드 중 일부를 명시적으로 작성합니다. cpu예를 들어 지금은 v1에 대해 이야기하지만 v2에 대한 방법을 알고 있다면 좋을 것입니다. 그러나 하위 스레드( pthread_create()상위 스레드의 호출로 생성되거나 cgroup에 명시적으로 기록되거나 상위 스레드 다음에 다시 작성된 스레드)도 직접 작성하지 않고도 cgroup에 나타나는 것을 볼 수 있습니다. 이는 애플리케이션에 나쁜 영향을 미칠 수 있습니다. 일부 스레드가 예기치 않게 cgr...

Admin

malloc()에 의해 할당된 메모리 영역은 무엇입니까?
thread

malloc()에 의해 할당된 메모리 영역은 무엇입니까?

나는 library 를 사용하여 다중 스레드 C 프로그램을 작성하고 있습니다 pthread. 프로그램은 malloc()스레드와 메인 스레드에서 호출됩니다. 반환된 메모리 주소를 확인해 보니 malloc()메인 스레드에 반환된 주소는 malloc()프로그램의 힙 부분 주소인 일반적인 주소(예: 0x80874a0)입니다. 그러나 malloc()(생성된) 다른 스레드에 의해 반환된 주소는 pthread_create()약간 특이합니다. 주소는 주소 공간에서 높습니다(0x7ffa87000a60은 스택 섹션의 ...

Admin

Linux의 스레드 정의는 시스템 호출에 의존합니까?
thread

Linux의 스레드 정의는 시스템 호출에 의존합니까?

클론 clone()/ systemcalls 매뉴얼 페이지에서 다음을 clone3()찾았습니다. CLONE_THREAD(Linux 2.4.0부터). CLONE_THREAD가 설정되면 하위 프로세스는 호출 프로세스와 동일한 스레드 그룹에 배치됩니다. CLONE_THREAD에 대한 나머지 논의를 더 읽기 쉽게 만들려면,"스레드"라는 용어는 스레드 그룹의 프로세스를 나타내는 데 사용됩니다.. 따라서 제가 이해한 바에 따르면 clone스레드는 CLONE_THREAD플래그가 설정된 상태로 생성됩니다(따라서 ...

Admin

Linux는 스레드를 P 코어 또는 E 코어에 고정하는 방법을 제공합니까?
thread

Linux는 스레드를 P 코어 또는 E 코어에 고정하는 방법을 제공합니까?

Intel 제품군의 12세대 이상 칩(및 내가 아는 한 ARM 칩)에는 클럭 속도가 다른 다양한 클래스의 코어가 있습니다. P 코어는 성능을 향상시키고 클럭 속도를 높입니다. E 코어는 에너지 효율성을 향상시키고 클럭 속도를 줄입니다. 이는 주파수를 제한할 수 있는 칩이라고 제가 이해하는 것과는 다르지만, 코어 전반에 걸쳐 동일합니다. 스레드를 P 코어 또는 E 코어 클래스에 바인딩하는 방법이 있습니까? ...

Admin

프로세스 내 및 프로세스 간 컨텍스트 전환 빈도
thread

프로세스 내 및 프로세스 간 컨텍스트 전환 빈도

내가 읽고 있는 책(2013년)에 따르면 Linux 커널에서는 프로세스 내 전환이 프로세스 간 전환보다 훨씬 저렴하다고 나와 있습니다. 동일한 CPU에서 동일한 프로세스의 두 스레드 간에 전환하면 시간이 절약되기 때문입니다. 페이지 테이블 전환 비용. 따라서 동일한 프로세스의 두 스레드/작업 간 전환은 관련되지 않은 작업 간 전환보다 저렴합니다. Linux 커널은 성능 향상을 위해 프로세스 내 전환 가능성을 높이기 위해 어떤 방식으로든(프로세스 선호도 외에) 시도합니까? 그렇지 않다면 이런 일이 얼마...

Admin

특정 프로세스와 관련된 모든 프로세스의 PID를 찾는 방법은 무엇입니까?
thread

특정 프로세스와 관련된 모든 프로세스의 PID를 찾는 방법은 무엇입니까?

다른 프로세스를 위해 작업을 수행하는 프로세스의 PID나 기타 정보를 어떻게 찾을 수 있나요? kworker예를 들어, 스레드 또는 커널의 다른 프로세스에 대한 작업을 수행하는 다른 스레드/프로세스에 대해 이야기하고 있습니다. 내 딜레마는 CPU 선호도가 CPU 0에 바인딩된 sched prio 99로 실행되는 실시간 예약 프로세스가 있지만 (SCHED_FIFO)내 컴퓨터에 CPU 압력을 주입할 때 중요한 rt 프로세스가 중요하지 않은 다른 프로세스를 선점하지 못한다는 것입니다. 프로세스. 아마도 와...

Admin

통계수집
thread

통계수집

저는 CPU 코어에서 실행되는 스레드가 있는 간단한 프로그램을 작성했습니다. 약간 공격적으로 회전하며 CPU 코어를 100% 사용합니다. top+ 로 이것을 볼 수 있습니다 1. N분 후에 다음 사항을 알고 싶습니다. 커널은 실행 중인 스레드를 몇 번이나 선점(중단)합니까? ...

Admin

sigtimedwait는 errno를 ETIMEDOUT, timeout=0으로 설정합니다.
thread

sigtimedwait는 errno를 ETIMEDOUT, timeout=0으로 설정합니다.

cpp 다중 스레드 프로그램에서는 sigwait모든 스레드가 생성되고 프로그램이 초기화된 후 주 함수 끝에 Linux 구현 복사본을 사용합니다. sigset_t mask; struct sigaction sa; signal(SIGPIPE, SIG_IGN); sigemptyset(&mask); sigaddset(&mask, SIGINT); sa.sa_flags = SA_SIGINFO | SA_NODEFER; sa.sa_sigaction = h...

Admin