Skip to content

Commit 4eceaab

Browse files
author
Geoffrey Challen
committed
Merge branch 'master' of github.com:ops-class/www
2 parents e6c7efc + 2220a10 commit 4eceaab

15 files changed

+30
-34
lines changed

src/img/slides/figures/disks/filebasic.svg

Lines changed: 1 addition & 1 deletion
Loading

src/slides/2016/filesystemstructures.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ block.
119119
== Data Blocks: Flat Array
120120

121121
A second solution: store all data blocks in the inode in a single
122-
array allocate at file creation time.
122+
array allocated at file creation time.
123123

124124
[.slider]
125125
.Pros:

src/slides/2016/forksynch.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ if (returnCode == 0) {
183183
184184
# Read some data from the pipe.
185185
char data[14];
186-
read(pipeEnds[0], data, 16);
186+
read(pipeEnds[0], data, 14);
187187
} else {
188188
189189
# Don't need a loopback.
@@ -264,7 +264,7 @@ later.
264264

265265
[.slider]
266266
.The *operating system* itself is one of the most difficult concurrent programs to write. Why?
267-
* It is multiplexing access to hardware resources and therefor sharing
267+
* It is multiplexing access to hardware resources and therefore sharing
268268
a great deal of state between multiple processes!
269269
* It frequently uses many threads to hide hardware delays while
270270
servicing devices and application requests.

src/slides/2016/pagetranslation.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ effective.
206206

207207
[.slider]
208208
* 4K is a very common page size. 8K or larger pages are also sometimes used.
209-
* 4K pages and a 128-entry TLB allow caching translations for 1 MB of
209+
* 4K pages and a 128-entry TLB allow caching translations for 512 KB of
210210
memory.
211211
* You can think of pages as *fixed size* segments, so the *bound* is the
212212
same for each.

src/slides/2016/processes.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ received.
233233
send a signal to any process.
234234
* Processes can ignore most signals.
235235
** `SIGKILL` is a notable exception; used for non-graceful termination.
236-
** `SIGTERM` is used for graceful shutdown and sent by Control-C.
236+
** `SIGTERM` is used for graceful shutdown.
237237

238238
== !
239239

src/slides/2016/schedulingstory.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ ____
409409
* Priority defines the levels at which each task can run.
410410
** High priority tasks: *more* levels, *more* chances to run.
411411
** Low priority tasks: *fewer* levels, *fewer* chances to run.
412-
* Tasks can run more at most a fixed amount of time per level.
412+
* Tasks can run for at most a fixed amount of time per level.
413413
* Each level can also run for at most a fixed amount of time--ensures *bounded
414414
latency*.
415415

src/slides/2016/synchprimitives.adoc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -338,12 +338,12 @@ has not changed since the load-link.
338338
----
339339
y = 1;
340340
__asm volatile(
341-
".set push;" /* save assembler mode */
342-
".set mips32;" /* allow MIPS32 instructions */
343-
".set volatile; /* avoid unwanted optimization */
344-
"ll %0, 0(%2);" /* x = *sd */
345-
"sc %1, 0(%2);" /* *sd = y; y = success? */
346-
".set pop" /* restore assembler mode */
341+
".set push;" /* save assembler mode */
342+
".set mips32;" /* allow MIPS32 instructions */
343+
".set volatile;" /* avoid unwanted optimization */
344+
"ll %0, 0(%2);" /* x = *sd */
345+
"sc %1, 0(%2);" /* *sd = y; y = success? */
346+
".set pop" /* restore assembler mode */
347347
: "=r" (x), "+r" (y) : "r" (sd));
348348
if (y == 0) {
349349
return 1;

src/slides/2016/synchproblems.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ image::figures/synch/spinlocks.svg[width="70%"]
175175
== How to Sleep
176176

177177
[.slider]
178-
.The kernel provide functionality allowing kernel threads to sleep and wake on a *key*:
178+
.The kernel provides functionality allowing kernel threads to sleep and wake on a *key*:
179179
* `thread_sleep(key)`: "Hey kernel, I'm going to sleep, but please wake
180180
me up when *`key`* happens."
181181
* `thread_wake(key)`: "Hey kernel, please wake up all (or one of) the
@@ -224,7 +224,7 @@ withdraw items.
224224

225225
[.slider]
226226
.Why are condition variables a synchronization mechanism?
227-
* Want to ensure that the condition *does not change* between checking it and
227+
* Want to ensure that the condition *does not change* between checking it
228228
and deciding to wait!
229229

230230
[cols="2*",options='header',role='slide']

src/slides/filesystemstructures.adoc

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,6 @@ and delete (`dtime`) times.
5454

5555
image::figures/disks/debugfs-stat.svg[width="100%"]
5656

57-
== `ext4` inodes
58-
59-
image::figures/disks/debugfs-stat.svg[width="100%"]
60-
6157
== Locating inodes
6258

6359
[.slider]
@@ -144,7 +140,7 @@ block.
144140
== Data Blocks: Flat Array
145141

146142
A second solution: store all data blocks in the inode in a single
147-
array allocate at file creation time.
143+
array allocated at file creation time.
148144

149145
[.slider]
150146
.Pros:

src/slides/forksynch.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ if (returnCode == 0) {
264264
265265
# Read some data from the pipe.
266266
char data[14];
267-
read(pipeEnds[0], data, 16);
267+
read(pipeEnds[0], data, 14);
268268
} else {
269269
270270
# Don't need a loopback.

0 commit comments

Comments
 (0)