<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://tech-pubs.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Kernel%3A_Process%2FTime_Management_Syscalls</id>
	<title>Kernel: Process/Time Management Syscalls - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://tech-pubs.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Kernel%3A_Process%2FTime_Management_Syscalls"/>
	<link rel="alternate" type="text/html" href="http://tech-pubs.net/wiki/index.php?title=Kernel:_Process/Time_Management_Syscalls&amp;action=history"/>
	<updated>2026-04-19T22:08:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>http://tech-pubs.net/wiki/index.php?title=Kernel:_Process/Time_Management_Syscalls&amp;diff=480&amp;oldid=prev</id>
		<title>Raion at 23:59, 9 January 2026</title>
		<link rel="alternate" type="text/html" href="http://tech-pubs.net/wiki/index.php?title=Kernel:_Process/Time_Management_Syscalls&amp;diff=480&amp;oldid=prev"/>
		<updated>2026-01-09T23:59:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:59, 9 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l112&quot;&gt;Line 112:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Differences: Separate syscalls instead of unified schedctl; weaker real-time support.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Differences: Separate syscalls instead of unified schedctl; weaker real-time support.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Overall, IRIX provides a rich unified scheduling interface (schedctl) with strong real-time extensions (FRS, fixed-priority) while maintaining compatibility with both SVR4 and BSD/POSIX. For reimplementation, focus on vproc dispatch and dual semantics; FRS is IRIX-specific.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Overall, IRIX provides a rich unified scheduling interface (schedctl) with strong real-time extensions (FRS, fixed-priority) while maintaining compatibility with both SVR4 and BSD/POSIX. For reimplementation, focus on vproc dispatch and dual semantics; FRS is IRIX-specific.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category: Kernel Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Raion</name></author>
	</entry>
	<entry>
		<id>http://tech-pubs.net/wiki/index.php?title=Kernel:_Process/Time_Management_Syscalls&amp;diff=461&amp;oldid=prev</id>
		<title>Raion: Created page with &quot;== Overview == IRIX has many syscalls grouped by core process identity, time management, scheduling control, profiling, and signal-related system calls in the IRIX kernel. These calls operate on vproc_t (virtual process) structures, which encapsulate state shared across threads (uthreads) in multi-threaded processes. Key areas:  Time retrieval/setting UID/GID manipulation (System V and BSD semantics) Process group/session control Nice value and real-time priority adjustm...&quot;</title>
		<link rel="alternate" type="text/html" href="http://tech-pubs.net/wiki/index.php?title=Kernel:_Process/Time_Management_Syscalls&amp;diff=461&amp;oldid=prev"/>
		<updated>2026-01-04T03:48:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Overview == IRIX has many syscalls grouped by core process identity, time management, scheduling control, profiling, and signal-related system calls in the IRIX kernel. These calls operate on vproc_t (virtual process) structures, which encapsulate state shared across threads (uthreads) in multi-threaded processes. Key areas:  Time retrieval/setting UID/GID manipulation (System V and BSD semantics) Process group/session control Nice value and real-time priority adjustm...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview ==&lt;br /&gt;
IRIX has many syscalls grouped by core process identity, time management, scheduling control, profiling, and signal-related system calls in the IRIX kernel. These calls operate on vproc_t (virtual process) structures, which encapsulate state shared across threads (uthreads) in multi-threaded processes.&lt;br /&gt;
Key areas:&lt;br /&gt;
&lt;br /&gt;
Time retrieval/setting&lt;br /&gt;
UID/GID manipulation (System V and BSD semantics)&lt;br /&gt;
Process group/session control&lt;br /&gt;
Nice value and real-time priority adjustments&lt;br /&gt;
Profiling (clock-based, shared-library, R10000 event counters)&lt;br /&gt;
Signal blocking/masking, pending checks, suspend, handler installation, alternate stacks&lt;br /&gt;
Miscellaneous (pause, umask, ulimit, vhangup, sysconf)&lt;br /&gt;
&lt;br /&gt;
The implementation blends System V, BSD, and POSIX behaviors, with extensions for IRIX-specific features (e.g., Frame Scheduler via schedctl).&lt;br /&gt;
== Key Functions ==&lt;br /&gt;
Time Management&lt;br /&gt;
&lt;br /&gt;
gtime: Returns current time-of-day in seconds.&lt;br /&gt;
stime: Sets system clock.&lt;br /&gt;
alarm: Sets interval timer on real-time clock.&lt;br /&gt;
times: Returns process and child CPU times.&lt;br /&gt;
&lt;br /&gt;
Identity Management&lt;br /&gt;
&lt;br /&gt;
setuid / setreuid: Set real/effective UID.&lt;br /&gt;
setgid / setregid: Set real/effective GID (with XPG4 variant for saved-GID semantics).&lt;br /&gt;
getuid / getgid: Return real and effective IDs.&lt;br /&gt;
setgroups / getgroups: Manage supplementary group list.&lt;br /&gt;
umask: Set/get file creation mask (per-uthread, shared).&lt;br /&gt;
&lt;br /&gt;
Process Group and Session&lt;br /&gt;
&lt;br /&gt;
setpgrp: System V style (flag=0 returns pgid).&lt;br /&gt;
BSDsetpgrp / BSDgetpgrp: BSD compatibility.&lt;br /&gt;
setpgid: POSIX version.&lt;br /&gt;
setsid: Create new session.&lt;br /&gt;
&lt;br /&gt;
Scheduling and Priority&lt;br /&gt;
&lt;br /&gt;
nice: Adjust nice value.&lt;br /&gt;
schedctl: Unified interface for:&lt;br /&gt;
Real-time fixed priority&lt;br /&gt;
Time slice setting&lt;br /&gt;
Nice adjustments (process, pgrp, user-wide via plistscan)&lt;br /&gt;
CPU affinity&lt;br /&gt;
Scheduling mode (free/gang)&lt;br /&gt;
Frame Scheduler (FRS) operations&lt;br /&gt;
Legacy hooks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Profiling&lt;br /&gt;
&lt;br /&gt;
profil: Traditional clock-based profiling.&lt;br /&gt;
sprofil: Shared-library profiling.&lt;br /&gt;
evc_profil: R10000 hardware event counter profiling (per-thread counters).&lt;br /&gt;
&lt;br /&gt;
Signal Handling&lt;br /&gt;
&lt;br /&gt;
sigpending: Return pending signal set.&lt;br /&gt;
sigsuspend: Atomically swap signal mask and sleep.&lt;br /&gt;
sigprocmask: Block/unblock signals.&lt;br /&gt;
sigaction: Install signal handler with mask/flags.&lt;br /&gt;
sigstack / sigaltstack: Set/query alternate signal stack (with XPG4 corrected behavior).&lt;br /&gt;
&lt;br /&gt;
Miscellaneous&lt;br /&gt;
&lt;br /&gt;
pause: Sleep until signal.&lt;br /&gt;
ulimit: Query/set resource limits (file size, data segment, descriptors).&lt;br /&gt;
vhangup: Invalidate controlling terminal.&lt;br /&gt;
sysconf: Runtime configuration values (e.g., _SC_ARG_MAX, _SC_NGROUPS_MAX).&lt;br /&gt;
&lt;br /&gt;
== Undocumented or IRIX-Specific Interfaces and Behaviors ==&lt;br /&gt;
vproc_t-Centric Design&lt;br /&gt;
All process-wide operations dispatch through VPROC_ macros on curvprocp, supporting shared state across uthreads.&lt;br /&gt;
Dual Semantics&lt;br /&gt;
&lt;br /&gt;
System V (setpgrp) and BSD/POSIX (setpgid, setsid) co-exist.&lt;br /&gt;
XPG4 variants for sigaltstack (correct stack direction) and setregid (saved-GID handling).&lt;br /&gt;
&lt;br /&gt;
schedctl Extensions&lt;br /&gt;
&lt;br /&gt;
Real-time fixed priorities (non-degrading).&lt;br /&gt;
Gang scheduling modes.&lt;br /&gt;
Full Frame Scheduler (FRS) user interface for hard real-time gangs.&lt;br /&gt;
User-wide nice operations via process table scan.&lt;br /&gt;
&lt;br /&gt;
Profiling Variants&lt;br /&gt;
&lt;br /&gt;
Clock-based, shared-library, and hardware counter (R10000) profiling.&lt;br /&gt;
Fast profiling mode.&lt;br /&gt;
&lt;br /&gt;
Signal Stack Handling&lt;br /&gt;
&lt;br /&gt;
Historical IRIX sigaltstack required user to account for stack growth direction; XPG4 variant fixes this.&lt;br /&gt;
&lt;br /&gt;
== Similarities to illumos and BSD Kernel Implementations ==&lt;br /&gt;
illumos (Solaris-derived)&lt;br /&gt;
Strong overlap:&lt;br /&gt;
&lt;br /&gt;
UID/GID, nice, alarm, times, pause, umask, ulimit nearly identical.&lt;br /&gt;
priocntl(2) analogous to schedctl for real-time classes.&lt;br /&gt;
Signal syscalls match POSIX.&lt;br /&gt;
Alternate stack via sigaltstack.&lt;br /&gt;
&lt;br /&gt;
Differences: No direct FRS; different real-time model.&lt;br /&gt;
BSD (FreeBSD, etc.)&lt;br /&gt;
Close matches:&lt;br /&gt;
&lt;br /&gt;
setreuid, setregid, setpgid, setsid, nice, getpriority/setpriority.&lt;br /&gt;
Signal interfaces standard.&lt;br /&gt;
sysconf for configuration.&lt;br /&gt;
&lt;br /&gt;
Differences: Separate syscalls instead of unified schedctl; weaker real-time support.&lt;br /&gt;
Overall, IRIX provides a rich unified scheduling interface (schedctl) with strong real-time extensions (FRS, fixed-priority) while maintaining compatibility with both SVR4 and BSD/POSIX. For reimplementation, focus on vproc dispatch and dual semantics; FRS is IRIX-specific.&lt;/div&gt;</summary>
		<author><name>Raion</name></author>
	</entry>
</feed>