topic # Topic Reading Homework Slides
1 administrativa

primitive computers and binary number representation
 - my junior high classmate's hardware-store science project computer
 - Ed Roberts, Altair (1st microcomputer)
 - Leonard Kleinrock,  first IMP (interface message processor)
 - SDS Sigma / Xerox 500 series (Kleinrock's host 1969,
   West LA College computer center 1979)

demo - installing an OS on a PC

chapter 1 of the textbook (it's dense, and we'll spend a couple weeks on it)

read - Why "binary" in every computer conversaion?

these links about binary and other number systems

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

this write-up about "Remote Unix access with ssh"and this one about your remote unix acccount.

log in - to your remote unix account. I will see your login history and record a minor grade credit for your having logged in. Log in by next week. After logging in, get back out by running the "exit" command.

listen - to this podcast about operating systems (transcript here)
Skip the part from the 6:00 minute mark to the 39:00 minute mark. This spans a lot of topics that we'll encounter in coming weeks, in a broad summary touching on
the jobs that operating systems do. 

Job description for an OS:
Internal jobs
 memory management
 process management
 device management
 file management
 offer callable  system service functions
External job
 user interface

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.

listen - to this 9-minute video about hardware underpinnings of information representation.

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 (which will be discussed in class).

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.

OS Installation

science-project adding-machine computer
 could change addends but not operation
 re-engineer: more switches to select operations
  leads to "instruction set"

circuits/gates as basis for binary storage
 (reference to disk, CD, coins)

publically callable system services
 (an OS feature)

doing binary addition

show-and-tell, instruction sets

in-class exercise:
 installing an operating system on a (virtual) PC

as above

Programing the ENIAC

The Von Neumann Architecture of Computer Systems

von Neumann architecture (wiki)

do - binary and hexadecimal addition problems Prepare your answers in this form and submit them by this file transfer method, depositing your answer file in your "assignments" subdirectory on the remote server. Please name your file "sums.txt". I will grade these using an automated script, so the format of the answer is critical to intelligibility, as is the case (lower) of the filename. (Wrongly named or placed, your file will get overlooked by the grading script.)

line termination conventions per OS

MBR dump

Parition table under the microscope

od command usage  - to dump files (and other data) in octal (and other) formats

for reference - 3 low-level dump/edit commands
  xxd's documentation
  od's documentation
  bvi's documentation

2 more, for Windows:

OS Installation

von Neumann architecture

Ch 1 Computer Overview


chapter 1 discussion
 -PC and CPU components/architecture
 -instruction execution (figure 1.4)

in-class exercise:
 3+2=5 (implementing textbook figure 1.4)

 executing data as code (inf520)

show-and-tell tour of IBM PC

demo - speculative, out-of-order execution for efficiency
 branch prediction

read - about instruction sets

   -Intel chip architecture

  -Intel instruction set reference

  -a CPU instruction

  -Other chips/makers/instruction sets

  -CPU registers

read - selections from the "IA-32 Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture."
 pp3-13 to 3-15 about registers in the Pentium
 pp3-20 to 3-22 about the EFLAGS status register (ie, Intel's PSW program status word)
 p 3-24 about the EIP instruction pointer register
 p 3-26 about operands
 p 3-33 secion 3.7.7 "I/O Port Addressing." This relates to the assignment wherein you are asked to consider directing code to an I/O device (e.g., disk), as opposed to memory, for data source and destination.
 pp 5-2 to 5-9 about general-purpose instructions, described and listed

read - the overview of interrupts at the very beginning of this article

read - this short page about interrupts. Click and read the link "Why Interrupts Are Used to Process Information."

of interest on linux systems: dstat program and /proc/interrupts pseudofile. Try:
 cat /proc/interrupts > one
 sleep 1
 cat /proc/interrupts > two
 vimdiff one two

do - some assembly language.
study, assemble, and run the given assembly language program. (Your doing so will leave evidence on the remote computer as basis for grading.) This program uses one of the operating system's system calls (4 write) to do the real work.

do - make a variation on figure 1.4, on paper

Ch 1 Computer Overview





chapter 1 further discussion
read - begin chapter 2, "Operating System Overview." Specifically, the section entitled "The Operating System as Resource Manager" through the one entitled "OS Design Considerations for Multiprocessor and Multicore." You can skip the section on fault tolerance. Optionally read the sections at the end specific to Windows, linux, and android and how they implement the chapter's concepts.

read - this information about system calls

listen - to a discussion of hardware interrupts (transcript here) by Steve Gibson from his online podcast series "Security Now." (28 min. duration)
example of pure-cpu-bound process that computes digits of pi - y-cruncher

Specialized processing chips - GPUs, DSPs, SoCs

More CPUs than 1



chapter 1 further discussion
 -memory hierarchy
 -cache memory

in-class exercise:
 waste time

read/continue reading ch 2 listen - Memory Hierarchy
lecture from course
Intro. to Computer Architecture (2013)
by Onur Mutlu
Carnegie Mellon U.
listen from 4:30-8:15, 10:45-14:20, and 30:20 to 44:10

do - an assignment about caching using the memory heirarchy, on paper



chapter 2 discussion
 historical evolution of operating systems
read/continue reading ch 2

view - old school photos

- Ch 2 Software Overview


chapter 2 discussion -outcomes of efficient utilization
 process management challenge
 memory management challenge


 demo - creating processes; insert pre-loop fork() calls in busy-timewaster.c

in-class exercise:

read - textbook chapters we will cover on the topic of processes. Those are chapters 3 and 9 (process scheduling). You don't need to read much of chapter 9, just enough to enable assignment 9 (through p415 in 7th edition). - -



demo - interprocess communication and mutual exclusion


read - commentary by scheduler author Ingo Molnar

read - Completely Fair Scheduler articles from ibm developerworks:
article 1     article 2

read - textbook chapter 6 short sections on unix/linux concurrency mechanisms, sections 6.7 and 6.8


do - process scheduling exercise

view - process scheduler video animation

run a program - to demonstrate that process scheduling order is unpredictable


Ch 3 processes

Ch 9 process scheduling



Homemade shell

IPC and mutual exclusion

9 linux process scheduling in detail - demonstration programs - as shown in class, with a readme file explaining how to use them, in file "" Examine and play with these on your own if you wish.

linux process scheduling


linux process scheduling


10 in-class exercises:
 process scheduling exercise

 top (process display) exercise

 operation of threads


read - textbook chapter 4, section 4.1 only, on the subject of threads


- Ch 4 threads
11 test

memory management

read - textbook chapter 7, on the subject of general memory management do - address translation. Name the file you submit on sputnik "pageaddr.txt" please.


address calculation under memory segmentation

Ch 7 Mem Mgmt
12 virtual memory

in-class exercise(s):
 Virtual memory swap

read - textbook chapter 8, on the subject of virtual memory management. (Skip coverage of segmentation.)

scan or read lightly - this article about memory exhaustion in linux. It uses a sample memory-exhauster very similar to our memory3.c, and describes in more detail how the kernel is handling the situation. [link died]

do - page replacement. Please turn in, on paper, in class


Linux memory management
illustrating effect of using virtual memory

Ch 8 Virtual Mem
13 filesystems

in-class exercise(s):
 device vs file

read - textbook chapter 12 section titled "Secondary Storage Management" (12.7 in recent editions)

compare - in your "ext2 filesystem" assignment we dissect the internal structure of the ext2 filesystem. For comparison, the same kind of thing is done at this tutorial on the FAT filesystem. FAT (file allocation table system) prevailed on PCs of the 1980s and 90s. Skim the tutorial and take note of its graphics. 

ext2 filesystem analysis

visit an ext2 analysis page; and another


do - ext2 filesystem. Read the write-ups at the links it contains. Do it on paper, specifically on a copy of the Excel spreadsheet indicated in the assignment write-up (not acceptable in any other form). You can use the copy distributed in class which you marked up there.


Ch 12 File Mgmt

Linux landscape
(filesystem slides)

14 - - - -