SGG 1/2

In an ideal world, you would all have time and interest to read everything in the three textbooks we use in this course. Let’s be honest, though, and accept that it’s not going to happen. Use these reading guides to prepare for class, lab, and exams. If you have have time and energy, feel free to read whatever you encounter and bring it up to discussion in class, lab, or office hours.

There’s a substantial amount of material in these chapters 1 and 2. Some of it turns out to be review of CSCI 206; that’s something worth going through, even if superficially. Some material is technology specific; unless indicated otherwise, this type of material is optional reading. Because the time we have in one semester is limited, we have to focus on what is really important: the most general principles.

Here’s the breakdown of the required reading:

1.1 What operating systems do
After reading this, try to summarize in one paragraph the answer to “what do operating systems do?”

1.2 Computer system organization
1.3 Computer system architecture

Quite a bit of these sections will review material from CSCI 206. Read through to bring it back to your mental cache, without stressing over the details.

1.4 Operating system operations
Here’s where the whole game begins. Contrast the concepts of multiprogramming and multitasking. What is the importance of job scheduling in a computer system? Define the concept of process.

1.4.1 Multiprogramming and multitasking

  • What is the difference between multiprogramming and multitasking?
  • Why is multiprogramming desirable in a modern, general purpose OS?
  • Why is multitasking desirable in a modern, general purpose OS?

1.4.2 Dual mode and multimode operation

  • What is the purpose of dual-mode operation in a processor?
  • What is the difference between a processor executing in kernel mode versus in user mode?
  • How does the processor remember in which mode it is executing at any point in time? Why are some instructions privileged? What kinds of operations can they perform?
  • What is the difference between a trap and an interrupt?

1.5.1 Process management

  • What is a process? Give examples of processes that you would normally encounter in your personal computer.
  • Is there any difference between a program and a process?

1.9 Kernel data structures
Review what you know about data structures; pay special attention to doubly linked lists.

12.1 Overview
12.2 I/O Hardware
12.2.2 Polling
12.2.3 Interrupts

12.2.4 Direct Memory Address

  • What is the difference between polling and interrupt driven I/O?
  • What are the advantages and disadvantages of polling and interrupt drive I/O?
  • What is the purpose of direct memory access (DMA)? Describe how it works.
  • How does DMA relate to I/O?

2.1 Operating system services
We are back to what the OS can do for you. Can you name 5 services after reading this section?

2.2 User and operating system interface

  • What is the role of the command interpreter in the OS? Can you name three shells available in modern Linux systems?
  • What other kinds of user interfaces do you see in modern operating systems for computers, phones, and tablets?

2.3 System calls

  • Is it fair to say that system calls are the API that programs use to talk to the OS?
  • What is the difference between a system call and a library call?
  • How do you get information on the API for a system or library call named X?
  • How is a system call handled by the OS? (In particular, try to figure out how the processing of a system call might motivate the system to switch between user mode and kernel mode.)

2.7 Operating system design and implementation
What is design and how does it apply to operating systems?

2.8 Operating system structure

  • What are the advantages and disadvantages of monolithicmodular, and layered OS designs?
  • Understand the structure of a traditional Unix system and the importance of the layered approach.
  • Understand the concepts of microkernels and kernel modules.

2.9 Building and booting an operating system
How does the execution of the OS get started? Describe the sequence of steps and identify the resources involved.