IT 344
Catalog Data: 344Operating Systems
(3:2:3). W Prerequisite: CS 235, IT 241. 344. Operating Systems. (3:2:3) Applying
and using computer operating systems. Configuration, file systems, security, administration,
network interfacing, multitasking, multiuser, device driver installation. Analyzing
operating system performance. Fee.
Textbook(s):
- Stallings. Operating Systems Prentice Hall, 5th edition.
Reference Book(s):
- Harvey M. Deitel, Paul J. Deitel, David R. Choffnes, Operating Systems
Prentice Hall (3rd Edition)
- Larry Wall, Tom Christiansen and Jon Orwant, Programming Perl O'Reilly,
3rd ed.
- Matt Welsh, Matthias Dalheimer, Lar Kaufman, Running Linux O'Reilly, 3rd
Ed.
- Lutz, Mark. Programming Python O'Reilly 2 nd ed. March 2001
- Stones, Richard, Matthew, Neil. Beginning Linux Programming 2 nd ed. Wrox
press. Nov 1999
- Wall, Kurt (ed.) Linux programming Unleashed Sams Dec 2000.
- Rubini Alessandro and Corbet Jonathan. Linux Device Drivers
O’Reilly, 2 nd ed. 2001
Class website:
Class Coordinator: RH
Goals: On completing this class students will understand the components
and structure of OS, be able to describe how they work and to configure them for
operation in a wide variety of applications. This knowledge will be demonstrated
and applied through theoretical and practical independent and team work assignments.
Students will use written communication skills as well as technical demonstrations
to show their accomplishment of these objectives.
Prerequisites by topic:
- Programming in a modern high level language (Java, C, C++ etc.)
- Understanding of computer architecture on the CPU level, (Assembly Language, interrupts,
registers etc.)
- Understanding of computer architecture on the module level (peripheral cards, memory
configuration, HDD, etc.)
Outcomes
- Describe the major functions of an operating system. Include hardware and software
relationships.
- Describe the major components of an operating system. (kernel, processes, files,
memory management, user interfaces, IO devices etc.).
- Describe the different types of operating system: single-tasking, multi-tasking,
multi-user, threaded, real-time, & other key attributes. Compare various OS
structures.
- Describe OS process interactions. This includes scheduling, communications, etc.
(LAB or homework)
- Discuss OS memory management. Include paging, virtual memory, swapping etc.
- Become competent in the use of operating systems tools. (LAB)
- Be able to use at least one scripting language (eg Perl) to automate tasks within
an OS.
- Be able to find needed commands or utilities and use them to work within different
OS.
- Compile, install and configure a Unix/Linux operating system with an understanding
of the major modules involved. (LAB). Configure an MS-Win system.
- Describe the need for and functioning of IO devices and device drivers. Be familiar
with the components and creation of a device driver. Update and install device drivers.
(LAB)
- Explain how hardware enables or prevents certain types of operating system features.
(EG MMU for multi-tasking, privileged mode for security etc.)
- Perform standard updating of OS using available tools. Explain how and when these
updating tasks should be carried out in general. (LAB)
- Describe standard and non-standard IO systems for OS. Relate IO issues to HCI. (LAB)
- Describe the directory and file systems of major OS. Include hierarchies and protection
mechanisms.
- Explain and demonstrate topics in OS security including encryption and password
management.
- Describe the different types of malware (virus, worm trojan horse etc.) and their
effect on the system.
- Independently research OS topics. Present them orally and in writing.
Laboratory projects: The laboratories will explore configuration
and performance optimization of various operating systems. It will also explore
interfacing of computers to other systems through development of device drivers.
Laboratory topics (topics do not necessarily correspond to individual lab exercises):
- Be competent in the use of various OS tools such as editors, compilers, scripting
languages, file management tools, configuration tools, etc. Become competent in
finding necessary technical information and resources to solve OS problems.
- Use scripting language to perform simple OS tasks.
- Explore components in real OS. Describe relationships
- Compile, install and configure a Unix/Linux operating system with an understanding
of the major modules involved.
- Configure an MS-Win system
- Update a Linux and an MS-Win system using standard update tools. Analyze the process
both technically and in terms of effect on system users.
- Install and test device drivers
- Explore the file system of more than one OS.
- Perform system backups and restores.
- Manipulate users/groups, Permissions/ownerships
- Configure and use several IO peripherals.
- Project: Design a system requiring OS functionality. Construct test, demonstrate
and document the system, analyzing the OS performance.
Laboratory Equipment: Computer Equipment used: Computer with administrative
access. Multiple OS installations (Windows, Linux, other) Live CD OS distributions.
Written and oral communication requirements: Students will record
all labs in lab reports. Students will analyze results of labs and report on them
in lab reports. Reports will be evaluated for both technical content and writing
quality. Students will do oral and written presentations on lab projects. Students
will complete a written report on an independent research topic in OS. Students
will participate in presenting researched material in class.
Math Analysis: Basic undersatnding of Big O notation
Library or other Research Projects: Report on current news article
in operating systems field. (see below)
Life-long learning experiences: Students will identify several
key publications (on-line or paper) which discuss new technical developments in
operating systems. They will select and report on one article from one of these
publications. Student groups will independently research an assigned topic in OS
and teach it to the class
Prepared By: R. Helps
Date Revised: Jan 2005