2013-07-03 2 views
1

이 질문이 약간 있지만 사과 하긴하지만 내 연구에 좋은 답변을 찾을 수 없다는 것에 사과드립니다. 운영 체제에는 다른 스레드를 관리하는 등의 작업을 수행하는 기본 시스템 스레드가 있지만 하이퍼 스레드되지 않은 단일 코어 프로세서에서이 작업이 정확히 어떻게 작동합니까? 내 생각에, 응용 프로그램이 사용하고있는 다른 스레드를 제어 할 수 없으므로 시스템 스레드가 차단됩니다. 하지만 분명히 가능하기 때문에 정확히 작동합니까? 나는 다른 스레드의 작업을 자체 스레드로 통합 한 시스템 스레드를 생각해 보았지만, 그것은 마치 나에게 끔찍한 생각처럼 보입니다.싱글 코어 프로세서의 시스템 메인 스레드

+1

http://en.wikipedia.org/wiki/Preemption_(computing) – SLaks

+1

수천 개의 실행 스레드가있는 것이 정상입니다. 물론 이것은 단일 코어 프로세서에만 국한된 것은 아닙니다. 스레드를 일시 중단하여 다른 스레드를 실행할 수있게하는 기능은 표준 운영 체제 기능입니다. 이 내용은 운영 체제 디자인에 대한 소개 서에서 다뤄지며 모든 프로그래머에게 필수입니다. –

+0

흥미로운 페이지였던 @SLaks와 나는 그것에 대해 꽤 많은 것을 배웠다. 고마워! – danielunderwood

답변

4

'운영 체제에 다른 스레드 관리와 같은 작업을 수행하는 기본 시스템 스레드가 있음을 알고 있습니다.'- 아니요, 선점 형 멀티 스레드 OS가 아닙니다. 모든 효과적인 것들.

부팅 후 OS는 '인터럽트'시에만 스레드에 의해 입력됩니다. 소프트웨어 인터럽트 - 시스템 호출과 드라이버를 통한 하드웨어 인터럽트 - 스레드 상태를 바꿀 수 있습니다. 이러한 인터럽트들 사이에서, OS는 전혀 아무것도하지 않습니다. 인터럽트 없음 : OS는 아무 것도하지 않습니다.

특히 소변이 좋지 않은 'Intro to Threads'페이지/챕터를 보면 이해하기 어렵다는 점을 알고 있습니다.

엄청난 양의 재료가 있음을 알고 있어야합니다. 웹상의 스레드 등이 부적절하거나 오도 된 것, 지나치게 단순화 된 것 또는 실제로 잘못 된 것 중 하나입니다. 일반적인 잘못 키 프레이즈 : '타임 슬라이스', '양자', '라운드 로빈', '타이머 예약'.

+1

+1 스레드에 대한 대부분의 온라인 문서를 특성화합니다. 어쩌면 당신은 질문자에게 좋은 출발점을 제공 할 수 있습니다. – Arno

+0

@MartinJames 답변을 주셔서 감사 드리며 일부 온라인 기사의 잘못에 대해 알려주십시오. 제가 읽은 거의 모든 것들은 그 용어를 사용했습니다. 나는 더 나은 이해를 얻기 위해 이것에 대해 읽어야한다는 결론에 도달했다. 읽을만한 정보가 있다면 알려주십시오. – danielunderwood

2

은 내가, 스케줄러는 모든 운영하는 잘 알고있어 모든 운영 체제에서

... 운영 체제는 다른 스레드를 관리하는 등의 작업을 수행하는 메인 시스템 스레드를 가지고 있음을 알고 작업 전환이 발생하면 CPU. "기본 시스템 스레드"가 없습니다.