마이크로칩 10월
웨비나

쉽게 배우는 리눅스 시스템 프로그래밍- 쓰레드 생성과 소멸

2018.02.23 08:30~12:30 정재준 대표 / 전기전자 평생교육원
  • 김지호2018-02-23T11:07:57.393Z

    [질문] V는 Virtual 이 맞군요^^. 설명하신 것처럼 CFS 대기한 만큼 보상을 받을 수 있는 스케쥴링이군요. 그런데, 꼭 이 스케쥴링기법만을 사용하도록 Fix 인가요? 아니면 상황에 따라 다른 스케쥴링 기법이 혼용될 수 있는건가요?
  • kernel2018-02-23T11:18:39.217Z

    혼용이 됩니다. RT, CFS, Deadline, Stop, idle, 5섯가지 정도가 혼용되고 리눅스 커널소스 /kernel/sched/에 이 종류별로 소스 파일이 있습니다. /kernel/sched/core.c에서 이들을 혼용하고 관리합니다.
  • 김정수2018-02-23T11:06:29.423Z

    로드밸런싱을 할 수 있는 방법에는 어떤 것이 있을까요?
  • kernel2018-02-23T11:15:09.200Z

    리눅스 커널소스 /kernel/sched/loadavg.c를 보시면 질문하신 힌트를 얻을 수 있을듯 합니다.
  • 김정수2018-02-23T11:05:27.653Z

    테스크 전환주기(ms)는 어떤가요?
  • kernel2018-02-23T11:12:30.630Z

    리눅스 커널 소스의 CONFIG_HZ 설정값을 100으로 하면 10ms가 됩니다. 보통 이 범위에서 결정됩니다.
  • 조재영2018-02-23T11:05:13.843Z

    한번 생성된 프로세스 또는 쓰레드의 우선순위와 스택크기를 동적으로 바꿀수 있습니까?
  • kernel2018-02-23T11:11:30.640Z

    우선순위는 동적으로 바꿀 수 있을듯 합니다. /proc나 /sys 경로를 보면 힌트를 얻을 수 있을듯 합니다. 스택크기는 저도 분석을 자세히 해봐야 답변이 될 수 있겠습니다.
  • 김정수2018-02-23T11:04:45.263Z

    스레드별 우선순위도 중요하다고 생각합니다.
  • kernel2018-02-23T11:08:31.227Z

    네, 프로세스,쓰레드 모두 리눅스 커널 스케쥴러에 의해서 우선순위(priorty)를 중요하게 관리합니다.
  • 김지호2018-02-23T11:04:00.233Z

    [질문] vruntime 에서 v 의 의미는 Virtual 로 생각하면 될까요?
  • kernel2018-02-23T11:06:37.147Z

    네, CPU에서 실행된 시간으로 보면 됩니다. 그래서 real time이 아닌 virtual time입니다.
  • 여경민2018-02-23T11:03:15.853Z

    프로그래밍한지 얼마 안되어 초보 질문일수 있습니다. 양해 부탁드립니다. 실행중인 쓰레드의 변경에 의해서 컨텍스트 스위칭이 발생하는데요, 레지스터에서 둘이상의 쓰레드가 같은 메모리 영역에 동시에 접근하는 경우는 어떻게 되나요?
  • kernel2018-02-23T11:05:24.410Z

    동시접근 문제는 Loking(동기화)로 커널 소스에서 해결하고있습니다. spin_lock, mutex, 세마포어, RCU기법등를 사용하여 질문하신 문제를 해결하고 있습니다.
  • 김수열2018-02-23T10:52:26.413Z

    [질문] 스펙터, 멜트다운 결함 CPU패치로 인한 리눅스 커널의 변화는 없을까요?
  • kernel2018-02-23T10:58:14.077Z

    네, 말씀하신 원인에 의해서 리눅스 커널도 변화고 계속 업그레이드 될 듯 합니다.
  • 무명2018-02-23T10:52:16.590Z

    [질문] 임베디드 환경에서 개발된 로직을 리눅스로 변경해야 하는데요. 아까 말씀하신 Time Slice는 Process마다 설정이 가능한건가요? 추가적으로 Real Time으로 구현하기 위해 현재 수행되는 Process가 실제 수행되어야 하는 시간보다 지연되었는지 여부를 확인 할 수 있나요?
  • kernel2018-02-23T10:57:04.337Z

    time slice는 프로세스마다 설정되는데, 이런 것들이 스케쥴러에서 관리되기 때문에 스케쥴러 소스를 자세히 분석해야 할듯 합니다. 한가지 힌트가 될 수 있는것은 리눅스 파일 경로중에서 /proc나 /sys 경로를 보면 조정해볼 정보들이 있을듯 합니다.
  • 조재영2018-02-23T10:47:50.060Z

    리눅스에서 소스분석 툴은 어떤 것을 사용하십니까?
  • kernel2018-02-23T10:54:00.387Z

    저 같은 경우는 vi에디터와 Codeblocks에서 소스들을 프로젝트 등록하여 분석하고 있습니다. 여러가지 분석툴들이 많은듯 한데, 인터넷 검색정보 활용하면 될듯 합니다.