Fall 2013
Instructor: Betty O'Neil, eoneil@cs.umb.edu
Lectures:
MW
7:00pm in
M-3-430
Syllabus Note that cs341 is a strong prerequisite for this course. If you haven't taken cs341, you need C programming, computer architecture, some x86 assembly language programming, and preferably experience in hardware programming. Hardware programming and interrupt programming will be reviewed in this course.
First week: get an account for cs444 by running apply, add module ulab to your .cshrc. Visit www.cs.umb.edu/ulab and its linked documents, review cs341, for example by reading Prof. Wilson’s CS341 lecture slides and run $pcex/test.c on an SAPC with help of microprocessor lab info linked below.
hw1 (provided files) A Device-independent I/O Package: remgdb-testio0.script due midnight 22 September, rest due midnight 1 October in your cs444/hw1 directory
(provided
files) The Tiny UNIX OS: System Calls due midnight
Monday 28 October in your cs444/hw2 directory solution (zip)
hw3 (provided files)
Multitasking Tiny UNIX, due Sat., 23 Nov. in your cs444/hw3
directory solution (zip)
hw4 (provided files)
A Semaphore Service for Tiny UNIX, due Wed., Dec. 11 in your
cs444/hw4 directory Deadline:Sunday, Dec. 15. New: Solution (zip)
Wed.
Sept. 4 Intro, (Process) Virtual
Machine concept
Mon. Sept. 9 User Memory Layout, UNIX
System calls
Wed. Sept. 11 SAPC environment,
hw1 intro
Mon. Sept. 16 C without malloc,
hardware programming in C
Wed. Sept. 18 Interrupts (slides) (typewr.c handout)
Mon., Sept. 23 Transmit Interrupts,
kprintf
Wed., Sept. 25 Interrupt Coding,
debugging, scripted execution (handout)
Mon., Sept. 30 Finish intro (Chap 1),
start on Chap. 2, processes (handout)
Wed., Oct. 2 Process states and
transitions
Mon., Oct. 7 Process-Kernel
transitions
Wed., Oct 9 Processes and Threads
(user-kernel
transition handout)
Wed., Oct. 16 Mutex Mechanisms
Mon., Oct. 21 Producer-Consumer
Problem (handout, handout)
ProdConsSemaphore.java
Wed., Oct 23 Stacks in hw2, Message
Passing, finish IPC (interprocess communication)
Mon., Oct 28 Midterm Review,
Scheduling
Midterm Exam Wed., Oct 30 Practice
Midterm Exam (Solution)
Mon., Nov. 4 Process switching,
for hw3, the multitasking Tiny UNIX
Wed., Nov. 6 Multitasking, for hw3
Wed., Nov. 13 Memory Management Debuglog handout, for hw3
Mon., Nov. 18 Paging
Wed., Nov. 20 Demand Paging, Page
Replacement Demo on x86 paging
Mon., Nov. 25 Memory Management hw4 intro
Mon., Dec. 2 More on hw4, Chap. 5 I/O
Revisited
Wed., Dec. 4: Preemption (handout)
Mon., Dec, 9 Deadlocks
Wed., Dec. 11 Final Review
Coming: Final exam, Wednesday, Dec. 18, 6:30-9:30 (starting at 6:15 if possible) in M-3-407 Practice Final . New: Solution
Our Google group (can still request membership at this webpage)
Once in the group, you can send email to cs444_f13@googlegroups.com to post messages, and will get posted messages by email.
How to access ulab.cs.umb.edu from offsite and transfer files
You can do all your development for this class using the department computers, accessed by ssh. Optionally, you can use your own system--
How to use gcc on your Windows system for cs444
How to use gcc on your Linux or
Mac system for cs444
Microprocessor lab info: How to use SAPCs for programming assignments.
CS341 course home page, with more links to hardware resources
From the GNU project: www.gnu.org: manuals
GDB cheatsheat from CMU for 64-bit x86 systems (includes a few commands with “g” (giant) for 64-bit data format that won’t work on 32-bit systems)
Directories useful for programming assignments
$pcinc – header
$pcex – C example
$pclibsrc – sources for the SAPC support library
Good new-edition book on Linux system calls and system programming, by a well-known Linux kernel developer. It includes coverage of kernel internals where that helps understanding of the system calls. Linux System Programming, 2nd Edition,Talking Directly to the Kernel and C Library, by Robert Love, O'Reilly Media, May 2013
Android: an optional part of this course
Android
Linux
Poster Android
Linux
TechBlog
Android
Linux
Additions
Android
Binder (a thesis)
Good books on Android:
Learning
Android by Marko Gargenta, O’Reilly 2011. Covers basics
of both UI programming and OS architecture.
Embedded
Android by Karim Yaghmour, O’Reilly 2013, Best book I’ve
seen for OS-level coverage
VMWare Resources
How to install a
virtual SAPC and Linux development host with mtip
vm_tutor.zip zip of directory
with tutor.ovf file for creating virtual SAPC for VMWare
mtip for Linux mtip executable for use on VMWare Linux
development host