2013-10-17 2 views

답변

2

예 아니요. 여러 종류의 멀티 태스킹 방법이 있으며 각 하드웨어마다 다른 수준의 하드웨어 지원이 필요합니다.

8086 칩은 멀티 태스킹이 가능하지만 협력 멀티 태스킹 (Windows의 초기 버전, 예 : 3.0 사용)이라는 유형의 멀티 태스킹 만 가능합니다. 그것이 작동하는 방식은 시스템의 모든 프로그램이 매번 운영 체제로 다시 제어권을 반환해야한다는 것입니다. 운영체제는 차례로 다음 프로그램으로 제어권을 넘겨 주며,이 프로그램은 얼마 후 운영 체제로 제어권을 반환해야합니다.

프로그램에서 운영 체제로 다시 제어권을 넘겨주지 않으면 어떤 단점이 있습니까? 그런 다음 전체 시스템이 멈추고 나쁜 프로그램을 종료 할 방법이 없습니다.

오늘날 사용되는 멀티 태스킹 유형은 선점 형 멀티 태스킹이라고합니다. 그것은 각 프로그램을 중단하고 다른 프로그램으로 제어를 전달함으로써 작동합니다. 프로그램은 멀티 태스킹을 전혀 인식 할 필요가 없으며 컴퓨터에서 실행되는 유일한 프로그램이라고 가정하여 작성할 수 있으므로 실제 멀티 태스킹 요소는 투명합니다. 이러한 종류의 멀티 태스킹은 가상 메모리라고하는 형태의 하드웨어 지원이 필요합니다. 운영 체제는 각 프로그램의 주소 공간을 분리하여 각 프로그램이 서로를 직접 인식 할 수 없도록해야합니다. 그런 다음 하드웨어 인터럽트 타이머를 사용하여 각 프로그램을 인터럽트하므로 운영 체제가 한 태스크에서 다음 태스크로 이동할 수 있습니다.

서로 다른 아키텍처에는 실제로 작업 전환을 수행하는 여러 가지 방법이 있습니다. 가상 메모리와 하드웨어 타이머를 지원하는 것만으로 모든 것을 소프트웨어에서 수행 할 수 있지만, 일부 아키텍처는 작업 등록을로드하는 x86과 같이이 프로세스를 단순화하기위한 구성을 지원합니다. 그러나 멀티 태스킹을 구현하는 데 꼭 필요한 것은 아니며, 대부분의 운영 체제는 자신의 작업 전환을 인식하고 있습니다. 선제 멀티 태스킹 방법은 x86 아키텍처에서 작동에 대한 자세한 내용은

, 나는이 기사를 추천 : http://wiki.osdev.org/Multitasking_Systems

편집 :

사용되는 MP/M-86 운영 체제 무엇을 할 수 하드웨어 타이머를 사용하여 프로세스를 중단하고 다음 프로세스로 이동함으로써 8086의 선점 형 멀티 태스킹 모델로 간주되므로 8086은 형식 또는 선점이 가능합니다. 그러나 위에 제기 된 동일한 문제 중 많은 부분이 여전히 관심사입니다. 예를 들어, 각 프로세스는 다른 프로세스 메모리 공간에 액세스 할 수 있습니다. 또한 하드웨어 타이머 인터럽트를 비활성화하여 시스템이 하이재킹되는 것을 방지하는 것도 없습니다. 강력한 멀티 태스킹 환경을 갖추기 위해서는 많은 하드웨어 지원이 필요합니다.

+0

MP/M-86 및 동시 CP/M이 일반 8086 CPU에서 선점 형 멀티 태스킹을 지원하지 않았습니까? –

+0

@ AndrewJ.Brehm 바로 MP/M-86을 사용하여 8086에 선점 형 멀티 태스킹이 있습니다. 이 문제를 다루는 부록을 추가했습니다. – Dougvj

관련 문제