Unformatted text preview:

The Origin of Tempo Initial definition of system calls and implementation done for a textbook An Introduction to Real Time Systems From Design to Networking with C C by Buhr and Bailey Prentice Hall 1999 Initial implementation was 16 bit version used skinny C and used MS DOS for loading I O and first level interrupt handlers The Tempo Operating System Part 1 History and Concepts 1 2 UNO Tempo Development Spring Summer 2000 UNO Tempo Development 2000 System calls defined more symmetrically with respect to timeouts Keyboard input added System rewritten in C assembler MS Intel syntax and renamed Tempo C Examples written to demonstrate system calls System and examples distributed with build scripts and MS 16 bit compiler assembler and linker 3 UNO Tempo Development Fall 2005 System rewritten and renamed Tempo 32 for development in Linux Cygwin environments for execution as a 32 bit standalone system Added use of kernel user mode simple use of IA 32 paging hardware standalone bootstrap loader makefiles and scripts for use with Bochs emulator 4 UNO Tempo Development Spring 2006 Simple disk I O and initial filesystem code added Existing system calls restructured New system calls added for POSIX like I O parameter passing to new processes killing processes waiting on process termination Code reorganized for easier understanding and modification 5 Filesystem code was enhanced and a simple shell command line interpreter was written Assembler and C minus compiler from another project ported to produce executable files for Tempo A new run system call added to load C minus and elf executables Storage is now dynamically allocated in pages to processes paged virtual memory 6 1 UNO Tempo Development Summer Fall 2006 Current Development Activity Additional work done on executables loaded from the filesystem the run system call Dynamic expansion of the stack implemented based on experimental interpretation of the reason for page faults Additional work done on system configuration to normalize development on Linux and Cygwin The filesystem block size will be changed from 512 bytes to 4K bytes Additional development tools are being written to actually run in the Tempo system Ethernet device drivers are being written one is operational another is close and the XINU TCP IP implementation will be ported soon A FAT filesystem and floppy disk driver will be added to the standard I O facilities Next steps 7 What is Tempo 8 Why Study Tempo It s an IA 32 Intel Architecture 32 bits operating system Primarily designed for pedagogic purposes Can be booted from a floppy disk or more conveniently used with the Bochs IA 32 emulator software Most of the source code is in C with a reasonable amount in assembler To better understand the environment an operating system provides for application exxecution To permit comparison with existing commercial operating systems To gain direct experience with concurrent programming To gain a better understanding of operating system concepts design and implementation issues 9 Major Characteristics of Tempo 10 Stand alone System Stand alone not a toy operating system Non preemptible monolithic kernel Processes really threads scheduled using priorities and either run to completion or roundrobin scheduling Semaphores signals and message passing for IPC timeouts for most blocking calls Protected mode execution for processes I O calls similar to POSIX calls 11 Tempo is a stand alone system which means it can and does boot and run on a bare system with only a BIOS It does not depend on other software when it is executed This is good because it causes us to provide all necessary components It s also somewhat problematic since if we want a feature or function we must build it ourselves 12 2 Non preemptible Monolitic Kernel Priority Scheduling Kernel functions e g system calls execute with interrupts disabled except when it is necessary for a process to block The kernel and some applications are built as a single executable image A simple filesystem and support for loading and executing ELF format executables is used for executables that are not intended to be permanent Each process is assigned a priority when it is created priorities can be changed by the process during execution Processes may be scheduled using run to completion or round robin scheduling Golden rule of scheduling at any time one of the highest priority ready process es will be executing 13 14 Protected mode Execution IPC Interprocess Communication Traditional counting semaphores are provided Each process has several numbered maskable queues on which it may receive signals or messages Signals are synchronous not like UNIX and anonymous and have no data components Messages communicate a 32 bit value and identify the sender and an optional acknowledgement queue number Processes run in protected mode except when executing a system call The kernel normally runs in privileged mode The Intel IA 32 architecture provides 4 privilege levels but only two 3 and 0 are used like Linux Windows etc In user mode processes cannot execute privileged instructions like I O 15 POSIX like I O Facilities 16 Tempo Development I O is done by user processes using facilities that look a lot like POSIX E g open path mode open an existing file creat path create or truncate a file mkdir path create a directory close fd close a file read fd buffer size read a file write fd buffer size write a file seek fd offset origin set I O position remove path delete a file or directory Tempo development is primarily done using GNU tools gcc C compiler ld linker make build utility objcopy copy and translate object files dd raw file copy for disk images Additional tools are provided for filesystem image creation maintenance and checking 17 18 3 Development Environments Execution Environments Cygwin www cygwin com is a Linux like environment for Windows It provides a DLL which maps Linux system calls to the Windows operating system a collection of tools which provide Linux look and feel including gcc ld etc Simple installation load from class web page Tempo development can obviously also be done in a Linux environment 19 Tempo systems can be copied to a floppy disk and booted on a standard PC This approach is slow however since each change to the system requires creating a new floppy and rebooting the execution machine Execution can also be done using the Bochs IA 32 emulator This is the approach we will use most frequently 20 WARNING ALTHOUGH TEMPO SYSTEMS CAN BE


View Full Document

UNO CSCI 8530 - History and Concepts

Loading Unlocking...
Login

Join to view History and Concepts and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view History and Concepts and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?