Kernel Layers

Kernel1 : Data Structures Out : 2/3/04 In: 2/19/04

Kernel2 : The Scheduler  Out : 2/19/04 in: 3/4/04

Kernel3 : Process Management Out 3/18/04 In: 4/9/04

Kernel4 : Semaphores Out : 4/15/04 In : 5/6/04 (absolute deadline)

================================================================

Solutions :

kernel1.h (by Nick Gifford)

kernel1.c (by Nick Gifford)

kernel1 in C++ (by Jennifer Hussey and Angel Toledo)

kernel2 (header and source - by Nick Gifford) Note that this considers 3 queues

 

===================================================================

NOTES :  1. Please do not use Microsoft (Windows) C compilers 2. Do not send multiple e-mails 3. Use the naming convention required (kernelx.c kernelx.h testx.c) where x is the kernel layer number. 4. Late submission is 10 % less each day for a maximum of 3 days

* My .cshrc file is here (as html). You can ftp this file named as '.cshrc' in text format to your SUN account. You need to do 'csh' to enter C shell or 'source .cshrc' if you just want to  run it so that path is valid. The important line is the path line, the rest is optional.

* New kernel layers are to be e-mailed to park029@csusm.edu, not to me.

* For any Solaris thread code : #include <thread.h>, for semaphores : #include <synch.h>, to compile and link at the same time

  gcc -o kernel2 kernel2.c -lthread (Assuming kernel2.c includes kernel1.c which includes kernel1.h) else do :

gcc -o test2 kernel1.c kernel2.c test2.c -lthread to do it all. No inclusion is necessary

* : when in csh, do the following :

        setenv LD_LIBRARY_PATH /usr/local/lib (either at command line or in .cshrc)

* For those of you who still want to use gcc for C++ in the SUN, do the following

1. Set the LD_LIBRARY_PATH environment variable to include

"/usr/local/lib", as   said in class . Note, however, that the command:

setenv LD_LIBRARY_PATH /usr/local/lib only works in the csh shell. The default shell that the sys admin set us up with is bash. To set the environment variable in the bash shell, use:

export LD_LIBRARY_PATH=/usr/local/lib

2. Link with the C++ library. This can be done by using the following compilation command:

gcc -lstdc++ filename.cpp