Operating Systems

Project 3: Kernel Timers

  • Design and impliment facilities that use the real, virtual, and prof interval timers to profile a process.
    • Use the signal facility to determine when the timers have been decremented to zero and count the number of seconds and milliseconds that have elapsed.
    • Use the timers to report CPU time, time spent in kernel space, and time spent in user space
    • Write a subject program to spawn three children that recursivly compute the Fibonacci sequence for a large number. Then print a time report for each child along with the parent.
  • Here are the files for my fibonacci time logger:

Project 2: Linux Shell Program

  • Design a Linux shell using C that will run on top of BASH (Bourn Again Shell) to do the following:
    • Print a command prompt with the user's name and current directory
    • Read commands and arugments
    • Find and execute commands, search the PATH environment variable if necessary
    • Provide for background processing using the '&' argument
    • Allow input and output redirection using the '<', '>' and '>>' arguments
    • Allow for multiple piping of processes using the '|' command
    • Allow for piping and redirection at the same time
  • Utilise the following system commands:
    • fork()
    • wait()
    • pipe()
    • chdir()
    • setenv()
    • getenv()
    • execv()
    • exevp()
  • Here are the files from my final working version (Huyler Shell):

Project 1: Observing Linux Behavior

  • Write a program to report the behavior of the linux kernel:
    • CPU type and model
    • Kernel version
    • Time since last boot
    • Time spent in user mode, system mode and idle
    • The number of disk requests made
    • The number of context switches the kernel has performed
    • The amount of memory configured and available
    • etc. . .
  • Learn the basics of C programming in Linux:
    • The /proc file system
    • Using argc and argv
    • sys/time.h
    • stdio.h and stdlib.h
  • Here are the files from my report program (kernel sample):
    • Linux executable: ksamp
    • Main program: ksamp.c
    • Short list additional functions: short.c
    • Long list additional functions: long.c
Return to Course Work
Resume School Hobbies Theater Photos Links
Last Update: October 21, 2010

Copyright © Christopher Huyler and Huyler.net.
All rights reserved; unauthorized use prohibited.