🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #148

Re: przełączanie

#148
From: Wiktor S.
Date: Sun, 05 Mar 2006 00:16
33 lines
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-mail
References: <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