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 structure
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.5 Operating system operations

  • 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?
  • What is the difference between a trap and an interrupt?
  • 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?

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

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 Command interpreter
What is its role in the OS? Can you name three shells available in modern Linux systems?

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.6 Operating system design and implementation
What is design and how does it apply to operating systems?

2.7 Operating system structure
Understand the structure of a traditional Unix system and the importance of the layered approach. Understand the concepts of microkernels and kernel modules.

2.10 System boot
How does the execution of the OS get started? Describe the sequence of steps and resources involved.

Print Friendly