•  Back 
  •  Prozessfunktionen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File5.11.26  Psetlimit                                                 TOS

 Name:         »Psetlimit« - Limits der Systemresourcen 
               setzen/erfragen.

 Gemdosnummer: 287

 Deklaration:  int32_t Psetlimit ( int16_t lim, int32_t value );

 Beschreibung: Die Funktion dient dem Setzen/Abfragen einer 
               Resourcenbegrenzung für den aktuellen Prozess. Der 
               Parameter lim bestimmt die gewünschte Resource-Art:

                lim  Bedeutung

                1    max. CPU-Zeit für den Prozess (Millisekunden)
                2    max. Gesamtspeicher des Prozesses in Bytes
                3    max. allozierbarer Speicher für den Prozess (in 
                     Bytes).

               Der Unterschied zwischen 2 und 3 besteht darin, daß der 
               Gesamtspeicher auch die TEXT-, DATA- und BSS-Segmente 
               des Prozesses umfaßt.

               Mit Hilfe dieser Funktion werden die Resource- 
               Begrenzungen sowohl für den aktuellen Prozess, als auch 
               für alle später erzeugten Childs einzeln eingestellt. 
               Wenn ein Prozess also ein CPU-Limit einstellt, und 
               danach mehrere Child-Prozesse erzeugt, dann gilt dieses 
               CPU-Limit auch für jeden einzelnen Child, und nicht 
               etwa für alle Childs zusammen.

               Der Parameter value bestimmt den Wert, den eine 
               Resource annehmen soll. Ein Wert von 0 bedeutet in 
               diesem Zusammenhang, daß die Resource unbegrenzt ist. 
               Ein negativer Wert läßt die Resource unverändert.

               Hinweis: Es gibt keine Restriktionen beim Vergrößern 
               der Begrenzungen. Jeder Prozess kann jede seiner 
               Begrenzungen beliebig verändern oder sogar auf 
               unbegrenzt setzen.

               Speicherbegrenzungen kommen bei Pexec nicht zur 
               Anwendung. Ist z.B. ein Prozess auf 256Kbyte begrenzt, 
               kann er dennoch mit Pexec einen Tochterprozess starten, 
               der mehr Speicher verbraucht. Achtung: Dies gilt nicht 
               in MagiC; hier werden Speicherbegrenzungen bei Pexec 
               vererbt!

               Speicherbegrenzungen sind nicht rückwirkend gültig. 
               Besitzt ein Prozess z.B. 256Kbyte und ruft dann 
               Psetlimit auf, um seinen Bedarf auf 128Kbyte zu 
               reduzieren, dann wird er zwar nicht beendet, aber er 
               kann keinen Speicher mehr allozieren, bis seine Größe 
               unter die angegebenen 128Kbyte fällt.

               Begrenzungen der CPU-Zeit wirken hingegen rückwirkend. 
               Verkürzt ein Prozess seine CPU-Zeit unter den bisher 
               gültigen Wert, dann empfängt er sofort ein SIGXCPU- 
               Signal.

               Achtung: Ungültige Funktionsnummern und solche, die von 
               MagiC nicht unterstützt werden, liefern EINVFN.

               Hinweis zu MagiC: Ist ein Programm mit dem 
               Dienstprogramm LIMITMEM modifiziert worden, hat diese 
               Einstellung Vorrang vor dem Speicherlimit des 
               aufrufenden Prozesses. Psetlimit wird vom erweiterten 
               shel_write()-Modus unterstützt; damit können 
               speicherbeschränkte Applikationen auch parallel 
               gestartet werden.

 Ergebnis:     Die Funktion liefert den alten Begrenzungswert zurück.

 Verfügbar:    MagiC ab Version 4.0 (17.09.1996) und ab der ersten in 
               MultiTOS integrierten MiNT Version 1.04.

 Gruppe:       Prozessfunktionen

 Querverweis:  Binding   Prusage   Signale