Computer
Systems

Fall 2020
course
site
-->

Nov 17

Questions about anything?

I've posted an explanation of the attack lab phases. Should we go over any of that?

where we are

Next : chapter 8 - processes ("ECF" lectures) .

(We may also touch a bit on chap 10 (I/O), following the lecture notes, but won't do much with that stuff.)

We've been doing a lot of C coding and will continue for the rest of the semester ... I'll remind you that K&R is the book to use if you're grasp of the language and its concepts is not what it needs to be. That's why there's a recommended next to it on my resources page.

aside 1 : processes and all that

The next chapter will make make more sense if you've already seen how processes can be controlled from the shell : foreground, background, control-C, control-Z, and all that.

further reading :

aside 2 : compiling chap 8 code

There are some tricks to know about C coding for the material we're doing next, and some things to know about the code for the course, which I describe in these

lecture notes

aside 3 : fork vs thread

There are two extremes when it comes to having two things running in your program (i.e. concurrency) while possible sharing some resources.

On the one extreme, a "fork" duplicates the whole process, but after shares very little. This approach is built into the unix OS, and uses the virtual memory idea to make it pretty fast and efficient. (The memory isn't actually duplicated until it needs to be.)

On the other extreme, a "thread" typically shares memory with another thread, often within the same process (for example within a single running Java executable, at a much higher level than the operating system).

Microsoft Windows (which I don't know much about) emphasizes threads, while unix emphasises towards forks.

aside 4 : kill dash nine

aside 5 : fork bomb

https://cs.bennington.college /courses /fall2020 /systems /notes /nov17
last modified Tue November 17 2020 1:27 am