GUTS

A Multi-User Operating System for the PDP 11/40

Order Number: XX-38AC7-79

This document details the Groningen University Timesharing System (GUTS), an interactive, multi-user operating system developed for the PDP11/40 computer. Conceived initially as a teaching project in 1975, GUTS aimed for simplicity, efficiency, and usability as an educational example. The system was first written in assembly language but was largely redesigned and rewritten in 1977 using IMP, a high-level Pascal-like language, to improve manageability and documentation.

GUTS operates with a hierarchical structure, building from hardware to user programs. Its core components include a kernel (written in assembly language for efficiency and mutual exclusion), various supervisor processes, and user processes. The kernel handles fundamental tasks like process interaction (semaphores, messages) and despatching, while supervisor processes manage shared system resources such as processor time, memory, disk space, and consoles. These include a clock handler, disk driver, core manager, file system, console handlers, and a scheduler.

The system's hardware requirements include 112 K bytes of main memory, a memory management unit, a decwriter, a clock, and an RK05 disk. The memory management unit, although not ideal for demand paging, maps 16-bit virtual addresses to 18-bit physical addresses. User processes are allocated 64 K bytes of virtual memory, divided into 8 segments, with specific segments for I/O, shared code, and data.

The file system is RT11 compatible, employing contiguous file allocation on disk. It provides services for file creation, deletion, renaming, access permission management, and connecting files to user virtual memory. Despite contiguous allocation simplifying transfers, it can lead to fragmentation and difficulty in extending files. Console handling supports both ASCII and raw modes, managing input/output with features like line reconstruction and echoing.

Recovery services allow user processes to recover from errors by resetting their state and disconnecting files. The login and logout services manage user authentication and the setup/teardown of user process environments. A round-robin scheduler allocates processor time among users, involving swapping files between core and disk due to limited memory. The document also outlines the influence of the IMP compiler on the subsystem, including stream-based I/O and available development tools. Finally, it suggests future developments, such as papertape handlers, multi-disk support, an archive system, and performance evaluation.

XX-38AC7-79
May 1978
66 pages
Quality

Original
43MB

Site structure and layout ©2025 Majenko Technologies