CPS 356 Lecture notes: Introduction to Operating Systems
Coverage: [OSCJ8] Chapter 1 (pp. 3-47) and
[USP] Chapter 1
logistics, evaluation, and policies
Introduction to CPS 356
what is an operating system? a collection of programs that
What is an operating system?
with the following goals:
- manage computer resources (CPU, main memory, secondary memory,
- provide a working environment for the user
An OS manages a variety of system resources:
- manage computer resources efficiently
- make a computer system convenient to use
An OS allocates and deallocates resources to executing programs (or processes)
and may resolve conflicts.
- CPU (time)
- main memory space
- file storage space
- I/O devices
Operating system history
- historically, programmer was the OS
- load program (switches, paper tape, cards)
- set starting address
- monitor execution
- assemblers, linkers, and loaders eventually helped
- compilers and high-level languages helped the programmer by
providing a higher level of abstraction
- professional operators handled job setup and execution
- programmer debugged problems from memory dumps
- operators grouped multiple programs with similar characteristics
- batch system allowed no interaction between the user and the executing
- the biggest problem was (and still is) the discrepancy between
the speed of the CPU and the speed of I/O devices; two solutions:
- off-line processing
- disk spooling, which often results in a group (pool) of jobs
ready to run when the running job finishes
Review of computer organization
(ref. [OSIDP6] Fig. 1.1 on p. 9; image courtesy [OSIDP6] webpage)
- von Neumann architecture
- von Neumann bottleneck
Review of instructions
(cycle & representation)
(ref. [OSIDP6] Fig. 1.2 on p. 12; image courtesy [OSIDP6] webpage)
(ref. [OSIDP6] Fig. 1.3 on p. 13; image courtesy [OSIDP6] webpage)
What happens when you
power on a computer?
When a computer is powered on, a minimum amount of information is read from
secondary memory into main memory and control is transferred to that area of
main memory; this code reads the core of the OS, called the kernel,
which executes the initial process. This process is called
bootstrapping or the process of pulling oneself up by one's
Why study this stuff anyway?
- the computing power (e.g., multiple cores on the desktop)
is now here to render many OS concepts practical in application
programming (e.g., Google Chrome or game programming)
- gateway to studies in systems programming, parallel programming,
distributed computing, and networking
- Establish an understanding of operating system internals such as process creation and management, scheduling, and memory management.
- Establish an understanding of concurrent programming and synchronization.
- Develop a proficiency in UNIX and C as a operating systems programming language and environment.
||A. Silberschatz, P.B. Galvin, and G. Gagne.
Operating Systems Concepts with Java.
John Wiley and Sons, Inc., Eighth edition, 2010.
Operating Systems: Internals and Design Principles.
Prentice Hall, Upper Saddle River, NJ, Sixth edition, 2009.
||K.A. Robbins and S. Robbins.
UNIX Systems Programming:
Concurrency, Communication, and Threads.
Prentice Hall, Upper Saddle River, NJ, Second edition, 2003