Course Objectives

By the end of the course, students should be able to demonstrate the following knowledge and skills:

Topic Knowledge Objectives Skill Objectives
Operating System Overview
  • Define and list the functions of an operating system
  • List and explain common features of operating systems
  • Explain the historical reasons why different features of operating systems were developed
  • Contrast batch, on-line (interactive) and real-time processing
  • Contrast real-time transaction processing and process-control operating systems
  • Differentiate between multiprocessing, multiprogramming, and multitasking
  • Explain the purpose and examples of spooling of input and output
  • Explain the developments of different versions of popular operating systems, including DOS/Windows and UNIX/Linux
  • Compare a monolithic kernel with a microkernel
  • Justify the use of layers of abstraction and explain the concept of hardware-OS boundary transparency
  • Explain benefits of object-oriented design in operating systems
 
User Interfaces
  • Describe different types of operating system users (end users, programmers, operators/administrators) and compare their uses
  • Describe and compare the function of different types of user interfaces provided by the operating system, including:
    • system calls
    • command languages
    • job control languages
    • graphical user interfaces
  • Explain the use of different types of DOS and Windows system files and contents of system folders
  • Explain the function of common UNIX system calls
  • Connect and log on to and off of UNIX and Windows systems
  • Start up and shut down UNIX and Windows systems
  • Use Graphical User Interface features of Windows and Linux (Gnome, KDE)
  • Type DOS and UNIX commands at the prompt
  • Write DOS batch files and UNIX shell scripts
  • View contents of system folders
  • View and change system settings (Windows and Linux control panels)
  • View environmental variables (env, set, System Information environmental variables)
  • View and edit autoexec.bat, config.sys, .ini files
  • Use Windows Registry Editor to view registry keys
  • View help and on-line documentation for commands and tasks (help switch, man pages, DOS/Windows help)
Processes, Threads, and  Scheduling
  • Differentiate between programs, processes and threads
  • List resources involved in process creation and management
  • Explain how interrupt requests are handled
  • Describe the process life cycle using a state diagram
  • List and explain scheduling criteria
  • View process status 
    • in Windows (task manager; System Information running tasks, loaded modules, startup programs, print jobs)
    • in UNIX (ps, top) 
  • Start and stop programs, processes and batch jobs 
    • in Windows (DOS prompt, run dialog box, shortcuts, Alt-F4, Ctrl-Alt-Del)
    • in UNIX (run, at, nice, &, kill, sleep)

Memory Management

  • Describe how processes are loaded and swapped
  • Explain how memory is partitioned to run multiple programs
  • Explain the use of paging and segmentation
  • Explain DOS expanded and extended memory
  • Explain advantages of Windows memory management over DOS
  • View usage of physical and virtual memory 
    • in DOS/Windows (mem, system monitor, win386.swp)
    • in UNIX/Linux (swap partition and related commands)
Input/Output Systems
  • Explain the function and structure of the I/O system
  • Compare the use of device drivers in UNIX, DOS and Windows
  • Contrast block and character devices
  • Explain the use of direct memory access, buffering and virtual devices
  • View hardware devices through the file system (a:-z:, /dev)
  • View hardware resources (System control panel device manager, System Information hardware resources and components)
  • Add New Hardware control panel
  • Install drivers for an I/O device 
  • Configure IRQs and I/O and DMA addresses
Secondary Storage
  • Explain how a disk's physical structure affects its performance and disk scheduling algorithms
  • Differentiate between disks, drives and volumes
  • Describe methods of file allocation
  • Explain the use of blocking, disk caching and RAM disks
  • View disk structure (platters, tracks, sectors, cluster size) and disk usage
  • Format and partition disks
  • Mount and unmount volumes
File System
  • Describe path names and directory structure visible to end users
  • Describe the related structure of files, inodes and directories
  • Differentiate between hard and symbolic links
  • Compare file naming in UNIX, DOS and Windows
  • Manipulate files and directories, links and shortcuts: list, view, create, delete, move, rename
  • View and change access permissions and other file and directory attributes 
  • Use file system utilities such as Windows: chkdsk, scandisk, defrag and disk cleanup; UNIX: fsck
Concurrent Processes  and Synchronization
  • Explain how processes compete for resources
  • Explain the use of semaphores for file and record locking
  • Explain the implementation of semaphores in UNIX
  • Describe methods of deadlock prevention, avoidance and detection
  • Describe the use of signals, pipes and shared memory
  • Describe Windows DDE and OLE
  • Pipe the output of one command to the input of another
  • Send signals to processes
Networks and Distributed Systems
  • Describe the features of network operating systems
  • Describe the features of popular distributed systems (e.g. CORBA, DCE, DCOM, DSOM, DAIS)
  • Mount a remote volume using NFS
  • Use tools for network file access and monitoring (e.g. Network Neighborhood, NetWatcher)
Protection, Security and Recovery
  • List and describe different types of security threats
  • Explain the working of different types of viruses and anti-virus software
  • Describe procedures to minimise security threats, including hardware access restrictions, file protection and backups
  • Describe operating system security features, including access control, audit controls and memory protection
  • Explain the use of encryption and common encryption algorithms
  • Use anti-virus software
  • Use backup software
  • View, change, create and delete user accounts
  • Use Windows Policy Editor
System Administration
  • List and describe system performance indicators
  • Create a plan for systems administration and maintenance
  • Install operating systems and their components
  • Use tools to monitor and evaluate system performance