Operating systems

From CS2001 Wiki

Jump to: navigation, search

An operating system defines an abstraction of hardware behavior with which programmers can control the hardware. It also manages resource sharing among the computer’s users. The topics in this area explain the issues that influence the design of contemporary operating systems. Courses that cover this area will typically include a laboratory component to enable students to experiment with operating systems.

Over the years, operating systems and their abstractions have become complex relative to typical application software. It is necessary to ensure that the student understands the extent of the use of an operating system prior to a detailed study of internal implementation algorithms and data structures. Therefore these topics address both the use of operating systems (externals) and their design and implementation (internals). Many of the ideas involved in operating system use have wider applicability across the field of computer science, such as concurrent programming. Studying internal design has relevance in such diverse areas as dependable programming, algorithm design and implementation, modern device development, building virtual environments, caching material across the web, building secure and safe systems, network management, and many others.


Contents

OS/OverviewOfOperatingSystems [core]

Minimum core coverage time: 2 hours

Topics:

  • Role and purpose of the operating system
  • History of operating system development
  • Functionality of a typical operating system
  • Mechanisms to support client-server models, hand-held devices
  • Design issues (efficiency, robustness, flexibility, portability, security, compatibility)
  • Influences of security, networking, multimedia, windows

Learning objectives:

  1. Explain the objectives and functions of modern operating systems.
  2. Describe how operating systems have evolved over time from primitive batch systems to sophisticated multiuser systems.
  3. Analyze the tradeoffs inherent in operating system design.
  4. Describe the functions of a contemporary operating system with respect to convenience, efficiency, and the ability to evolve.
  5. Discuss networked, client-server, distributed operating systems and how they differ from single user operating systems.
  6. Identify potential threats to operating systems and the security features design to guard against them.
  7. Describe how issues such as open source software and the increased use of the Internet are influencing operating system design.


OS/OperatingSystemPrinciples [core]

Minimum core coverage time: 2 hours

Topics:

  • Structuring methods (monolithic, layered, modular, micro-kernel models)
  • Abstractions, processes, and resources
  • Concepts of application program interfaces (APIs)
  • Application needs and the evolution of hardware/software techniques
  • Device organization
  • Interrupts: methods and implementations
  • Concept of user/system state and protection, transition to kernel mode

Learning objectives:

  1. Explain the concept of a logical layer.
  2. Explain the benefits of building abstract layers in hierarchical fashion.
  3. Defend the need for APIs and middleware.
  4. Describe how computing resources are used by application software and managed by system software.
  5. Contrast kernel and user mode in an operating system.
  6. Discuss the advantages and disadvantages of using interrupt processing.
  7. Compare and contrast the various ways of structuring an operating system such as object-oriented, modular, micro-kernel, and layered.
  8. Explain the use of a device list and driver I/O queue.


OS/Concurrency [core]

Minimum core coverage time: 6 hours

Topics:

  • States and state diagrams
  • Structures (ready list, process control blocks, and so forth)
  • Dispatching and context switching
  • The role of interrupts
  • Concurrent execution: advantages and disadvantages
  • The “mutual exclusion” problem and some solutions
  • Deadlock: causes, conditions, prevention
  • Models and mechanisms (semaphores, monitors, condition variables, rendezvous)
  • Producer-consumer problems and synchronization
  • Multiprocessor issues (spin-locks, reentrancy)

Learning objectives:

  1. Describe the need for concurrency within the framework of an operating system.
  2. Demonstrate the potential run-time problems arising from the concurrent operation of many separate tasks.
  3. Summarize the range of mechanisms that can be employed at the operating system level to realize concurrent systems and describe the benefits of each.
  4. Explain the different states that a task may pass through and the data structures needed to support the management of many tasks.
  5. Summarize the various approaches to solving the problem of mutual exclusion in an operating system.
  6. Describe reasons for using interrupts, dispatching, and context switching to support concurrency in an operating system.
  7. Create state and transition diagrams for simple problem domains.
  8. Discuss the utility of data structures, such as stacks and queues, in managing concurrency.
  9. Explain conditions that lead to deadlock.


OS/SchedulingAndDispatch [core]

Minimum core coverage time: 3 hours

Topics:

  • Preemptive and nonpreemptive scheduling
  • Schedulers and policies
  • Processes and threads
  • Deadlines and real-time issues

Learning objectives:

  1. Compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in operating systems, such as priority, performance comparison, and fair-share schemes.
  2. Describe relationships between scheduling algorithms and application domains.
  3. Discuss the types of processor scheduling such as short-term, medium-term, long-term, and I/O.
  4. Describe the difference between processes and threads.
  5. Compare and contrast static and dynamic approaches to real-time scheduling.
  6. Discuss the need for preemption and deadline scheduling.
  7. Identify ways that the logic embodied in scheduling algorithms are applicable to other domains, such as disk I/O, network scheduling, project scheduling, and other problems unrelated to computing.


OS/MemoryManagement [core]

Minimum core coverage time: 3 hours

Topics:

  • Review of physical memory and memory management hardware
  • Paging and virtual memory
  • Working sets and thrashing
  • Caching


Learning objectives:

  1. Explain memory hierarchy and cost-performance trade-offs.
  2. Explain the concept of virtual memory and how it is realized in hardware and software.
  3. Summarize the principles of virtual memory as applied to caching and paging.
  4. Evaluate the trade-offs in terms of memory size (main memory, cache memory, auxiliary memory) and processor speed.
  5. Defend the different ways of allocating memory to tasks, citing the relative merits of each.
  6. Describe the reason for and use of cache memory.
  7. Discuss the concept of thrashing, both in terms of the reasons it occurs and the techniques used to recognize and manage the problem.

OS/DeviceManagement [elective]

Topics:

  • Characteristics of serial and parallel devices
  • Abstracting device differences
  • Buffering strategies
  • Direct memory access
  • Recovery from failures

Learning objectives:

  1. Explain the key difference between serial and parallel devices and identify the conditions in which each is appropriate.
  2. Identify the relationship between the physical hardware and the virtual devices maintained by the operating system.
  3. Explain buffering and describe strategies for implementing it.
  4. Differentiate the mechanisms used in interfacing a range of devices (including hand-held devices, networks, multimedia) to a computer and explain the implications of these for the design of an operating system.
  5. Describe the advantages and disadvantages of direct memory access and discuss the circumstances in which its use is warranted.
  6. Identify the requirements for failure recovery.
  7. Implement a simple device driver for a range of possible devices.


OS/SecurityAndProtection [core]

Minimum coverage time: 2 hours

Topics:

  • Overview of system security
  • Policy/mechanism separation
  • Security methods and devices
  • Protection, access control, and authentication
  • Backups


Learning objectives:

  1. Defend the need for protection and security, and the role of ethical considerations in computer use.
  2. Summarize the features and limitations of an operating system used to provide protection and security.
  3. Explain the mechanisms available in an OS to control access to resources.
  4. Carry out simple sysadmin tasks according to a security policy, for example creating accounts, setting permissions, applying patches, and arranging for regular backups.

OS/FileSystems [elective]

Topics:

  • Files: data, metadata, operations, organization, buffering, sequential, nonsequential
  • Directories: contents and structure
  • File systems: partitioning, mount/unmount, virtual file systems
  • Standard implementation techniques
  • Memory-mapped files
  • Special-purpose file systems
  • Naming, searching, access, backups


Learning objectives:

  1. Summarize the full range of considerations that support file systems.
  2. Compare and contrast different approaches to file organization, recognizing the strengths and weaknesses of each.
  3. Summarize how hardware developments have lead to changes in our priorities for the design and the management of file systems.


OS/RealTimeAndEmbeddedSystems [elective]

Topics:

  • Process and task scheduling
  • Memory/disk management requirements in a real-time environment
  • Failures, risks, and recovery
  • Special concerns in real-time systems


Learning objectives:

  1. Describe what makes a system a real-time system.
  2. Explain the presence of and describe the characteristics of latency in real-time systems.
  3. Summarize special concerns that real-time systems present and how these concerns are addressed.


OS/FaultTolerance [elective]

Topics:

  • Fundamental concepts: reliable and available systems
  • Spatial and temporal redundancy
  • Methods used to implement fault tolerance
  • Examples of reliable systems

Learning objectives:

  1. Explain the relevance of the terms fault tolerance, reliability, and availability.
  2. Outline the range of methods for implementing fault tolerance in an operating system.
  3. Explain how an operating system can continue functioning after a fault occurs.


OS/SystemPerformanceEvaluation [elective]

Topics:

  • Why system performance needs to be evaluated
  • What is to be evaluated
  • Policies for caching, paging, scheduling, memory management, security, and so forth
  • Evaluation models: deterministic, analytic, simulation, or implementation-specific
  • How to collect evaluation data (profiling and tracing mechanisms)


Learning objectives:

  1. Describe the performance measurements used to determine how a system performs.
  2. Explain the main evaluation models used to evaluate a system.

OS/Scripting [elective]

Topics:

  • Scripting and the role of scripting languages
  • Basic system commands
  • Creating scripts, parameter passing
  • Executing a script
  • Influences of scripting on programming

Learning objectives:

  1. Summarize a typical set of system commands provided by an operating system.
  2. Demonstrate the typical functionality of a scripting language, and interpret the implications for programming.
  3. Demonstrate the mechanisms for implementing scripts and the role of scripts on system implementation and integration.
  4. Implement a simple script that exhibits parameter passing.


OS/DigitalForensics [elective]

Topics:

  • Digital forensics and its relationship to other forensic disciplines
  • Incident response responsibilities
  • Forensic procedures
  • Digital evidence and tracking
  • Rules/Standards of Evidence
  • Evidence gathering and analysis
  • Forensic mechanisms
  • Profiling
  • Tools to support investigative work

Learning objectives:

  1. To explain the problems addressed by digital forensics and to outline the basic principles involved in its practice
  2. To outline the basic processes of information gathering and analysis in line with best practices in digital forensics
  3. To recognize the role that tools can play in digital forensics and to demonstrate their use in simple examples the use of tools and to demonstrate their use
  4. To explain what questions must be asked and answered to determine if the interpretation of forensic evidence is valid or questionable.


OS/SecurityModels [elective]

Topics:

  • Models of protection
  • Memory protection
  • Encryption
  • Recovery management
  • Types of access control: mandatory, discretionary, originator-controlled, role-based
  • Access control matrix model
  • Harrison-Russo-Ullman model and undecidability of security
  • Confidentiality models such as Bell-LaPadula
  • Integrity models such as Biba and Clark-Wilson
  • Conflict of interest models such as the Chinese Wall

Learning Objectives:

  1. Compare and contrast current methods for implementing security.
  2. Compare and contrast the strengths and weaknesses of two or more currently popular operating systems with respect to security.
  3. Compare and contrast the security strengths and weaknesses of two or more currently popular operating systems with respect to recovery management.
  4. Describe the access control matrix and how it relates to ACLs and C-Lists
  5. Apply Biba's model to the checking of inputs in a program (tainted v. untainted, for example)
  6. Describe how the Bell-LaPadula model combines mandatory and discretionary access control mechanisms, and explain the lattice formulation of Bell-LaPadula and Biba
  7. Compare and contrast two security models
  8. Relate particular security models to the models of the software life cycle
  9. Apply particular models to different environments and select the model that best captures the environment


To give feedback on this area of revision, go to here and use your ACM user name and login.
To give feedback on security sections of this area of revision, go to here and use your ACM user name and login.

Copyright © 2008, ACM, Inc. and IEEE, Inc.

Personal tools