Brigham Young University Homepage

IT

Information Technology

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

  1. Describe the major functions of an operating system. Include hardware and software relationships.
  2. Describe the major components of an operating system. (kernel, processes, files, memory management, user interfaces, IO devices etc.).
  3. Describe the different types of operating system: single-tasking, multi-tasking, multi-user, threaded, real-time, & other key attributes. Compare various OS structures.
  4. Describe OS process interactions. This includes scheduling, communications, etc. (LAB or homework)
  5. Discuss OS memory management. Include paging, virtual memory, swapping etc.
  6. Become competent in the use of operating systems tools. (LAB)
  7. Be able to use at least one scripting language (eg Perl) to automate tasks within an OS.
  8. Be able to find needed commands or utilities and use them to work within different OS.
  9. Compile, install and configure a Unix/Linux operating system with an understanding of the major modules involved. (LAB). Configure an MS-Win system.
  10. 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)
  11. Explain how hardware enables or prevents certain types of operating system features. (EG MMU for multi-tasking, privileged mode for security etc.)
  12. Perform standard updating of OS using available tools. Explain how and when these updating tasks should be carried out in general. (LAB)
  13. Describe standard and non-standard IO systems for OS. Relate IO issues to HCI. (LAB)
  14. Describe the directory and file systems of major OS. Include hierarchies and protection mechanisms.
  15. Explain and demonstrate topics in OS security including encryption and password management.
  16. Describe the different types of malware (virus, worm trojan horse etc.) and their effect on the system.
  17. 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):

  1. 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.
  2. Use scripting language to perform simple OS tasks.
  3. Explore components in real OS. Describe relationships
  4. Compile, install and configure a Unix/Linux operating system with an understanding of the major modules involved.
  5. Configure an MS-Win system
  6. 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.
  7. Install and test device drivers
  8. Explore the file system of more than one OS.
  9. Perform system backups and restores.
  10. Manipulate users/groups, Permissions/ownerships
  11. Configure and use several IO peripherals.
  12. 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

Brigham Young University, Provo, UT 84602 - (801)422-4636 - Copyright 2007, All Rights Reserved XHTML CSS 508