CS330 · Chapter 2 · Annotated SlidesOperating System Services and Structures
Original
Overview

Operating System Services and Structures

OS services, command-line, GUI and touch interfaces, system calls and APIs (POSIX, Win32, Java), parameter passing, types of system calls, and OS structures: monolithic, layered, microkernel, modules and hybrid systems.

How to read this page

Every original slide is shown unchanged. Yellow marks on a slide point to a numbered note: hover or tap a mark to jump to its note, and hover a note to see its marks. Questions tagged Past exam appeared on a real paper; Prediction questions are likely angles, not confirmed. Pick an answer to each question: a wrong pick tells you why it is wrong, so you can try again.

All 27 slides
  1. 1 Chapter 2
  2. 2 Outline of this lecture
  3. 3 Objectives
  4. 4 Operating System Services
  5. 5 Additional Operating System Functions
  6. 6 A View of Operating System Services
  7. 7 User Operating System Interface - CLI
  8. 8 Bourne Shell Command Interpreter-
  9. 9 User Operating System Interface - GUI
  10. 10 Touchscreen Interfaces
  11. 11 The Mac OS X GUI
  12. 12 System Calls
  13. 13 System Call Implementation
  14. 14 API – System Call – OS Relationship
  15. 15 System Call Parameter Passing
  16. 16 Passing of Parameters As A Table
  17. 17 Types of System Calls
  18. 18 Examples of Windows and Unix System Calls
  19. 19 Standard C Library Example
  20. 20 Operating System Structure
  21. 21 Linux System Structure
  22. 22 2. Layered Approach
  23. 23 3. Microkernel System Structure
  24. 24 Microkernel System Structure
  25. 25 Modules
  26. 26 Hybrid Systems
  27. 27 Operating-System Debugging
Slide 1 / 27

Chapter 2

Slide 1: Chapter 2
Slide 2 / 27

Outline of this lecture

Slide 2: Outline of this lecture
Slide 3 / 27

Objectives

Slide 3: Objectives
Slide 4 / 27

Operating System Services

Slide 4: Operating System Services
Slide 5 / 27

Additional Operating System Functions

Slide 5: Additional Operating System Functions
Slide 6 / 27

A View of Operating System Services

Slide 6: A View of Operating System Services
Slide 7 / 27

User Operating System Interface - CLI

Slide 7: User Operating System Interface - CLI

Notes

  1. CLI (command interpreter / shell) reads and runs commands; GUI uses windows and a mouse; touch interfaces use gestures.

Slide 8 / 27

Bourne Shell Command Interpreter-

Slide 8: Bourne Shell Command Interpreter-
Slide 9 / 27

User Operating System Interface - GUI

Slide 9: User Operating System Interface - GUI
Slide 10 / 27

Touchscreen Interfaces

Slide 10: Touchscreen Interfaces
Slide 11 / 27

The Mac OS X GUI

Slide 11: The Mac OS X GUI
Slide 12 / 27

System Calls

Slide 12: System Calls

Notes

  1. System calls are the programming interface to OS services; programs usually reach them through an API (Win32, POSIX, Java API).

  2. Trap The JVM is not a system-call API; the Java API is.

Exam angle

PredictionQ1

The API that Unix-like systems give programmers is:

PredictionQ2

The three most common APIs for system calls include all EXCEPT:

Slide 13 / 27

System Call Implementation

Slide 13: System Call Implementation
Slide 14 / 27

API – System Call – OS Relationship

Slide 14: API – System Call – OS Relationship

Notes

  1. The system-call interface uses a table indexed by system-call number; the caller doesn’t need to know how it is implemented.

Slide 15 / 27

System Call Parameter Passing

Slide 15: System Call Parameter Passing

Exam angle

PredictionQ1

Which is NOT a way to pass parameters to a system call?

Slide 16 / 27

Passing of Parameters As A Table

Slide 16: Passing of Parameters As A Table
Slide 17 / 27

Types of System Calls

Slide 17: Types of System Calls

Exam angle

PredictionQ1

Which system call creates a process in UNIX?

Slide 18 / 27

Examples of Windows and Unix System Calls

Slide 18: Examples of Windows and Unix System Calls
Slide 19 / 27

Standard C Library Example

Slide 19: Standard C Library Example

Notes

  1. printf() is a C library function that eventually calls the write() system call; it is not itself a system call.

Exam angle

PredictionQ1

printf() in C is a system call.

Slide 20 / 27

Operating System Structure

Slide 20: Operating System Structure
Slide 21 / 27

Linux System Structure

Slide 21: Linux System Structure
Slide 22 / 27

2. Layered Approach

Slide 22: 2. Layered Approach

Notes

  1. Layered: layer 0 = hardware … layer N = UI; each uses only the layers below. Advantage: easy debugging and maintenance. Disadvantage: hard to define layers, overhead.

Exam angle

PredictionQ1

Give one advantage of the layered approach.

Compare with the model answer

Simple construction and debugging: each layer is debugged on top of already-verified lower layers, so an error is found in the layer being tested; layers can also be changed independently.

Slide 23 / 27

3. Microkernel System Structure

Slide 23: 3. Microkernel System Structure
Slide 24 / 27

Microkernel System Structure

Slide 24: Microkernel System Structure

Notes

  1. Microkernel: move most services into user space; communicate by message passing. + easier to extend, port, more reliable and secure. − message-passing overhead.

Exam angle

PredictionQ1

In a microkernel OS, most OS functionality runs:

PredictionQ2

Give one disadvantage of the microkernel approach.

Compare with the model answer

Performance overhead: user-space services communicate through the kernel by message passing, which costs extra copies and context switches.

Slide 25 / 27

Modules

Slide 25: Modules
Slide 26 / 27

Hybrid Systems

Slide 26: Hybrid Systems

Notes

  1. Hybrid systems mix structures: Linux/Solaris monolithic + modules; Windows mostly monolithic + microkernel parts; macOS/iOS Mach + BSD.

Slide 27 / 27

Operating-System Debugging

Slide 27: Operating-System Debugging