Article View: pl.comp.lang.asm
Article #148Re: przełączanie
From: Wiktor S.
Date: Sun, 05 Mar 2006 00:16
Date: Sun, 05 Mar 2006 00:16
33 lines
2019 bytes
2019 bytes
> Możesz przejąć przerwanie zegara i za każdym tyknięciem (18 razy na > sekundę) zachowywać rejestry bieżącego procesu i przełączać się do > innego zadania, przywracając rejestry tamtego, łącznie ze stosem. Nawet nie trzeba ręcznie zachowywać wszystkich rejestrów, wystarczy skok do furtki zadania... o ile mamy odpowiedni poziom uprawnień do grzebania przy trybie chronionym. (nieoceniona lektura to dokumentacja architektury AMD i Intela... pdf-y są do ściągnięcia) Jednak przełączanie zadań tylko co 1/18 sekundy to za mało. Robiłem niedawno coś podobnego, system był przełączany na następne zadanie przy wielu okazjach, np. podczas czekania na klawisz: call readkey a tam coś tego typu: petla: call next_task call czy_nacisnieto_klawisz jz petla ret gdzie next_task przełącza procesor na następne zadanie. po iluś przełączeniach wrócimy z powrotem do tego, i next_task się zakończy jakby nigdy nic. W ten sposób zadanie nic nie robiące a tylko czekające na klawisz nie zajmuje czasu procesora. -- Azarien
Technical Details
Message-ID:
<dudaju$tet$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<tiui02p9irebn6563c4us550otj6g97tbc@4ax.com> <duc2dg$f0t$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: "Wiktor S." <wswiktorSP@Mpoczta.fm> Newsgroups: pl.comp.lang.asm Subject: Re: przełączanie Date: Sun, 5 Mar 2006 01:16:08 +0100 Organization: Onet.pl Lines: 34 Message-ID: <dudaju$tet$1@news.onet.pl> References: <tiui02p9irebn6563c4us550otj6g97tbc@4ax.com> <duc2dg$f0t$1@nemesis.news.tpi.pl> NNTP-Posting-Host: 155.168.wmc.com.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1141517758 30173 87.250.168.155 (5 Mar 2006 00:15:58 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Sun, 5 Mar 2006 00:15:58 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670 X-Sender: 63e3folRCjcGWUjNfLSN0w== X-Newsreader: Microsoft Outlook Express 6.00.2900.2670 X-Priority: 3 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit