Section 4108 6:45p - 9:50p Fri Bus 263
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
homework and reading in course outline section 8. process
scheduling exercise due in your assignments subdirectory by end of
day next Saturday 5/6 (gives you opportunity to raise any questions
in class Friday 5/5 if you wish) (4/28)
Demonstration programs for unix process
mechanism "fork/exec" - If you wish to examine or experiment,
here is the series of 11
programs used in my slides demonstrating the workings of fork and exec. You can
get them from the unix server under the same names by
which they appear in the slides shown in class: fork1.c,
fork2.c,..., fork11.c. (Files are in /home/public/molay/ch08/, get them as
outlined here. Slides are at links, lower left, entitled
"Processes" and "Homemade shell". If you download these source files and want to compile so you can run them, the command to
compile would be, for example:
gcc fork1.c -o fork1
The summary of the point of these programs is:
||shows fork, demonstrates that 2 processes result
||shows PIDs (process id numbers) of these
processes, and that they're distinct
||shows fork's return value to the child copy
(zero) and its return value to the parent copy (child's PID)
||shows how to code differentiated behavior via an
"if" structure conditioned on fork's return value
||incorporates an exec call in the child
||introduces exit call in child and wait call in
parent, to give orderly discipline to their relative timing
||gets the name of the program to be exec'd from
the user via the command line
||interactively gets the name of the program to be
exec'd by prompting user
||puts the activity inside a loop to extend it to
second, third, fourth,... commands
||shows a zombie process
||shows an adopted child, init process as its
step-parent after being pre-deceased by its original parent
Grades - have been updated,
at the link entitled "Grade information" at left.
FYI - bachelor's
degree from SMC
In a new program several community college districts in California
will begin offering bachelor's degrees. Each one offers a degree in
one specific field of study. At SMC that fiels will be
"interaction design." Studies toward the degree begin this
Fall semester. (4/19)
Spring break - coming up.
There will be no class meeting April 14. (4/7)
Grades - have been updated,
at the link entitled "Grade information" at left.
Upcoming topic - will be processes
- after we do Chapter 2
read - textbook chapters we will cover on the topic of
processes. Those are chapters 3 and 9 (process scheduling).
anticipate - assgt 9, to be done later, after I have demonstrated how to do it in
sharing - a way to allow multiple interactive
processes to share a computer's CPU pioneered by Fernando
Corbato at MIT. (4/7)
Grades - have been updated,
at the link entitled "Grade information" at left. (3/31)
Stress test SMP/multicore - I
stumbled on y-cruncher
do the reading in the Reading column of section 4 of the course outline.
do the assignments found in the "Homework" column of
sections 4 and 5. Caching assignment due on
paper in class 3/31.
Some helpful explanation - here is how to correspond or reconcile
the vocabulary in the textbook problem, and that at the end of my
related writeup. There are 3 terms involved. What he calls Tm,
I call Tslow.
What he calls Tc,
I call Tfast.
What he calls "effective access time, I call Tave.
There is no difference between what he and I are talking about, it's
the same situation. The first term is talking about the native
access time of one type of manufactured physical memory, and the
second term about that of another. The second one is superior, does
its job (moving data in and out) faster, costs more no doubt.
Engineers buy that to make their caches. They buy the first, slower
kind to make their RAM memory modules (regular memory) that you
stick into the slots on your motherboard. The third term, on the
other hand, is a little different in that it isn't talking about the
native access time of anything. Rather, it's talking about the
access time that would be experienced in actually using the
computer. That doesn't match the native access time of either of the
2 memory types that the computer contains, since the computer uses a
blend of both so that the experienced access time will fall
somewhere in between their native times. Better than the slow one,
not as good as the fast one. But in doing the problem just recognize
= = Tslow
= = Tfast
effective access time = = Tave
How interrupts save time - my
in-class example put some numbers on the textbook's figure 1.5, "Program Flow of Control
without and with Interrupts." I assigned time units to the
various portions of the program shown in the Figure, both the 5
numbered ones and the I/O Command. Then I calculated the elapsed
time from the start of the program till the time it finishes. I did
that twice, once where interrupts are not used (Figure's left panel
(a) ) and once where they are used (Figure's center panel (b) ). I
assigned/posited the following amounts of time:
1 - takes 6 units
2 - takes 20 units
3 - takes 18 units
4 - takes 4 units
5 - takes 4 units
I/O command - takes 8 units
If that were the case, I reached the conclusion that the program
as a whole would take 76 time units to complete if all phases ran
consecutively (i.e., without interrupts) in the order shown in the
Figure, versus only 60 time units if some phases ran concurrently
(i.e., with interrupts). A similar question appears on an upcoming test.
The question is to perform the
identical analysis/calculation, but with different input numbers
supplied. Be sure you can do this problem, and you'll be able to do
its companion problem on the test. (3/24)
Microfilm for long-term storage
durability - is preferred
by the National Archives (the people who keep the Declaration of
Independence). A discussion of data storage durability came up in
class last year. It may surprise that old school is oldest.
Grades - published at link
entitled "Grade information," at left. (3/24)
of a stack - to keep track of where to return after a
function call. Shown in the gdb debugger (same one used
by ddd debugger you used). (3/18)
System calls - here's a cheat
sheet listing the approximately 200 system functions that user
programs can call, for various services. Here is some further
do the reading in the Reading column of section2 and 3 of the course outline.
do the assignment found in the "Homework" column of
Some helpful explanation about textbook's problem 1.1 at the end of
the chapter. It is very similar to the one in the book in Figure
1.4 (and the matching assembly language in-class exercise we did).
The difference is, he wants to get/put numbers from/to some
devices, instead of memory. So, he gives you 2 new instructions (to
go with the 3 you already know) in his hypothetical machine
language, for the purpose of shuttling data back and forth to
devices. The instructions require id's of some kind for
devices (just as memory locations require addresses, which serve as their
id's). The author doesn't provide id's for the devices, but you can
do so. You can make up your own id format and system. A good choice
for this academic exercise might be 3-digit numbers such as 001 for
device 1, 002 for device 2, and so on. Then, putting together the
drawing I ask for is a matter of showing the devices and their
contained values, and constructing a drawing pretty much the same as
the one in Figure 1.4.)
- there are 2 assignments in section 3 homework column.
Please perform the first, "some assembly language," on
sputnik by the end of the day Sunday 3/19. It leaves the result on
sputnik. Please do the second, "make a variation..." on
paper and submit it in class
date to-be-determined depending on
class coverage on 3/24. (3/10)
Grades - published at link
entitled "Grade information," at left. There is a number
by which you can look yourself up. It is the same as the one
generated from your phone number and used as your password for
sputnik.smc.edu, as described here.
What does forty-five mean? to
your Intel CPU (3/10)
What does "run" mean?
Versatility of the computer: not only can it add, it can
subtract - but how do we get it to do one of the tricks in its
repertoire, versus some other? In the earliest computers, they were
rewired to do each task:
"The ENIAC was programmed by wiring cable
connections and setting three thousand switches on the function
tables. This had to be done for every problem and made using the
machine very tedious."
the term for setting the computer to do some certain task is
"programming the computer."
Do modern computers re-wire in order to set and determine what
they will do? (3/10)
Second homework - please
do - the assignment found in the "Homework" column of
section 2 of the course outline. due date
(file on remote server)
Saturday March 4
Tuesday March 7end-of-day
read - the
readings in sections 1 and 2. (2/24)
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)
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
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)
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
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
(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
Virtual machines - on class laptops (screenshot).
Jobs for which operating
systems have responsibility:
Slides we're viewing -
"Ch1 Computer Overview" - about interrupts, caching,
"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
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)
Processor instruction sets
System architectures (bus, data lines, interrupt lines)
Use of ssh
Use of ftp/sftp
using class laptops
A Remote Unix system
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
Running linux at home.