CS40 Operating Systems

David Morgan
Santa Monica College
see syllabus for email address



Grade information

Course outline


Stallings book's site
 8th edition
 6th edition
 5th edition

Remote Unix access with ssh

Remote Unix access with telnet (telnet is deprecated, insecure, obsolete now)

Using ftp (ftp is deprecated, insecure, obsolete. Use scp/sftp instead.)

 different types
 why it works
 chip schematic

Linux links
Linux man pages

Fundamental Unix Commands

System calls

Linux syscall cheat sheet

Disks & booting:
 - Partitioning primer
 - Linux loader doc
 - Comparative MBRs
 -Interpreting Partition Records
 - Future of BIOS

Sys. architecture
(disk organization)

Old school photos

Punched cards

1959 utility bill on punched card (like those mailed to my childhood home)

Memory mgmt:
 - Segmentation
 - Page replacement
 - Intel architecture (pdf)
 - Management types

Code relocation

 - code composition
 - memory organization 


Deadlock example

Filesystem analysis

Files vs devices

Foundation concepts:

ASCII chart
 version 1
 version 2

Sys. architecture (interrupts)

Sys. architecture
(disk organization)

Number bases:
  -Hex tutorial
  -Hex advocacy
  -Binary numbers
  -Number systems
conversion tools:
  Table, or
   - binary
   - hexadecimal

 Instruction sets
   -Intel instruction set
   -Intel chip architecture

  -CPU registers
  -a CPU instruction

An assembler program
  -source code

Symbol management

Data structures
  - Datastructures
  - Linked list of states


Slide presentations

Stallings TEXTBOOK's:

Ch 1 Computer Overview
Ch 2 OS Overview

Ch 3 Process
Ch 4 Threads
Ch 5 Concurrency
Ch 6 Concurrency

Ch 7 Mem Mgmt
Ch 8 Virtual Mem

Ch 9 Scheduling
Ch 10 Scheduling

I/O & Files
Ch 11 I/O Mgmt
Ch 12 File Mgmt


OS Installation

Memory Mgmt

Process Mgmt


Linux landscape

linux process scheduling


Section 4108 6:45p - 9:50p Fri Bus 263

This Website (http://homepage.smc.edu/morgan_david/)  will be used extensively to communicate with you. Announcements, grade reports, and assignments will be posted here. Please access the website from any SMC computer lab. Alternatively, it can be viewed from an internet-connected browser anywhere. You are responsible for awareness of the information posted here

Accounts created - per the link below entitled "Remote Unix system account". Please do the homwork item (under the link "First homework" below) that asks you to perform an initial login. (2/16)

Course outline - with approximate weekly topic coverage corresponded to related readings, homework assignments, and in-class slides I will use. Please follow this outline as we move through the topics, for assignments and reading I want you to do (2/16)

The answer is ... (read the lights),  what is the question? Let's understand what these pictures show. The device shows adding 6 and 5 to produce 11. Here are "6 and 5". And here is "11".
Listen to this video from the 7:30 timing mark to the end, describing addition with switches for inputting addends, lights for outputting sums, and a 74xx Texas Instruments chip to hold the "wiring" that does the math.
74xx chip in 1962? No such thing. My classmate then made a science project that did the same thing as in the above video: switches to input addends, lights to output sums. But how did he make the math happen? He built the same functional circuitry as contained in 74xx chips, from basic discrete circuit components ( resistors, capacitors, inductors, diodes, transistors ). The circuits he wired up are as shown here in the several kinds of "logic gates" (scroll down to the circuit diagrams) and further described here.
Here is another discrete component enthsiast/purist's page. (2/16)

Second homework - please
 do the assignment found in the "Homework" column of section 2 of the course outline. due date will be announced

First homework - please
 read chapter 1 of the textbook. Slowly. Twice.
 read the 7 links about binary and other number systems, below left, under the heading "Number bases" in the "Foundation Concepts" section.

read - write-up at link entitled "Remote Unix access with ssh" at left, and then:
log in - to your remote unix account. Please see section here entitled "Remote Unix system account for you". I will see your login history and record a minor grade credit for your having logged in. Log in by Thursday 2/23. After logging in, get out by running the "exit" command.

listen - to this podcast about operating systems (skip the part from the 6:00 minute mark to the 39:00 minute mark). It spans a lot of topics that we'll encounter in coming weeks, in a broad summary touching on all the items on the OS's job description list (the ones in paragraph titiled "Jobs" below). You won't understand some of it, and I considered not asking you to listen to it on the grounds that it bites off more than you can chew. But that's what the coming weeks are for. Listen to it now. Then, it would be interesting if you did so again after the course to see if I taught you anything.

anticipate, from assignment 1.5, the book's problem 1.1 at the end of Chapter 1, by reviewing the instruction execution example in Figure 1-4 of the textbook and associated discussion. (2/16)

First personal computer - Altair by Ed Roberts

(click photo to enlarge, note switches and lights on front panel)

PCBSD installation - time permitting I hope to demonstrate the installation of an operating system on a laptop in class. I'll use PCBSD. See this related YouTube video and PCBSD's website. (2/16)

Virtual machines - on class laptops (screenshot).

Jobs for which operating systems have responsibility:
  memory management
  process management
  device management
  file management
  user interface

Slides we're viewing
 "Ch1 Computer Overview" - about interrupts, caching, etc
 "OS Installation" - about partitions, MBR, boot process, filesystems etc  (2/16)

Textbook - Operating Systems: Internals and Design Principles, sixth edition, William Stallings, Pearson Prentice Hall. See the information about it on the author's website. (2/16)

Foundation concepts you should be(come) familiar with as background/prerequisite for this class:
 Data structures (lists, stacks)
 Binary and hexadecimal number representation
 Compiling/linking/loading (symbols, address fixups)
 ASCII code
 Processor instruction sets
 System architectures (bus, data lines, interrupt lines)
 Use of ssh
 Use of ftp/sftp

Procedures for using class laptops

A Remote Unix system account is available for your use. 

Using ssh (secure shell). ssh is an important tool you will use for interacting with remote computers. For that you will need an ssh client. There are a number of ssh client alternatives.

Running linux at home.



Milestones in the history of computation

Tommy Flowers

Colossus - 1944



Eniac - 1946