目录

  • Introduction
    • ● What Is an Operating System?
    • ● History of Operating Systems
    • ● Operating System Concepts
  • Process Description and Control
    • ● Introduction to Processes
      • ● Pocess Image
      • ● Classical IPC Problems
    • ● Concurrency
      • ● Mutal Exclusion
      • ● Synchronization
      • ● Classical Co-operation Problems
  • Scheduling
    • ● Job Scheduling
    • ● Process Scheduling
    • ● Realtime Schdeduling
    • ● Deadlock
    • ● Deadlock avoidance
    • ● Deadlock detection
  • Memory Management
    • ● Swapping
    • ● Basic Memory Management
      • ● Partitionning
      • ● Paging
      • ● Segmation
    • ● Multi-level Page Table
    • ● Virtual Memory
      • ● concepts
      • ● Page Replacement Algorithm
  • Input / Output
    • ● Principles of IO Hardware
    • ● Principles of IO software
    • ● RAM Disks
  • File System
    • ● Files
    • ● Directories
    • ● File System Implementation
    • ● Physical Structure of File
  • Operating system experiment projects
    • ● Linux System Calls
    • ● Message Mechanism And Process Scheduling
    • ● Memory Management
    • ● Process Concurrence
  • 习题课(Practices)
    • ● Practice One
      • ● Practice Two
        • ● Practice Three
What Is an Operating System?

教学目的及要求

Aims: master the two basic functions of OS, system calls; basically understand the OS history, the position of OS on   computer systems.

Requirement: be able to program using systems calls in C language.

教学重点及难点

Emphasizing: functions of the OS, system calls and programming interfaces.

Difficulties: some concepts such as Multi-process, Batch, etc.

教学方法

State by example;Multimedia presentation;Discussion.  

教学内容

What Is an Operating System?

Without its software, a computer is basically a useless lump of metal. With its software, a computer can store, process, and retrieve information; play music and videos; send e-mail, search the Internet; and engage in many other valuable activities to earn its keep. Computer software can be divided roughly into two kinds: system programs, which manage the operation of the computer itself, and application programs, which perform the actual work the user wants. The most fundamental system program is the operating system, whose job is to control all the computer's resources and provide a base upon which the application programs can be written. Operating systems are the topic of this book. In particular, an operating system called MINIX 3 is used as a model, to illustrate design principles and the realities of implementing a design.

The placement of the operating system is shown in Fig. 1-1. At the bottom is the hardware, which, in many cases, is itself composed of two or more levels (or layers). The lowest level contains physical devices, consisting of integrated circuit chips, wires, power supplies, cathode ray tubes, and similar physical devices. How these are constructed and how they work is the province of the electrical engineer.

Figure 1-1. A computer system consists of hardware, system programs, and application programs.

Next comes the microarchitecture level, in which the physical devices are grouped together to form functional units. Typically this level contains some registers internal to the CPU (Central Processing Unit) and a data path containing an arithmetic logic unit. In each clock cycle, one or two operands are fetched from the registers and combined in the arithmetic logic unit (for example, by addition or Boolean AND). The result is stored in one or more registers. On some machines, the operation of the data path is controlled by software, called the microprogram. On other machines, it is controlled directly by hardware circuits.


The purpose of the data path is to execute some set of instructions. Some of these can be carried out in one data path cycle; others may require multiple data path cycles. These instructions may use registers or other hardware facilities. Together, the hardware and instructions visible to an assembly language programmer form the ISA (Instruction Set Architecture) This level is often called machine language.


The machine language typically has between 50 and 300 instructions, mostly for moving data around the machine, doing arithmetic, and comparing values. In this level, the input/output devices are controlled by loading values into special device registers. For example, a disk can be commanded to read by loading the values of the disk address, main memory address, byte count, and direction (read or write) into its registers. In practice, many more parameters are needed, and the status returned by the drive after an operation may be complex. Furthermore, for many I/O (Input/Output) devices, timing plays an important role in the programming.