|
CPS 346 (3 sem hrs) is a course which introduces
the theoretical and practical issues underlying an
operating system's structure and operation. Topics
include process creation and management, scheduling,
concurrent programming and synchronization, deadlock,
memory management, and distributed systems. Concepts
are demonstrated using the C and Java programming
languages in a UNIX environment. This course assumes
no prior experience with C, Java, or
UNIX. Pre-requisites: CPS 250 (Introduction
to Computer Organization) and CPS 350 (Data
Structures and Algorithms)
Meeting times: M W 3:00pm-4:15pm, MH 201
Instructor: Dr. S.
Perugini, AN 145, 229-4079, e-mail id: perugisa,
OH's: M W 5:45pm-6:45pm, T Th noon-1:00pm, and by
appointment.
Teaching assistant: Travis Suel, AN 26, e-mail
id: sueltraz, OH's: M W 1:00pm-2:00pm, T Th
6:30pm-7:30pm, and by appointment.
Required textbook: [OSIDP] Operating
Systems: Internals and Design Principles by
W. Stallings. Prentice Hall, Upper Saddle River, NJ,
Sixth edition, 2009. ISBN: 0-13-600632-9; and
associated GOAL account;
ISBN: 0-13-514121-4. A GOAL access code can be
purchased here
(last book on page).
Recommended textbooks:
|
[CPL] |
The C Programming Language by B.W.
Kernighan and D.M. Ritchie. Prentice Hall, Upper
Saddle River, NJ, Second edition, 1988. ISBN:
0-13-110362-8. |
|
[JPL] |
The Java Programming Language by K.
Arnold, J. Gosling, and D. Holmes. Addison
Wesley, Reading, MA, Forth edition, 2005. ISBN:
0321349806. An eBook of [JPL] is available free
to all UD students in the library's eContent
collection. To access it conduct a search for the
title in the library's catalog at library.udayton.edu. |
|
[UPE] |
The UNIX Programming Environment by
B.W. Kernighan and R. Pike. Prentice Hall, Upper
Saddle River, NJ, Second edition, 1984. ISBN:
0-13-937681-X. |
|
[USP] |
UNIX
Systems Programming: Concurrency, Communication,
and Threads by K.A. Robbins and S.
Robbins. Prentice Hall, Upper Saddle River, NJ,
Second edition, 2003. ISBN: 0-13-042411-0. An
eBook of [USP] is available free to all UD
students in the library's eContent collection. To
access it conduct a search for the title in the
library's catalog at library.udayton.edu. |
Course objectives:
- Establish an understanding of operating system
internals such as process creation and management,
scheduling, and memory management.
- Establish an understanding of concurrent
programming and synchronization.
- Introduce the fundamentals of distributed
systems and computer security.
Evaluation,
workload, and policies
Course outline, lecture notes, projects, and
homework and reading assignments (to be completed
prior to class):
- Introduction (review of computer organization,
OS overview, and the UNIX and C programming
environment) ([OSIDP] Ch 0-2)
-
OS nomenclature and the UNIX philosophy,
in-class C exercises,
system libraries; I/O, and
more topics in C (processes, memory
management, and error handling) [class
UNIX page, A
Brief Introduction to C,
vi handout,
vi editor (also see the UW vi
reference)]: Jan 5 7
- files and directories (manipulation
and management, and
data structures): Jan 12
- Processes and threads ([OSIDP] Ch 3-4)
-
low-level I/O (open and
close, and read and
write), and process creation (fork)
and manipulation (wait):
Jan 14 21
- signals (job
control) [HW
1 due]: Jan 21
- process manipulation (exec):
Jan 26
-
terminals: Jan 26
-
more topics in C (storage classes,
thread-safe functions, and macros): Jan 26
- [HW 2 due]: Jan
28
- Exam I (closed book,
closed notes): Feb 2
- threads in Java [Sun Microsystems Java
webpage, Java
Thread class]: Feb 4
-
implementing I/O redirection and
interprocess communiucation (IPC; pipes and
FIFOs): Feb 4
-
the UNIX shell,
process environment (variables,
configuration, customization), and
file permissions: Feb 9
- compilation management (Makefiles)
(exercise
in writing a Makefile) [make
tutorial
another make tutorial] [HW
3 due]: Feb 11
-
Scheduling ([OSIDP] Ch 9)
-
types, evaluation criteria, and algorithms
(FCFS, SJF, SRTF): Feb 16
-
multi-level queues and
multi-level feedback queues [P1 due]: Feb 18
- Exam II (closed book,
closed notes): Feb 23
- Synchronization ([OSIDP] Ch 5)
-
mutual exclusion and
the critical section problem (§5.2): Feb
25
-
semaphores (§5.3) [Java
lang.util.concurrent.Semaphore
class]: Mar 2
-
classical problems of synchroniztion (§5.6,
§6.6) [HW
4 due]: Mar 4
-
monitors (§5.4) [Java
lang.util.concurrent.locks
package]: Mar 9
-
Deadlock ([OSIDP] Ch 6)
- deadlock prevention (§6.2) [P2 due]: Mar 11
- deadlock avoidance and Banker's
algorithm (§6.3): Mar 16
- deadlock detection and recovery (§6.4)
[HW 5 due]: Mar
18
- Exam III (closed book,
closed notes): Mar 23
- Memory Management ([OSIDP] Ch 7)
- contiguous allocation (§§7.1-7.2): Mar
25
- paging (§7.3): Mar 30
- segmentation, segmentations faults, and
buffer overflows (§§7.4-7.5) [P3 due]: Apr 1
- Virtual Memory ([OSIDP] Ch 8)
- demand paging [HW
6 due]: Apr 15
- page replacement (FIFO, optimal, LRU): Apr
20
- thrashing [HW
7 due]: Apr 22
- Final Exam (comprehensive,
closed book, closed notes): W April 29,
12:20pm-2:10pm, MH 201
Programming
style guide
Grades: available in Isidore
Computer accounts:
CPS account access @ home |
UNIX account access |
CPS labs hours |
Keeping your password safe | A
beginner's guide to effective e-mail
If you are unable to log into your CPS (Windows or
UNIX) account or if you forget your CPS (Windows or
UNIX) account password, contact the CPS systems
administrator, Mr. Tramontana, at tramonjr at notes
dot udayton dot edu or 229-3858, and be as specific
as possible.
Helpful links:
academic calendar | student
handbook |
UDit policies
Feedback: Dr. Perugini
welcomes any feedback you may have on the style of
the lectures, the concepts presented in class, the
course webpage, homeworks, deadlines, course and
grading policies, or your general experience in the
course.
|